From 7bcfc0507043dc878c801a259aa7d058f4982551 Mon Sep 17 00:00:00 2001
From: Ben Lin <maobin001@msn.com>
Date: 星期四, 09 一月 2025 00:42:21 +0800
Subject: [PATCH] 工单管理优化

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

diff --git a/src/views/components/GeneralTree.vue b/src/views/components/GeneralTree.vue
index 0d8e9c1..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-10-05 14:28:09
+ * @LastEditTime: 2024-10-22 10:34:03
 -->
 <template>
   <div class="m-4 mr-0 overflow-hidden bg-white">
@@ -18,17 +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' });
@@ -52,6 +60,8 @@
       default: undefined,
     },
   });
+  const tigerTree = ref(null);
+  const selectedKeys = ref<KeyType[]>([])
 
   function handleSelect(keys, e) {
     emit('select', keys[0], e);
@@ -65,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