DeptTree.vue 980 B

123456789101112131415161718192021222324252627282930313233343536373839404142
  1. <template>
  2. <div class="bg-white m-4 mr-0 overflow-hidden">
  3. <BasicTree
  4. title="部门列表"
  5. toolbar
  6. search
  7. :clickRowToExpand="false"
  8. :treeData="treeData"
  9. :replaceFields="{ key: 'id', title: 'deptName' }"
  10. @select="handleSelect"
  11. />
  12. </div>
  13. </template>
  14. <script lang="ts">
  15. import { defineComponent, onMounted, ref } from 'vue';
  16. import { BasicTree, TreeItem } from '/@/components/Tree';
  17. import { getDeptList } from '/@/api/demo/system';
  18. export default defineComponent({
  19. name: 'DeptTree',
  20. components: { BasicTree },
  21. emits: ['select'],
  22. setup(_, { emit }) {
  23. const treeData = ref<TreeItem[]>([]);
  24. async function fetch() {
  25. treeData.value = (await getDeptList()) as unknown as TreeItem[];
  26. }
  27. function handleSelect(keys) {
  28. emit('select', keys[0]);
  29. }
  30. onMounted(() => {
  31. fetch();
  32. });
  33. return { treeData, handleSelect };
  34. },
  35. });
  36. </script>