66 :class =" referenceCls"
77 @click =" handleRefClick"
88 >
9- <slot >
9+ <slot v-bind = " slotProps " >
1010 <div :class =" displayInputCls" >
1111 <span :class =" displayInputTextCls" >
12- <slot name =" display" >
12+ <slot
13+ name =" display"
14+ v-bind =" slotProps"
15+ >
1316 {{ displayValue }}
1417 </slot >
1518 </span >
@@ -178,6 +181,21 @@ export default (Vue as VueConstructor<Vue & {
178181
179182 /** 单选选中节点名称 */
180183 selectedTitle: (' ' as TreeNodeKeyType ),
184+
185+ /** 展示 slot 的 props */
186+ slotProps: {
187+ /** 多选选中的节点 */
188+ checkedNodes: [] as TreeNode [],
189+
190+ /** 多选选中的节点 key */
191+ checkedKeys: [] as TreeNodeKeyType [],
192+
193+ /** 单选选中的节点 */
194+ selectedNode: null as TreeNode | null ,
195+
196+ /** 单选选中的节点 key */
197+ selectedKey: null as TreeNodeKeyType | null ,
198+ },
181199 }
182200 },
183201 computed: {
@@ -364,9 +382,14 @@ export default (Vue as VueConstructor<Vue & {
364382 }
365383 },
366384 handleCheckedChange (nodes : TreeNode [], keys : TreeNodeKeyType []): void {
385+ this .slotProps .checkedNodes = nodes
386+ this .slotProps .checkedKeys = keys
367387 this .checkedCount = keys .length
368388 },
369389 handleSelectedChange (node : TreeNode | null , key : TreeNodeKeyType | null ): void {
390+ this .slotProps .selectedNode = node
391+ this .slotProps .selectedKey = key
392+
370393 if (node ) {
371394 const titleField = this .$refs .treeSearch .$refs .tree .titleField
372395 this .selectedTitle = node [titleField ]
@@ -380,8 +403,13 @@ export default (Vue as VueConstructor<Vue & {
380403
381404 /** 处理树数据更新 */
382405 handleSetData (): void {
406+ this .slotProps .checkedNodes = this .getCheckedNodes ()
407+ this .slotProps .checkedKeys = this .getCheckedKeys ()
408+ this .slotProps .selectedNode = this .getSelectedNode ()
409+ this .slotProps .selectedKey = this .getSelectedKey ()
410+
383411 if (this .checkable ) {
384- this .checkedCount = this .getCheckedKeys () .length
412+ this .checkedCount = this .slotProps . checkedKeys .length
385413 }
386414 if (this .selectable ) {
387415 if (this .value != null ) {
0 commit comments