From f3cad9ab97489faafec83097350035e226de7f53 Mon Sep 17 00:00:00 2001 From: dap <15891557205@163.com> Date: Tue, 8 Oct 2024 11:09:40 +0800 Subject: [PATCH] feat: tree search --- .../src/views/system/user/dept-tree.vue | 79 ++++++++++++++----- 1 file changed, 60 insertions(+), 19 deletions(-) diff --git a/apps/web-antd/src/views/system/user/dept-tree.vue b/apps/web-antd/src/views/system/user/dept-tree.vue index eb89b80a..efc5dca0 100644 --- a/apps/web-antd/src/views/system/user/dept-tree.vue +++ b/apps/web-antd/src/views/system/user/dept-tree.vue @@ -3,49 +3,90 @@ import type { DeptTree } from '#/api/system/user/model'; import { onMounted, type PropType, ref } from 'vue'; -import { Empty, Skeleton, Tree } from 'ant-design-vue'; +import { SyncOutlined } from '@ant-design/icons-vue'; +import { Empty, InputSearch, Skeleton, Tree } from 'ant-design-vue'; import { getDeptTree } from '#/api/system/user'; defineOptions({ inheritAttrs: false }); -defineEmits<{ select: [] }>(); +const emit = defineEmits<{ select: [] }>(); const selectDeptId = defineModel('selectDeptId', { required: true, type: Array as PropType, }); +const searchValue = defineModel('searchValue', { + type: String, + default: '', +}); + /** 部门数据源 */ type DeptTreeArray = DeptTree[]; const deptTreeArray = ref([]); /** 骨架屏加载 */ const showTreeSkeleton = ref(true); -onMounted(async () => { +async function reload() { + showTreeSkeleton.value = true; + searchValue.value = ''; + selectDeptId.value = []; + const ret = await getDeptTree(); + emit('select'); + deptTreeArray.value = ret; showTreeSkeleton.value = false; -}); +} + +onMounted(reload);