From df5b61dcf9d7c6a71ba919b0556ea9aa43aa3f76 Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期一, 08 五月 2023 10:00:43 +0800
Subject: [PATCH] 修改展示

---
 src/views/analyse/plan/index.vue |  149 ++++++++++++++++++++++++++++---------------------
 1 files changed, 86 insertions(+), 63 deletions(-)

diff --git a/src/views/analyse/plan/index.vue b/src/views/analyse/plan/index.vue
index 0ec5b78..8b4814d 100644
--- a/src/views/analyse/plan/index.vue
+++ b/src/views/analyse/plan/index.vue
@@ -85,16 +85,26 @@
         </div>
         <plan-dialog ref="planDialogRef" @refresh="getPlanData"></plan-dialog>
 
-        <el-dialog :title="planState.reSendTitle" v-model="planState.reSendDialogVisible" width="50%">
+        <el-dialog class="chooseExpert" :title="planState.reSendTitle" v-model="planState.reSendDialogVisible" width="50%">
           <el-form ref="ruleFormRef" :rules="planState.rules" :model="planState.reSendForm" label-width="120px">
-            <el-form-item v-if="planState.reSendTitle == '指派辨识专家'" label="选择辨识专家" prop="identificationUserId">
-              <el-select v-model="planState.reSendForm.identificationUserId" style="width:100%"  placeholder="辨识专家" clearable>
-                <el-option v-for="item in planState.personList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
+            <el-form-item v-if="planState.reSendTitle == '指派辨识专家'" label="选择辨识专家" prop="identificationUserId" class="valueSelect">
+              <el-select v-model="planState.reSendForm.identificationUserId" style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
+                <el-option v-for="item in planState.bsExperts" :key="item.id" :label="item.realName" :value="item.id">
+                  <div class="valueTable">
+                    <div><div>姓名:</div><span>{{item.realName}}</span></div>
+                    <div><div>专业:</div><span>{{item.userIdentities?.map(i=>i.userIdentity).join(',')}}</span></div>
+                  </div>
+                </el-option>
               </el-select>
             </el-form-item>
-            <el-form-item v-if="planState.reSendTitle == '指派评价专家'" label="选择评价专家" prop="evaluateUserId">
-              <el-select v-model="planState.reSendForm.evaluateUserId" style="width:100%"  placeholder="评价专家" clearable>
-                <el-option v-for="item in planState.personList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
+            <el-form-item v-if="planState.reSendTitle == '指派评价专家'" label="选择评价专家" prop="evaluateUserId" class="valueSelect">
+              <el-select v-model="planState.reSendForm.evaluateUserId" style="width:100%" :teleported="false" placeholder="评价专家" clearable>
+                <el-option v-for="item in planState.pjExperts" :key="item.id" :label="item.realName" :value="item.id">
+                  <div class="valueTable">
+                    <div><div>姓名:</div><span>{{item.realName}}</span></div>
+                    <div><div>专业:</div><span>{{item.userIdentities?.map(i=>i.userIdentity).join(',')}}</span></div>
+                  </div>
+                </el-option>
               </el-select>
             </el-form-item>
           </el-form>
@@ -140,6 +150,8 @@
     riskUnitList: [
     ],
     personList: [],
+    bsExperts: [],
+    pjExperts: [],
     identificationMethodList: [
         {id:1, name: 'PHA'},
         {id:2, name: 'JHA'},
@@ -216,8 +228,34 @@
     }
 };
 
+const getAllExperts = async () => {
+  let res = await userApi().getExpertsList({
+    pageIndex: 1,
+    pageSize: 99999,
+    searchParams:{
+      userIndentityId: null
+    }
+  });
+  if (res.data.code === 100) {
+    const expertsList = res.data.data;
+    for(let i of expertsList){
+      if(i.roles?.find(obj=>obj.roleId == 2)){
+        planState.bsExperts.push(i)
+      }
+      if(i.roles?.find(obj=>obj.roleId == 3)){
+        planState.pjExperts.push(i)
+      }
+    }
+  } else {
+    ElMessage({
+      type: 'warning',
+      message: res.data.msg
+    });
+  }
+};
+
 const openPlanDialog = (title: string, value: PlanType) => {
-    planDialogRef.value.showPlanDialog(title, value, planState.riskUnitList, planState.personList);
+    planDialogRef.value.showPlanDialog(title, value, planState.riskUnitList, planState.personList,planState.bsExperts,planState.pjExperts);
 };
 
 const refuseIdentify = async(val: PlanType)=>{
@@ -407,6 +445,7 @@
 onMounted(() => {
     getPlanData();
     getAllRiskUnitList();
+    getAllExperts();
     getPersonList();
     planState.user = Number(userInfos.value.uid)
 })
@@ -415,6 +454,13 @@
 
 <style scoped lang="scss">
 $homeNavLengh: 8;
+::v-deep(.el-dialog){
+  .el-dialog__body{
+    overflow-y: visible !important;
+    overflow-x: visible !important;
+  }
+}
+
 .home-container {
     height: calc(100vh - 144px);
     box-sizing: border-box;
@@ -481,65 +527,42 @@
         }
     }
 }
-.stepItem {
-    width: 100%;
-    display: flex;
-    align-items: flex-start;
-    margin-bottom: 30px;
-    margin-left: 30px;
-    padding-bottom: 30px;
-    border-left: 2px solid #ccc;
-    &:first-of-type {
-        margin-top: 30px;
-    }
-    &:last-of-type {
-        margin-bottom: 0;
-        border-left: none;
-    }
-    .stepNum {
-        width: 30px;
-        height: 30px;
-        border-radius: 15px;
-        box-sizing: border-box;
-        color: #333;
-        border: 1px solid #999;
-        line-height: 28px;
-        text-align: center;
-        margin-right: 10px;
-        margin-left: -16px;
-        margin-top: -30px;
-    }
-    .stepCard {
-        width: 100%;
-        margin-top: -30px;
 
-        .box-card {
-            width: 100%;
-            &:deep(.el-card__header) {
-                padding: 10px 15px;
-            }
-            .card-header {
-                width: 100%;
-                display: flex;
-                justify-content: space-between;
-                align-items: center;
-                & > div:first-of-type {
-                    margin-right: 80px;
-                    font-size: 18px;
-                    font-weight: bold;
-                }
-            }
+.valueSelect{
+  ::v-deep(.el-popper){
+    .el-select-dropdown__item{
+      width: 100%;
+      height: auto;
+      white-space: normal;
+      word-break: break-all;
+      word-wrap: break-word;
+      overflow: auto;
+      padding: 10px 25px;
+      border-bottom: 1px solid #ccc;
+
+      .valueTable{
+        &>div{
+          line-height: 1.5;
+          margin-bottom: 6px;
+          display: flex;
+          align-items: center;
+
+          div{
+            color: #999;
+          }
+
+          span{
+            font-weight: bolder;
+          }
+
+          &:last-of-type{
+            margin-bottom: 0;
+          }
         }
+      }
     }
-    &:hover .card-header {
-        color: #0098f5;
-    }
-    &:hover .stepNum {
-        border: 2px solid #0098f5;
-        color: #0098f5;
-    }
+  }
 }
-
 :deep(.el-date-editor) {
     width: 100%;
 }

--
Gitblit v1.9.2