From d94a55f3358ed7ded4d5a5579968744ed047b6a4 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Tue, 11 Nov 2025 10:20:12 +0800
Subject: [PATCH] feat:测试

---
 src/views/layerManagement/components/leftList.vue |   65 ++++++++++++++++++++++++++------
 1 files changed, 53 insertions(+), 12 deletions(-)

diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 505c737..4b717b7 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -159,7 +159,6 @@
     const allFenceKeys = treeData.value.flatMap(
       folder => folder.children.map(fence => fence.id) // folder 是 level 2,children 是 level 3
     );
-
     const allFenceNodes = treeData.value.flatMap(folder => folder.children);
     if (checkedKeys.value.length === allFenceKeys.length) {
       // 取消全选:清空 keys 和数据
@@ -178,21 +177,63 @@
   }
 };
 // 定位按钮事件
+// const handleLocation = node => {
+//   // checkedKeys.value = [];
+//   // checkedNodes.value = [];
+//   // coverData.value = [];
+//   if (node.data.level === 2) {
+//     const folderChildren = node.data.children || [];
+//     const childrenIds = folderChildren.map(child => child.id);
+//     treeRef.value.setCheckedKeys(childrenIds);
+//     checkedKeys.value = childrenIds;
+//     checkedNodes.value = folderChildren;
+//     coverData.value = folderChildren;
+//     emit('update:coverData', coverData.value);
+//   } else {
+//     const currentNodeId = node.data.id;
+//     treeRef.value.setCheckedKeys([currentNodeId]);
+//     checkedKeys.value = [currentNodeId];
+//     checkedNodes.value = [node.data];
+
+//     coverData.value = [node.data];
+//     emit('update:coverData', coverData.value);
+//   }
+// };
 const handleLocation = node => {
-  checkedKeys.value = [];
-  checkedNodes.value = [];
-  coverData.value = [];
+  const currentCheckedKeys = Array.isArray(checkedKeys.value) ? [...checkedKeys.value] : [];
+  const currentCheckedNodes = Array.isArray(checkedNodes.value) ? [...checkedNodes.value] : [];
+  // 触发定位逻辑(通知父组件)
+  EventBus.emit('focusOnNode', node.data);
   if (node.data.level === 2) {
     const folderChildren = node.data.children || [];
-    // const childrenIds = folderChildren.map(child => child.id);
-    // treeRef.value.setCheckedKeys(childrenIds);
-    // checkedKeys.value = childrenIds;
-    // checkedNodes.value = folderChildren;
-    coverData.value = folderChildren;
-    emit('update:coverData', coverData.value);
-  } else {
-    emit('update:coverData', [node.data]);
+    const childrenIds = folderChildren.map(child => child.id);
+    // 合并已选中的节点(去重)
+    const newCheckedKeys = [...new Set([...currentCheckedKeys, ...childrenIds])];
+    const newCheckedNodes = [...currentCheckedNodes, ...folderChildren];
+    treeRef.value.setCheckedKeys(newCheckedKeys);
+    checkedKeys.value = newCheckedKeys;
+    checkedNodes.value = newCheckedNodes;
+    coverData.value = newCheckedNodes;
+  } 
+  else {
+    const currentNodeId = node.data.id;  
+    if (!currentCheckedKeys.includes(currentNodeId)) {
+      currentCheckedKeys.push(currentNodeId);
+      currentCheckedNodes.push(node.data);
+      console.log(' currentCheckedNodes', currentCheckedNodes);
+      
+    }
+    treeRef.value.setCheckedKeys(currentCheckedKeys);
+    checkedKeys.value = currentCheckedKeys;
+    checkedNodes.value = currentCheckedNodes;
+    coverData.value = currentCheckedNodes;
+    console.log('currentCheckedNodes',currentCheckedNodes);
+    
+    console.log('coverData.value',node.data);
+    
   }
+
+  emit('update:coverData', coverData.value);
 };
 // 编辑按钮事件
 const handleEdit = node => {

--
Gitblit v1.9.3