From cc3e08bda13360c88b7189e8f8d043b60783c7fb Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期四, 21 十一月 2024 16:46:32 +0800
Subject: [PATCH] 新增

---
 src/views/safetyReview/expertManage/experts/index.vue |  141 ++++++++++++++++++++++++++++++++++++++---------
 1 files changed, 114 insertions(+), 27 deletions(-)

diff --git a/src/views/safetyReview/expertManage/experts/index.vue b/src/views/safetyReview/expertManage/experts/index.vue
index b8435a5..26a6f23 100644
--- a/src/views/safetyReview/expertManage/experts/index.vue
+++ b/src/views/safetyReview/expertManage/experts/index.vue
@@ -4,12 +4,15 @@
         <el-form-item label="姓名">
           <el-input v-model.trim="queryParams.name" placeholder="请输入姓名"></el-input>
         </el-form-item>
+        <el-form-item label="身份证号">
+          <el-input v-model.trim="queryParams.idCard" placeholder="请输入身份证号"></el-input>
+        </el-form-item>
         <el-form-item label="专业类别">
           <el-cascader
               clearable
-              v-model="classiFy"
+              v-model="queryParams.domain"
               :options="expertTypes"
-              :props="{ expandTrigger: 'hover', value: 'id',label: 'classifyName'}"
+              :props="{ expandTrigger: 'hover', value: 'classifyName',label: 'classifyName'}"
               @change="handleChange"></el-cascader>
         </el-form-item>
         <el-form-item label="在岗情况" prop="dutyStatus">
@@ -29,6 +32,13 @@
               value-format="YYYY-MM-DD"
           />
         </el-form-item>
+        <el-form-item label="评定级别">
+          <el-radio-group v-model="queryParams.ratingLevel">
+            <el-radio-button label="1">一级</el-radio-button>
+            <el-radio-button label="2">二级</el-radio-button>
+            <el-radio-button label="3">三级</el-radio-button>
+          </el-radio-group>
+        </el-form-item>
         <el-form-item>
           <el-button type="primary" icon="Search" @click="handleQuery">搜索</el-button>
           <el-button icon="Refresh" @click="resetQuery">重置</el-button>
@@ -38,7 +48,11 @@
         <el-table-column type="index" width="55" align="center" />
         <el-table-column label="姓名" align="center" prop="name" />
         <el-table-column label="身份证号" align="center" prop="idCard" />
-        <el-table-column label="出生日期" align="center" prop="birthdayName" />
+        <el-table-column label="出生日期" align="center" prop="birthday">
+          <template #default="scope">
+            {{scope.row.birthday.slice(0,10)}}
+          </template>
+        </el-table-column>
         <el-table-column label="性别" align="center" prop="sex"  >
           <template #default="scope">
             <span>{{scope.row.sex === 0 ? '男' : '女'}}</span>
@@ -55,10 +69,42 @@
         <el-table-column label="单位全称" align="center" prop="companyName"/>
         <el-table-column label="现从事专业及方向" align="center" prop="currentProfession"/>
         <el-table-column label="联系方式" align="center" prop="phone"/>
-        <el-table-column label="支撑方向" align="center" prop="supportDirectionSafety"/>
+        <el-table-column label="支撑方向" align="center">
+          <template #default="scope">
+            {{ getSupport(scope.row.supportDirectionSafety, scope.row.supportDirectionPrevention, scope.row.supportDirectionEmergency) }}
+<!--            directionList-->
+          </template>
+        </el-table-column>
         <el-table-column label="专家领域" align="center" prop="domain"/>
         <el-table-column label="入库分级" align="center" prop="level"/>
-        <el-table-column label="操作" align="center" class-name="small-padding fixed-width">
+        <el-table-column label="评定级别" align="center" prop="ratingLevel">
+          <template #default="scope">
+            {{scope.row.ratingLevel == 1?'一级':scope.row.ratingLevel == 2?'二级':scope.row.ratingLevel == 3?'三级':'--'}}
+          </template>
+        </el-table-column>
+        <el-table-column label="聘书有效时间" align="center" prop="">
+          <template #default="scope">
+            {{scope.row.employmentDateStart}}/{{scope.row.employmentDateEnd}}
+          </template>
+        </el-table-column>
+        <el-table-column label="专家聘书" align="center" prop="expertCertificate">
+          <template #default="scope">
+            <div class="demo-image__preview" v-if="scope.row.expertCertificate && scope.row.expertCertificate!==''">
+              <el-image
+                  style="width: 100px; height: 100px"
+                  :src= "scope.row.expertCertificate"
+                  :zoom-rate="1.2"
+                  :max-scale="7"
+                  :min-scale="0.2"
+                  :preview-src-list="[scope.row.expertCertificate]"
+                  :initial-index="0"
+                  fit="cover"
+                  :preview-teleported=true
+              />
+            </div>
+          </template>
+        </el-table-column>
+        <el-table-column label="操作" align="center" fixed="right" class-name="small-padding fixed-width">
           <template #default="scope">
             <el-button type="primary" link @click="openDialog('view',scope.row)">查看</el-button>
           </template>
@@ -89,26 +135,49 @@
   expertTypes: [],
   expertList: [],
   queryParams: {
+    name: '',
     pageNum: 1,
     pageSize: 10,
-    state: 2,
-    bigClassify: null,
-    smallClassify: null,
-    dutyStatus: null,
+    idCard: '',
+    dutyStatus: '',
+    domain: '',
+    ratingLevel: null,
     params: {
       startTime: '',
       endTime: ''
     }
   },
   classiFy: [],
-  searchTime: []
+  searchTime: [],
+  directionList: [
+    {
+      value: '1',
+      label: '现场检查'
+    },
+    {
+      value: '2',
+      label: '调查评估'
+    },
+    {
+      value: '3',
+      label: '咨询服务'
+    },
+    {
+      value: '4',
+      label: '教育培训'
+    },
+    {
+      value: '5',
+      label: '其他'
+    }
+  ],
 });
 
 const { showSearch,total, expertTypes,expertList,queryParams,classiFy,searchTime} = toRefs(data);
 const expertFormRef = ref()
 onMounted(()=>{
-  // getList()
-  // getTypes()
+  getList()
+  getTypes()
 })
 
 onUnmounted(()=>{
@@ -153,12 +222,34 @@
   return null;
 }
 
+const getSupport =(safety,prevention,emergency)=>{
+  let str = []
+  let safeArr = safety?.split(',')
+  let preventArr = prevention?.split(',')
+  let emergencyArr = emergency?.split(',')
+  if(Array.isArray(safeArr) && !safeArr.includes("")){
+    safeArr = safeArr.map(i=>{
+      return data.directionList.find(item=>item.value == i)?.label
+    })
+    str.push(`安全生产(${safeArr.join('、')})`)
+  }
+  if(Array.isArray(preventArr) && !preventArr.includes("")){
+    preventArr = preventArr.map(i=>{
+      return data.directionList.find(item=>item.value == i)?.label
+    })
+    str.push(`防灾减灾(${preventArr.join('、')})`)
+  }
+  if(Array.isArray(emergencyArr) && !emergencyArr.includes("")){
+    emergencyArr = emergencyArr.map(i=>{
+      return data.directionList.find(item=>item.value == i)?.label
+    })
+    str.push(`应急救援(${emergencyArr.join('、')})`)
+  }
+  return str.join(',')
+}
+
 const handleQuery=()=> {
   data.queryParams.pageNum = 1
-  if(data.classiFy && data.classiFy.length>0){
-    data.queryParams.bigClassify = data.classiFy[0]
-    data.queryParams.smallClassify = data.classiFy[1]
-  }
   if(data.searchTime && data.searchTime.length>0){
     data.queryParams.params.startTime = data.searchTime[0]
     data.queryParams.params.endTime = data.searchTime[1]
@@ -170,13 +261,8 @@
   loading.value = true;
   const res = await getExpertsList(data.queryParams)
   if(res.code == 200){
-    data.expertList = res.data.map(item => {
-      return{
-        ...item,
-        birthdayName: item.birthday ? item.birthday.slice(0,10) : ''
-      }
-    })
-    data.total = res.data.total
+    data.expertList = res.rows
+    data.total = res.total
   }else{
     ElMessage.warning(res.msg)
   }
@@ -189,12 +275,13 @@
 
 const resetQuery=()=> {
   data.queryParams = {
+    name: '',
     pageNum: 1,
     pageSize: 10,
-    state: 2,
-    bigClassify: null,
-    smallClassify: null,
-    dutyStatus: null,
+    idCard: '',
+    dutyStatus: '',
+    domain: '',
+    ratingLevel: null,
     params: {
       startTime: '',
       endTime: ''

--
Gitblit v1.9.2