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