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