3 changed files with 17 additions and 66 deletions
@ -1,63 +0,0 @@ |
|||||||
<script lang="ts" setup> |
|
||||||
import { onMounted, ref } from 'vue' |
|
||||||
import type { EventDataNode } from 'ant-design-vue/es/tree' |
|
||||||
import { BasicTree } from '@/components/Tree' |
|
||||||
import { lazyGetDeptList } from '@/api/system/dept' |
|
||||||
import type { Department, LazyGetDeptListParams } from '@/api/system/dept/types' |
|
||||||
|
|
||||||
defineOptions({ name: 'SystemDeptTree' }) |
|
||||||
defineProps<{ dept?: string }>() |
|
||||||
const emit = defineEmits(['update:dept']) |
|
||||||
|
|
||||||
const departmentList = ref<Department[]>([]) |
|
||||||
|
|
||||||
async function requestDeptList(params?: LazyGetDeptListParams) { |
|
||||||
return lazyGetDeptList(params) |
|
||||||
.then((res) => { |
|
||||||
return res.map((item) => { |
|
||||||
return { |
|
||||||
...item, |
|
||||||
isLeaf: !item.hasChildren, |
|
||||||
} |
|
||||||
}) |
|
||||||
}) |
|
||||||
} |
|
||||||
|
|
||||||
const basicTreeRef = ref<InstanceType<typeof BasicTree>>() |
|
||||||
async function onLoadDeptList(treeNode: EventDataNode) { |
|
||||||
try { |
|
||||||
return await requestDeptList({ parentId: treeNode.id }) |
|
||||||
} |
|
||||||
catch { |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
onMounted(() => { |
|
||||||
requestDeptList() |
|
||||||
.then((res) => { |
|
||||||
departmentList.value = res |
|
||||||
}) |
|
||||||
}) |
|
||||||
|
|
||||||
function onSelect(value: string[]) { |
|
||||||
emit('update:dept', value[0] || '') |
|
||||||
} |
|
||||||
</script> |
|
||||||
|
|
||||||
<template> |
|
||||||
<div class="box-border h-full py-12px pl-12px" v-bind="$attrs"> |
|
||||||
<BasicTree |
|
||||||
ref="basicTreeRef" |
|
||||||
title="部门列表" |
|
||||||
:click-row-to-expand="false" |
|
||||||
:tree-data="departmentList" |
|
||||||
:field-names="{ key: 'id', title: 'deptName' }" |
|
||||||
:load-data="onLoadDeptList" |
|
||||||
@select="onSelect" |
|
||||||
> |
|
||||||
<template #icon> |
|
||||||
<span class="i-ant-design:deployment-unit-outlined" /> |
|
||||||
</template> |
|
||||||
</BasicTree> |
|
||||||
</div> |
|
||||||
</template> |
|
Loading…
Reference in new issue