Commit 9298b3c988c10b81d83430ca31b9ce1d98a3fad9

Authored by JinMao
1 parent 8d22231a

feat: add Tree LoadData demo

Showing 1 changed file with 32 additions and 2 deletions
src/views/demo/tree/index.vue
@@ -26,10 +26,13 @@ @@ -26,10 +26,13 @@
26 class="w-1/3" 26 class="w-1/3"
27 /> 27 />
28 </div> 28 </div>
  29 + <div class="flex">
  30 + <BasicTree title="异步树" :treeData="tree" class="w-1/3" :load-data="onLoadData" />
  31 + </div>
29 </PageWrapper> 32 </PageWrapper>
30 </template> 33 </template>
31 <script lang="ts"> 34 <script lang="ts">
32 - import { defineComponent } from 'vue'; 35 + import { defineComponent, ref } from 'vue';
33 import { BasicTree } from '/@/components/Tree/index'; 36 import { BasicTree } from '/@/components/Tree/index';
34 import { treeData } from './data'; 37 import { treeData } from './data';
35 import { PageWrapper } from '/@/components/Page'; 38 import { PageWrapper } from '/@/components/Page';
@@ -40,7 +43,34 @@ @@ -40,7 +43,34 @@
40 function handleCheck(checkedKeys, e) { 43 function handleCheck(checkedKeys, e) {
41 console.log('onChecked', checkedKeys, e); 44 console.log('onChecked', checkedKeys, e);
42 } 45 }
43 - return { treeData, handleCheck }; 46 + const tree = ref([
  47 + {
  48 + title: 'parent ',
  49 + key: '0-0',
  50 + },
  51 + ]);
  52 +
  53 + function onLoadData(treeNode) {
  54 + return new Promise((resolve: (value?: unknown) => void) => {
  55 + if (!treeNode.children) {
  56 + resolve();
  57 + return;
  58 + }
  59 + 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 + });
  68 + resolve();
  69 + return;
  70 + }, 1000);
  71 + });
  72 + }
  73 + return { treeData, handleCheck, tree, onLoadData };
44 }, 74 },
45 }); 75 });
46 </script> 76 </script>