From 697c405ac874da346e74df40266763370355154d Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期六, 08 三月 2025 15:40:25 +0800
Subject: [PATCH] ASN单

---
 src/views/components/GeneralTree.vue |   59 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 56 insertions(+), 3 deletions(-)

diff --git a/src/views/components/GeneralTree.vue b/src/views/components/GeneralTree.vue
index 5cc2a74..2e063e9 100644
--- a/src/views/components/GeneralTree.vue
+++ b/src/views/components/GeneralTree.vue
@@ -4,7 +4,7 @@
  * @version: 
  * @Date: 2024-06-19 11:07:21
  * @LastEditors: Ben Lin
- * @LastEditTime: 2024-07-23 21:29:52
+ * @LastEditTime: 2024-10-22 10:34:03
 -->
 <template>
   <div class="m-4 mr-0 overflow-hidden bg-white">
@@ -18,16 +18,25 @@
       :treeData="treeData"
       :renderIcon="createIcon"
       :fieldNames="fieldNames"
+      :selectedKeys="selectedKeys"
       @select="handleSelect"
       @handleAdd="handleAdd"
       @unselect="UnSelect"
       :beforeRightClick="props.beforeRightClick"
+      :defaultExpandAll="true"
+      ref="tigerTree"
     />
   </div>
 </template>
 <script lang="ts" setup>
-  import { onMounted, ref } from 'vue';
-  import { ContextMenuItem, ContextMenuOptions, FieldNames, TigerTree, TreeItem } from '/@/components/TigerTree';
+  import { onMounted, ref, watch } from 'vue';
+  import {
+    ContextMenuItem,
+    ContextMenuOptions,
+    FieldNames,
+    TigerTree,
+    TreeItem,
+  } from '/@/components/TigerTree';
   import { EventDataNode } from 'ant-design-vue/lib/tree';
 
   defineOptions({ name: 'CustTree' });
@@ -51,6 +60,8 @@
       default: undefined,
     },
   });
+  const tigerTree = ref(null);
+  const selectedKeys = ref<KeyType[]>([])
 
   function handleSelect(keys, e) {
     emit('select', keys[0], e);
@@ -64,5 +75,47 @@
     emit('UnSelect', node);
   }
 
+  function expandAll(expandAll: boolean) {
+    if (tigerTree.value) {
+      tigerTree.value.expandAll(expandAll);
+    }
+  }
+
+  function getExpandedKeys() {
+    if (tigerTree.value) {
+      return tigerTree.value.getExpandedKeys();
+    }
+    return [];
+  }
+
+  function setSelectedKeys(keys: KeyType[]) {
+    selectedKeys.value = keys;
+    if (tigerTree.value) {
+      tigerTree.value.setSelectedKeys(keys);
+    }
+  }
+
+  function getSelectedKeys() {
+    if (tigerTree.value) {
+      return tigerTree.value.getSelectedKeys();
+    }
+    return [];
+  }
+
+  function getNodeById(Id: string) {
+    if (tigerTree.value) {
+      return tigerTree.value.getNodeById(Id);
+    }
+    return {};
+  }
+
+  defineExpose({
+    getExpandedKeys,
+    expandAll,
+    setSelectedKeys,
+    getSelectedKeys,
+    getNodeById
+  });
+
   onMounted(() => {});
 </script>

--
Gitblit v1.9.3