From f07a59e51cdbb5978f55d660f816eaacb24c69fa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=20Cai?= Date: Thu, 6 Feb 2025 17:10:40 +0800 Subject: [PATCH 1/2] fix: `value` will be expanded --- .../components/tree/hooks/useTreeStore.ts | 25 +++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/packages/components/tree/hooks/useTreeStore.ts b/packages/components/tree/hooks/useTreeStore.ts index 4af2d54856..dec80a90c4 100644 --- a/packages/components/tree/hooks/useTreeStore.ts +++ b/packages/components/tree/hooks/useTreeStore.ts @@ -55,11 +55,32 @@ export default function useTreeStore(state: TypeTreeState) { const updateExpanded = () => { const { expandParent } = props; - if (!Array.isArray(tExpanded.value)) return; + + const expandedValueSet = new Set(); + + const getValueParentsToSet = (values: TreeNodeValue[]) => { + values.forEach((val) => { + const parents = store.getParents(val); + parents.forEach((parent) => { + expandedValueSet.add(parent.value); + }); + }); + }; + + if (Array.isArray(tValue.value)) { + getValueParentsToSet(tValue.value); + } + + if (Array.isArray(tExpanded.value)) { + tExpanded.value.forEach((value) => expandedValueSet.add(value)); + } + + const expandedValue = Array.from(expandedValueSet); + // 初始化展开状态 // 校验是否自动展开父节点 const expandedMap = new Map(); - tExpanded.value.forEach((val) => { + expandedValue.forEach((val) => { expandedMap.set(val, true); if (expandParent) { const node = store.getNode(val); From 8a5838dd71c17255d79cffe7e29861fea3f8aa8a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E9=98=BF=20Cai?= Date: Thu, 6 Feb 2025 18:04:56 +0800 Subject: [PATCH 2/2] chore: snap update --- test/unit/snap/__snapshots__/csr.test.js.snap | 86 ++++++++++++++++++- test/unit/snap/__snapshots__/ssr.test.js.snap | 2 +- 2 files changed, 86 insertions(+), 2 deletions(-) diff --git a/test/unit/snap/__snapshots__/csr.test.js.snap b/test/unit/snap/__snapshots__/csr.test.js.snap index bb0bd21748..bf90cdb924 100644 --- a/test/unit/snap/__snapshots__/csr.test.js.snap +++ b/test/unit/snap/__snapshots__/csr.test.js.snap @@ -182116,7 +182116,7 @@ exports[`csr snapshot test > csr test ./packages/components/tree/_example/contro
csr test ./packages/components/tree/_example/contro +
+
+ + + + + + +
+
+ + + + + +
ssr test ./packages/components/tree/_example/base.v exports[`ssr snapshot test > ssr test ./packages/components/tree/_example/checkable.vue 1`] = `"
可选:
严格模式:
"`; -exports[`ssr snapshot test > ssr test ./packages/components/tree/_example/controlled.vue 1`] = `"
选中节点:
checked:
展开节点:
expanded:
高亮节点:
actived:
可选:
节点可高亮:
受控同步节点:
2
"`; +exports[`ssr snapshot test > ssr test ./packages/components/tree/_example/controlled.vue 1`] = `"
选中节点:
checked:
展开节点:
expanded:
高亮节点:
actived:
可选:
节点可高亮:
受控同步节点:
2
"`; exports[`ssr snapshot test > ssr test ./packages/components/tree/_example/debug-data.vue 1`] = `"

数据切换

切换数据:
默认展开全部:
可选:
节点可高亮:
展开动画:
"`;