Commit 5637588fce880b01137191cc82c73e0fce621e8c
1 parent
5a20df45
fix(demo): fix async tree demo, fixed: #823
Showing
1 changed file
with
24 additions
and
12 deletions
src/views/demo/tree/index.vue
... | ... | @@ -27,19 +27,26 @@ |
27 | 27 | /> |
28 | 28 | </div> |
29 | 29 | <div class="flex"> |
30 | - <BasicTree title="异步树" :treeData="tree" class="w-1/3" :load-data="onLoadData" /> | |
30 | + <BasicTree | |
31 | + title="异步树" | |
32 | + ref="asyncTreeRef" | |
33 | + :treeData="tree" | |
34 | + class="w-1/3" | |
35 | + :load-data="onLoadData" | |
36 | + /> | |
31 | 37 | </div> |
32 | 38 | </PageWrapper> |
33 | 39 | </template> |
34 | 40 | <script lang="ts"> |
35 | - import { defineComponent, ref } from 'vue'; | |
36 | - import { BasicTree } from '/@/components/Tree/index'; | |
41 | + import { defineComponent, ref, unref } from 'vue'; | |
42 | + import { BasicTree, TreeActionType } from '/@/components/Tree/index'; | |
37 | 43 | import { treeData } from './data'; |
38 | 44 | import { PageWrapper } from '/@/components/Page'; |
39 | 45 | |
40 | 46 | export default defineComponent({ |
41 | 47 | components: { BasicTree, PageWrapper }, |
42 | 48 | setup() { |
49 | + const asyncTreeRef = ref<Nullable<TreeActionType>>(null); | |
43 | 50 | function handleCheck(checkedKeys, e) { |
44 | 51 | console.log('onChecked', checkedKeys, e); |
45 | 52 | } |
... | ... | @@ -57,20 +64,25 @@ |
57 | 64 | return; |
58 | 65 | } |
59 | 66 | setTimeout(() => { |
60 | - tree.value.forEach((v) => { | |
61 | - if (v.key === treeNode.eventKey) { | |
62 | - v.children = [ | |
63 | - { title: 'Child Node', key: `${treeNode.eventKey}-0` }, | |
64 | - { title: 'Child Node', key: `${treeNode.eventKey}-1` }, | |
65 | - ]; | |
66 | - } | |
67 | - }); | |
67 | + const asyncTreeAction: TreeActionType | null = unref(asyncTreeRef); | |
68 | + if (asyncTreeAction) { | |
69 | + const nodeChildren = [ | |
70 | + { title: `Child Node ${treeNode.eventKey}-0`, key: `${treeNode.eventKey}-0` }, | |
71 | + { title: `Child Node ${treeNode.eventKey}-1`, key: `${treeNode.eventKey}-1` }, | |
72 | + ]; | |
73 | + asyncTreeAction.updateNodeByKey(treeNode.eventKey, { children: nodeChildren }); | |
74 | + asyncTreeAction.setExpandedKeys([ | |
75 | + treeNode.eventKey, | |
76 | + ...asyncTreeAction.getExpandedKeys(), | |
77 | + ]); | |
78 | + } | |
79 | + | |
68 | 80 | resolve(); |
69 | 81 | return; |
70 | 82 | }, 1000); |
71 | 83 | }); |
72 | 84 | } |
73 | - return { treeData, handleCheck, tree, onLoadData }; | |
85 | + return { treeData, handleCheck, tree, onLoadData, asyncTreeRef }; | |
74 | 86 | }, |
75 | 87 | }); |
76 | 88 | </script> | ... | ... |