From 39f97341210dabcffbd50f1cea5bd697a602bb7b Mon Sep 17 00:00:00 2001
From: zhouwx <1175765986@qq.com>
Date: 星期三, 05 三月 2025 15:34:30 +0800
Subject: [PATCH] bug修改

---
 src/views/safetyReview/userManage/expertUsers/index.vue |  123 ++++++++++++++++++++++++++++++++++++----
 1 files changed, 109 insertions(+), 14 deletions(-)

diff --git a/src/views/safetyReview/userManage/expertUsers/index.vue b/src/views/safetyReview/userManage/expertUsers/index.vue
index 96d9db1..562d129 100644
--- a/src/views/safetyReview/userManage/expertUsers/index.vue
+++ b/src/views/safetyReview/userManage/expertUsers/index.vue
@@ -8,13 +8,15 @@
                 @click="openDialog('add',{})"
             >新增</el-button>
         </div>
-        <div style="margin-top: 15px;margin-bottom: 15px">
+        <div style="margin-top: 15px;margin-bottom: 15px;">
             <el-radio-group v-model="queryParams.expertType">
                 <el-radio-button label="">全部</el-radio-button>
                 <el-radio-button label="1">安全评价</el-radio-button>
                 <el-radio-button label="2">检验检测</el-radio-button>
             </el-radio-group>
+
         </div>
+        <div style="margin-bottom: 20px"><span style="font-size: 16px;color: #ed5565;">提示:疆外企业无需上传社保、医保、工资清单,疆内企业需每季度进行更新。</span></div>
         <div style="margin-bottom: 15px; display: flex;align-items: center">
           <el-input
               v-model="queryParams.name"
@@ -26,6 +28,26 @@
               placeholder="手机号"
               style="width: 220px;margin-right: 12px"
           />
+          <el-select
+              v-model="queryParams.agencyName"
+              filterable
+              remote
+              @change="selectValue"
+              reserve-keyword
+              placeholder="所属机构"
+              remote-show-suffix
+              :remote-method="getCompanyList"
+              :loading="loadingCompany"
+              style="width: 240px;margin-right: 12px"
+              clearable
+          >
+            <el-option
+                v-for="item in data.companyList"
+                :key="item.id"
+                :label="item.name"
+                :value="item.name"
+            />
+          </el-select>
           <el-select v-model="queryParams.level" style="width: 220px;margin-right: 12px" placeholder="评价师等级" >
             <el-option
                 v-for="item in levelList"
@@ -42,7 +64,7 @@
                 :value="item.id"
             />
           </el-select>
-          <el-select v-model="queryParams.post" style="width: 220px;margin-right: 12px" placeholder="请选择职务">
+          <el-select v-model="queryParams.post" style="width: 220px;margin-right: 12px" placeholder="职务">
             <el-option
                 v-for="item in postList"
                 :key="item.id"
@@ -56,7 +78,7 @@
 
         <!-- 表格数据 -->
         <el-table v-loading="loading" :data="dataList" :border="true">
-            <el-table-column label="用户ID" prop="id" align="center"  />
+            <el-table-column label="序号" type="index" align="center" width="60" />
             <el-table-column label="姓名" prop="name" align="center" width="110" />
             <el-table-column label="手机号" prop="phone" align="center" width="125" />
             <el-table-column label="用户名" prop="username" align="center" width="110" />
@@ -79,7 +101,7 @@
                               :preview-src-list="scope.row.socialAttach"
                               :initial-index="0"
                               fit="cover"
-                              preview-teleported="true"
+                              :preview-teleported=true
                           />
                     </div>
                 </template>
@@ -96,7 +118,7 @@
                             :preview-src-list="scope.row.medicalAttach"
                             :initial-index="0"
                             fit="cover"
-                            preview-teleported="true"
+                            :preview-teleported=true
                         />
                     </div>
                 </template>
@@ -113,17 +135,40 @@
                             :preview-src-list="scope.row.salaryAttach"
                             :initial-index="0"
                             fit="cover"
-                            preview-teleported="true"
+                            :preview-teleported=true
                         />
                     </div>
                 </template>
             </el-table-column>
+          <el-table-column label="证件照" prop="idPhoto" align="center" width="120">
+            <template #default="scope">
+              <div class="demo-image__preview" v-if="scope.row.idPhoto && scope.row.idPhoto.length>0">
+                <el-image
+                    style="width: 100px; height: 100px"
+                    :src= "scope.row.idPhoto[0]"
+                    :zoom-rate="1.2"
+                    :max-scale="7"
+                    :min-scale="0.2"
+                    :preview-src-list="scope.row.idPhoto"
+                    :initial-index="0"
+                    fit="cover"
+                    :preview-teleported=true
+                />
+              </div>
+            </template>
+          </el-table-column>
             <el-table-column label="职务" prop="post" align="center" width="120" />
             <el-table-column label="职称" prop="jobTitle" align="center"  />
             <el-table-column label="专业方向" prop="majorNames" align="center" width="100" />
             <el-table-column label="评价师等级" prop="level" align="center" width="100" />
-            <el-table-column label="业绩汇总" prop="summary" align="center"  />
-            <el-table-column label="最近评价时间" prop="lastTime" align="center" width="120" />
+            <el-table-column label="业绩汇总" prop="summary" align="center">
+              <template #default="scope">
+                  <div style="cursor:pointer;color: #3b82f6;" @click="openList(scope.row)">
+                    <span>{{scope.row.projectCount}}</span>
+                  </div>
+              </template>
+            </el-table-column>
+            <el-table-column label="最近评价时间" prop="lastEstimateTime" align="center" width="120" />
             <el-table-column label="操作" align="center" class-name="small-padding fixed-width" width="140" >
                 <template #default="scope">
                     <el-button link type="primary"  @click="openDialog('edit',scope.row)">编辑</el-button>
@@ -140,6 +185,7 @@
             v-model:limit="queryParams.pageSize"
             @pagination="getList"
         />
+        <project-dialog ref="projectRef" @getList="getList"></project-dialog>
         <expert-dialog ref="expertRef" @getList="getList" :majorList="majorList" :levelList="levelList" :postList="postList"></expert-dialog>
     </div>
 </template>
@@ -149,11 +195,15 @@
 import expertDialog from "./components/expertDialog.vue"
 import {getDictList} from "@/api/backManage/evaluate";
 import {ElMessage, ElMessageBox} from "element-plus";
+import projectDialog from "./components/projectDialog.vue";
+import noPic from '@/assets/images/noPic.png'
 import Cookies from "js-cookie";
 import {delMonitor, getExpertList, getMonitorList} from "@/api/sysUsers";
+import {getAllAgency} from "@/api/backManage/insitution";
 const { proxy } = getCurrentInstance();
 const loading = ref(false);
 const expertRef = ref();
+const projectRef = ref();
 const data = reactive({
     queryParams: {
       pageNum: 1,
@@ -163,7 +213,8 @@
       phone: '',
       level: '',
       major: null,
-      post: ''
+      post: '',
+      agencyName: ''
     },
     total: 0,
     dataList: [],
@@ -207,7 +258,8 @@
         id: '5',
         name: '员工'
       },
-    ]
+    ],
+  companyList: []
 });
 
 const { queryParams, total, dataList, majorList, levelList, postList } = toRefs(data);
@@ -215,6 +267,23 @@
     getList()
   getMajor()
 })
+const loadingCompany = ref(false)
+const getCompanyList = async (val)=>{
+  if(val != ""){
+    loadingCompany.value = true;
+    const queryParams = {
+      name: val
+    }
+    const res = await getAllAgency(queryParams)
+    if (res.code == 200) {
+      loadingCompany.value = false;
+      data.companyList = res.data
+
+    } else {
+      ElMessage.warning(res.message)
+    }
+  }
+}
 const getList = async () => {
     loading.value = true
     const res = await getExpertList(data.queryParams)
@@ -222,9 +291,12 @@
         data.dataList = res.data.list.map(item => {
             return{
                 ...item,
-                socialAttach: item.socialAttach.map(s => { return import.meta.env.VITE_APP_BASE_API + '/' + s.path}),
-                medicalAttach: item.medicalAttach.map(s => { return import.meta.env.VITE_APP_BASE_API + '/' + s.path}),
-                salaryAttach: item.salaryAttach.map(s => { return import.meta.env.VITE_APP_BASE_API + '/' + s.path})
+                socialAttach: item.socialAttach.length >0 ?item.socialAttach.map(s => { return import.meta.env.VITE_APP_BASE_API + '/' + s.path}): [noPic],
+                medicalAttach: item.medicalAttach.length > 0 ?item.medicalAttach.map(s => { return import.meta.env.VITE_APP_BASE_API + '/' + s.path}):[noPic],
+                salaryAttach: item.salaryAttach.length > 0 ? item.salaryAttach.map(s => { return import.meta.env.VITE_APP_BASE_API + '/' + s.path}):[noPic],
+                idPhoto: item.idPhoto ? [import.meta.env.VITE_APP_BASE_API + '/' + item.idPhoto ] : [noPic],
+                lastEstimateTime: item.personProjectVO ? item.personProjectVO.lastEstimateTime.slice(0,10) : '',
+                projectCount: item.personProjectVO ? item.personProjectVO.projectCount : ''
             }
         })
         console.log('RES',data.dataList)
@@ -263,13 +335,24 @@
     phone: '',
     level: '',
     major: null,
-    post: ''
+    post: '',
+    agencyName: ''
   }
+  data.companyList = []
   getList()
 }
 
 const openDialog = (type, value) => {
     expertRef.value.openDialog(type, value);
+}
+const changeType = (val) => {
+    console.log("val", val)
+    queryParams.expertType = val;
+    queryParams.pageNum = 1;
+    getList();
+}
+const openList = (val) => {
+  projectRef.value.openDialog(val);
 }
 
 /** 重置新增的表单以及其他数据  */
@@ -296,6 +379,18 @@
         })
 }
 
+const selectValue = (val) => {
+  console.log('val',val)
+  if(val == ""){
+    data.companyList = []
+  }
+  // data.companyList.forEach(item => {
+  //   if(item.name === val){
+  //     data.queryParams.companyId = item.id
+  //   }
+  // })
+}
+
 </script>
 <style scoped lang="scss">
 .demo-image__error .image-slot {

--
Gitblit v1.9.2