From af034080bad848718f447d9d621393a02872ba26 Mon Sep 17 00:00:00 2001 From: lzh Date: Tue, 31 Mar 2026 22:55:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(@vben/web-antd):=20=E5=8C=BA=E5=9F=9F?= =?UTF-8?q?=E6=A0=91=E9=BB=98=E8=AE=A4=E5=B1=95=E5=BC=80=E5=9B=AD=E5=8C=BA?= =?UTF-8?q?=E5=92=8C=E6=A5=BC=E6=A0=8B=E8=8A=82=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/views/ops/components/AreaTree.vue | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/apps/web-antd/src/views/ops/components/AreaTree.vue b/apps/web-antd/src/views/ops/components/AreaTree.vue index 10f157b42..ae766be98 100644 --- a/apps/web-antd/src/views/ops/components/AreaTree.vue +++ b/apps/web-antd/src/views/ops/components/AreaTree.vue @@ -117,6 +117,10 @@ async function loadTree() { ); areaList.value = data; areaTree.value = handleTree(data, 'id', 'parentId', 'children'); + // 默认展开到楼层:展开 PARK 和 BUILDING 节点 + expandedKeys.value = data + .filter((a) => a.areaType === 'PARK' || a.areaType === 'BUILDING') + .map((a) => a.id!); } catch (error) { console.error('获取区域树失败', error); } finally { @@ -159,6 +163,9 @@ function getDescendantIds(id: number): number[] { return result; } +/** 展开的节点 key 列表 */ +const expandedKeys = ref([]); + /** 暴露刷新方法和路径查询供父组件调用 */ defineExpose({ refresh: loadTree, getAreaPath, getDescendantIds, getAreaName }); @@ -183,7 +190,7 @@ onMounted(loadTree); v-if="areaTree.length > 0" class="pt-2" :tree-data="areaTree" - :default-expand-all="true" + v-model:expanded-keys="expandedKeys" :checkable="checkable" :checked-keys="checkable ? internalCheckedKeys : undefined" :selected-keys="selectedKeys"