From f1e777ffd74aa9565285b62390b2c4e5c28594f3 Mon Sep 17 00:00:00 2001 From: jianglinjun Date: Fri, 27 Sep 2024 15:14:51 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=9B=B4=E6=96=B0=E6=A0=91=E6=94=AF?= =?UTF-8?q?=E6=8C=81=E7=9B=B4=E6=8E=A5=E4=BC=A0=E9=80=92=E9=BB=98=E8=AE=A4?= =?UTF-8?q?=E5=B1=95=E5=BC=80=E8=8A=82=E7=82=B9=EF=BC=8C=E6=9B=B4=E6=96=B0?= =?UTF-8?q?=E6=A0=91=E5=9C=A8simple=E6=A8=A1=E5=BC=8F=E4=B8=8B=E7=82=B9?= =?UTF-8?q?=E5=87=BB=E8=8A=82=E7=82=B9=E4=BC=9A=E5=90=91=E4=B8=8A=E6=8A=9B?= =?UTF-8?q?=E5=87=BA=E7=82=B9=E5=87=BB=E4=BA=8B=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- CHANGELOG.md | 5 +++++ src/control/tree/tree.tsx | 25 +++++++++++++++++++++---- 2 files changed, 26 insertions(+), 4 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index b56587df..b45a7151 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -7,6 +7,11 @@ ## [Unreleased] +### Changed + +- 更新树支持根据prsop里传递的defaultExpandedKeys设置默认展开节点 +- 树在simple模式下,点击树节点会向上抛出节点点击事件 + ## [0.7.38-alpha.10] - 2024-09-25 ### Changed diff --git a/src/control/tree/tree.tsx b/src/control/tree/tree.tsx index ac1a532c..6b2cd040 100644 --- a/src/control/tree/tree.tsx +++ b/src/control/tree/tree.tsx @@ -77,11 +77,16 @@ export const TreeControl = defineComponent({ isSimple: { type: Boolean, default: false }, data: { type: Array, default: () => [] }, }, - setup(props) { + emits: ['nodeClick'], + setup(props, { emit }) { const c = useControlController( (...args) => new TreeController(...args), ); + if (props.defaultExpandedKeys) { + // 设置默认展开 + c.state.defaultExpandedKeys = props.defaultExpandedKeys; + } const cascadeSelect = ref(false); const counterData = reactive({}); const fn = (counter: IData) => { @@ -321,6 +326,10 @@ export const TreeControl = defineComponent({ */ const onNodeClick = (nodeData: ITreeNodeData, evt: MouseEvent) => { evt.stopPropagation(); + if (props.isSimple) { + // 向上抛出事件 + emit('nodeClick', { nodeData, evt }); + } if (nodeData._disableSelect) return; if (forbidClick) { return; @@ -759,7 +768,15 @@ export const TreeControl = defineComponent({ > {{ default: ({ data }: { node: IData; data: IData }) => { - const nodeData = this.findNodeData(data._uuid, this.c)!; + let nodeData: ITreeNodeData | undefined; + if (this.isSimple) { + nodeData = this.data.find((item: IData) => { + return item._uuid === data._uuid; + }) as ITreeNodeData; + } else { + nodeData = this.findNodeData(data._uuid, this.c); + } + if (!nodeData) { return null; } @@ -822,9 +839,9 @@ export const TreeControl = defineComponent({ return (
this.onNodeDbClick(nodeData, evt)} + onDblclick={evt => this.onNodeDbClick(nodeData!, evt)} onClick={evt => this.onNodeClick(nodeData, evt)} - onContextmenu={evt => this.onNodeContextmenu(nodeData, evt)} + onContextmenu={evt => this.onNodeContextmenu(nodeData!, evt)} class={[ this.ns.b('node'), nodeData._disableSelect -- Gitee