From 96515f2decfdf63cf5be486221c9219d9c5e8619 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Sat, 06 Dec 2025 17:08:00 +0800
Subject: [PATCH] feat:11

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

diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 4047f90..393ddd9 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -343,12 +343,76 @@
     gettreeDataApi();
   });
 }
+// 递归查找匹配搜索关键词的节点ID
+const findMatchedNodeKeys = (nodes, keyword) => {
+  let matchedKeys = [];
+  if (!nodes || !keyword) return matchedKeys;
+  
+  nodes.forEach(node => {
+    // 匹配当前节点名称(只勾选level=3的围栏节点)
+    if (node.level === 3 && node.name.includes(keyword)) {
+      matchedKeys.push(node.id);
+    }
+    // 递归查找子节点
+    if (node.children && node.children.length > 0) {
+      matchedKeys = [...matchedKeys, ...findMatchedNodeKeys(node.children, keyword)];
+    }
+  });
+  return matchedKeys;
+};
 
+// 递归查找匹配搜索关键词的节点数据
+const findMatchedNodes = (nodes, keyword) => {
+  let matchedNodes = [];
+  if (!nodes || !keyword) return matchedNodes;
+  
+  nodes.forEach(node => {
+    // 匹配当前节点名称(只勾选level=3的围栏节点)
+    if (node.level === 3 && node.name.includes(keyword)) {
+      matchedNodes.push(node);
+    }
+    // 递归查找子节点
+    if (node.children && node.children.length > 0) {
+      matchedNodes = [...matchedNodes, ...findMatchedNodes(node.children, keyword)];
+    }
+  });
+  return matchedNodes;
+};
 function search() {
-  treeRef.value?.filter(formData.value.dkbh);
+ checkedKeys.value = [];
+  checkedNodes.value = [];
+  coverData.value = [];
+  treeRef.value?.setCheckedKeys([]);
+console.log('checkedKeys.value',checkedKeys.value);
+
+  if (formData.value.dkbh.trim()) {
+    nextTick(() => {
+      // 查找匹配的节点ID和数据
+      const matchedKeys = findMatchedNodeKeys(treeData.value, formData.value.dkbh.trim());
+      const matchedNodes = findMatchedNodes(treeData.value, formData.value.dkbh.trim());
+      
+      // 更新勾选状态
+      checkedKeys.value = matchedKeys;
+      checkedNodes.value = matchedNodes;
+      coverData.value = matchedNodes;
+      
+      // 设置树的勾选状态
+      if (treeRef.value) {
+        treeRef.value.setCheckedKeys(matchedKeys);
+      }
+      
+      // 触发父组件更新
+      emit('update:coverData', coverData.value);
+    });
+  }
 }
 function reset() {
   formData.value.dkbh = '';
+  // 清空勾选状态
+  checkedKeys.value = [];
+  checkedNodes.value = [];
+  coverData.value = [];
+  treeRef.value?.setCheckedKeys([]);
   treeRef.value?.filter('');
 }
 function filterNode(value, data) {

--
Gitblit v1.9.3