From 84f687529f8008632e0be10e0054bd1aa12e2888 Mon Sep 17 00:00:00 2001
From: 张含笑 <zhx18749296735@163.com>
Date: Mon, 27 Oct 2025 17:35:40 +0800
Subject: [PATCH] feat:地图加载
---
src/views/layerManagement/components/leftList.vue | 46 +++++++++++++++++++++++++++++++++-------------
1 files changed, 33 insertions(+), 13 deletions(-)
diff --git a/src/views/layerManagement/components/leftList.vue b/src/views/layerManagement/components/leftList.vue
index 8ca95fd..25c4356 100644
--- a/src/views/layerManagement/components/leftList.vue
+++ b/src/views/layerManagement/components/leftList.vue
@@ -28,12 +28,13 @@
</div>
<div class="tableListBox">
<el-tree
+ ref="treeRef"
v-model="checkedKeys"
:data="treeData"
show-checkbox
node-key="id"
default-expand-all
- @check-change="changeClick"
+ @check="handleCheck"
:props="{
label: 'name',
children: 'children',
@@ -95,21 +96,40 @@
]);
const checkedKeys = ref([]); // 存储勾选的节点key
+const treeRef = ref(null); // 获取tree实例
+
+const checkedNodes = ref([]); // 存储勾选的节点数据
// 全选方法
const selectAll = () => {
- const allKeys = [];
- // 递归收集所有节点的id
- const collectKeys = data => {
- data.forEach(item => {
- allKeys.push(item.id);
- if (item.children) {
- collectKeys(item.children);
- }
- });
- };
- collectKeys(treeData.value);
- checkedKeys.value = allKeys;
+ if (treeRef.value) {
+ // 获取所有节点的key
+ const allKeys = treeData.value.flatMap(item => [
+ item.id,
+ ...item.children.map(child => child.id)
+ ]);
+
+ if (checkedKeys.value.length === allKeys.length) {
+ // 如果已经全选,则取消全选
+ treeRef.value.setCheckedKeys([]);
+ checkedNodes.value = [];
+ } else {
+ // 否则全选
+ treeRef.value.setCheckedKeys(allKeys);
+ // 获取所有节点数据
+ checkedNodes.value = treeData.value.flatMap(item => [
+ item,
+ ...item.children
+ ]);
+ console.log('所有数据',checkedNodes.value);
+ }
+ }
+};
+const handleCheck = (checkedNodesData, checkedKeysData) => {
+ checkedNodes.value = checkedNodesData.checkedNodes;
+
+// console.log('选中的节点数据:', checkedNodesData);
+// console.log('选中的节点keys:', checkedKeysData);
};
const changeClick =(val)=>{
--
Gitblit v1.9.3