提交 5637588f 作者: 无木

fix(demo): fix async tree demo, fixed: #823

上级 5a20df45
...@@ -27,19 +27,26 @@ ...@@ -27,19 +27,26 @@
/> />
</div> </div>
<div class="flex"> <div class="flex">
<BasicTree title="异步树" :treeData="tree" class="w-1/3" :load-data="onLoadData" /> <BasicTree
title="异步树"
ref="asyncTreeRef"
:treeData="tree"
class="w-1/3"
:load-data="onLoadData"
/>
</div> </div>
</PageWrapper> </PageWrapper>
</template> </template>
<script lang="ts"> <script lang="ts">
import { defineComponent, ref } from 'vue'; import { defineComponent, ref, unref } from 'vue';
import { BasicTree } from '/@/components/Tree/index'; import { BasicTree, TreeActionType } from '/@/components/Tree/index';
import { treeData } from './data'; import { treeData } from './data';
import { PageWrapper } from '/@/components/Page'; import { PageWrapper } from '/@/components/Page';
export default defineComponent({ export default defineComponent({
components: { BasicTree, PageWrapper }, components: { BasicTree, PageWrapper },
setup() { setup() {
const asyncTreeRef = ref<Nullable<TreeActionType>>(null);
function handleCheck(checkedKeys, e) { function handleCheck(checkedKeys, e) {
console.log('onChecked', checkedKeys, e); console.log('onChecked', checkedKeys, e);
} }
...@@ -57,20 +64,25 @@ ...@@ -57,20 +64,25 @@
return; return;
} }
setTimeout(() => { setTimeout(() => {
tree.value.forEach((v) => { const asyncTreeAction: TreeActionType | null = unref(asyncTreeRef);
if (v.key === treeNode.eventKey) { if (asyncTreeAction) {
v.children = [ const nodeChildren = [
{ title: 'Child Node', key: `${treeNode.eventKey}-0` }, { title: `Child Node ${treeNode.eventKey}-0`, key: `${treeNode.eventKey}-0` },
{ title: 'Child Node', key: `${treeNode.eventKey}-1` }, { title: `Child Node ${treeNode.eventKey}-1`, key: `${treeNode.eventKey}-1` },
]; ];
} asyncTreeAction.updateNodeByKey(treeNode.eventKey, { children: nodeChildren });
}); asyncTreeAction.setExpandedKeys([
treeNode.eventKey,
...asyncTreeAction.getExpandedKeys(),
]);
}
resolve(); resolve();
return; return;
}, 1000); }, 1000);
}); });
} }
return { treeData, handleCheck, tree, onLoadData }; return { treeData, handleCheck, tree, onLoadData, asyncTreeRef };
}, },
}); });
</script> </script>
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论