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"