From e181f04c642204e79749af93fa921875ff6c21ba Mon Sep 17 00:00:00 2001 From: baoshiwei <baoshiwei@shlanbao.cn> Date: 星期二, 20 五月 2025 10:46:35 +0800 Subject: [PATCH] refactor(qms): 重构趋势图展示逻辑 --- src/components/UserSelect/index.vue | 45 +++++++++++++++++---------------------------- 1 files changed, 17 insertions(+), 28 deletions(-) diff --git a/src/components/UserSelect/index.vue b/src/components/UserSelect/index.vue index 7f8b185..937a395 100644 --- a/src/components/UserSelect/index.vue +++ b/src/components/UserSelect/index.vue @@ -24,22 +24,16 @@ <transition :enter-active-class="proxy?.animate.searchAnimate.enter" :leave-active-class="proxy?.animate.searchAnimate.leave"> <div v-show="showSearch" class="mb-[10px]"> <el-card shadow="hover"> - <el-form ref="queryFormRef" :model="queryParams" :inline="true" label-width="68px"> + <el-form ref="queryFormRef" :model="queryParams" :inline="true"> <el-form-item label="鐢ㄦ埛鍚嶇О" prop="userName"> - <el-input v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable style="width: 200px" @keyup.enter="handleQuery" /> + <el-input v-model="queryParams.userName" placeholder="璇疯緭鍏ョ敤鎴峰悕绉�" clearable @keyup.enter="handleQuery" /> </el-form-item> <el-form-item label="鎵嬫満鍙风爜" prop="phonenumber"> - <el-input - v-model="queryParams.phonenumber" - placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" - clearable - style="width: 200px" - @keyup.enter="handleQuery" - /> + <el-input v-model="queryParams.phonenumber" placeholder="璇疯緭鍏ユ墜鏈哄彿鐮�" clearable @keyup.enter="handleQuery" /> </el-form-item> <el-form-item> <el-button type="primary" icon="Search" @click="handleQuery">鎼滅储</el-button> - <el-button icon="Refresh" @click="resetQuery">閲嶇疆</el-button> + <el-button icon="Refresh" @click="() => resetQuery()">閲嶇疆</el-button> </el-form-item> </el-form> </el-card> @@ -49,7 +43,7 @@ <el-card shadow="hover"> <template v-if="prop.multiple" #header> <el-tag v-for="user in selectUserList" :key="user.userId" closable style="margin: 2px" @close="handleCloseTag(user)"> - {{ user.userName }} + {{ user.nickName }} </el-tag> </template> @@ -106,14 +100,14 @@ <script setup lang="ts"> import api from '@/api/system/user'; import { UserQuery, UserVO } from '@/api/system/user/types'; -import { DeptVO } from '@/api/system/dept/types'; +import { DeptTreeVO, DeptVO } from '@/api/system/dept/types'; import { VxeTableInstance } from 'vxe-table'; import useDialog from '@/hooks/useDialog'; interface PropType { modelValue?: UserVO[] | UserVO | undefined; multiple?: boolean; - data?: string | number | (string | number)[]; + data?: string | number | (string | number)[] | undefined; } const prop = withDefaults(defineProps<PropType>(), { multiple: true, @@ -131,7 +125,7 @@ const total = ref(0); const dateRange = ref<[DateModelType, DateModelType]>(['', '']); const deptName = ref(''); -const deptOptions = ref<DeptVO[]>([]); +const deptOptions = ref<DeptTreeVO[]>([]); const selectUserList = ref<UserVO[]>([]); const deptTreeRef = ref<ElTreeInstance>(); @@ -171,8 +165,8 @@ }; const computedIds = (data) => { - if (data instanceof Array) { - return [...data]; + if (data instanceof Array) { + return data.map(item => String(item)); } else if (typeof data === 'string') { return data.split(','); } else if (typeof data === 'number') { @@ -224,13 +218,13 @@ getList(); }; /** 閲嶇疆鎸夐挳鎿嶄綔 */ -const resetQuery = () => { +const resetQuery = (refresh = true) => { dateRange.value = ['', '']; queryFormRef.value?.resetFields(); queryParams.value.pageNum = 1; queryParams.value.deptId = undefined; deptTreeRef.value?.setCurrentKey(undefined); - handleQuery(); + refresh && handleQuery(); }; const handleCheckboxChange = (checked) => { @@ -289,24 +283,19 @@ watch( () => userDialog.visible.value, - (newValue: boolean) => { - console.log(selectUserList.value) - + async (newValue: boolean) => { if (newValue) { - initSelectUser(); + await getTreeSelect(); // 鍒濆鍖栭儴闂ㄦ暟鎹� + await getList(); // 鍒濆鍖栧垪琛ㄦ暟鎹� + await initSelectUser(); } else { tableRef.value.clearCheckboxReserve(); tableRef.value.clearCheckboxRow(); - resetQuery(); + resetQuery(false); selectUserList.value = []; } } ); - -onMounted(() => { - getTreeSelect(); // 鍒濆鍖栭儴闂ㄦ暟鎹� - getList(); // 鍒濆鍖栧垪琛ㄦ暟鎹� -}); defineExpose({ open: userDialog.openDialog, -- Gitblit v1.9.3