From 6edca1c19c3b0772f9ab82a7b09251a74fff2173 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=97=A0=E6=9C=A8?= Date: Sat, 29 May 2021 00:48:56 +0800 Subject: [PATCH] feat(tree): add defaultExpandLevel prop MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增defaultExpandLevel属性,指定默认要展开的层级数。-1为默认全部展开(等同于ATree的defaultExpandAll),大于0则展开到指定层级。注意:该属性仅在首次渲染时起作用 close: #672 --- src/components/Tree/src/Tree.vue | 11 +++++++++++ src/components/Tree/src/props.ts | 4 ++++ src/views/demo/tree/data.ts | 2 +- src/views/demo/tree/index.vue | 12 +++++++++--- 4 files changed, 25 insertions(+), 4 deletions(-) diff --git a/src/components/Tree/src/Tree.vue b/src/components/Tree/src/Tree.vue index d21d7ff89..2bae83ffb 100644 --- a/src/components/Tree/src/Tree.vue +++ b/src/components/Tree/src/Tree.vue @@ -11,6 +11,7 @@ toRaw, watch, CSSProperties, + onMounted, } from 'vue'; import { Tree, Empty } from 'ant-design-vue'; import { TreeIcon } from './TreeIcon'; @@ -209,6 +210,16 @@ treeDataRef.value = props.treeData as TreeItem[]; }); + onMounted(() => { + if (props.defaultExpandLevel === '') return; + const level = parseInt(props.defaultExpandLevel); + if (level === -1) { + expandAll(true); + } else if (level > 0) { + state.expandedKeys = filterByLevel(level); + } + }); + watchEffect(() => { state.expandedKeys = props.expandedKeys; }); diff --git a/src/components/Tree/src/props.ts b/src/components/Tree/src/props.ts index 2d83aa88b..593230676 100644 --- a/src/components/Tree/src/props.ts +++ b/src/components/Tree/src/props.ts @@ -23,6 +23,10 @@ export const basicProps = { checkStrictly: propTypes.bool, clickRowToExpand: propTypes.bool.def(true), checkable: propTypes.bool.def(false), + defaultExpandLevel: { + type: [String, Number] as PropType, + default: '', + }, replaceFields: { type: Object as PropType, diff --git a/src/views/demo/tree/data.ts b/src/views/demo/tree/data.ts index 585f8ce56..8fb40bf8a 100644 --- a/src/views/demo/tree/data.ts +++ b/src/views/demo/tree/data.ts @@ -10,7 +10,7 @@ export const treeData: TreeItem[] = [ title: 'leaf', key: '0-0-1', children: [ - { title: 'leaf', key: '0-0-0-0' }, + { title: 'leaf', key: '0-0-0-0', children: [{ title: 'leaf', key: '0-0-0-0-1' }] }, { title: 'leaf', key: '0-0-0-1' }, ], }, diff --git a/src/views/demo/tree/index.vue b/src/views/demo/tree/index.vue index c6ecea626..7d3f5aa95 100644 --- a/src/views/demo/tree/index.vue +++ b/src/views/demo/tree/index.vue @@ -1,18 +1,24 @@