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/applyReview/components/reportDialog.vue      |   44 ++--
 src/views/system/experts/index.vue                             |    2 
 src/views/basic/equipment/components/equipmentDialog.vue       |    6 
 src/views/experiment/project/components/selectEquipment.vue    |    2 
 src/views/system/home/index.vue                                |   22 +
 src/utils/toolsValidate.ts                                     |    2 
 src/views/analyse/identify/index.vue                           |   59 -----
 src/views/experiment/developing/components/selectEquipment.vue |    2 
 src/views/experiment/developing/index.vue                      |    2 
 src/api/systemManage/menu/index.ts                             |    2 
 src/views/basic/equipment/index.vue                            |    6 
 src/views/experiment/developing/components/applyDialog.vue     |    2 
 src/views/analyse/evaluate/index.vue                           |   58 -----
 src/views/analyse/plan/components/planDialog.vue               |   65 +++++
 src/views/experiment/project/components/applyDialog.vue        |    2 
 src/views/analyse/plan/index.vue                               |  149 ++++++++------
 src/views/system/user/index.vue                                |   51 +++--
 src/views/analyse/assessApply/components/reportDialog.vue      |   44 ++--
 src/views/analyse/plan/index.ts                                |    4 
 src/views/experiment/developing/components/developDialog.vue   |   18 +
 src/views/experiment/project/components/projectDialog.vue      |   16 +
 src/views/loginPage/component/accountLogin.vue                 |   24 ++
 src/views/experiment/project/index.vue                         |    2 
 23 files changed, 304 insertions(+), 280 deletions(-)

diff --git a/src/api/systemManage/menu/index.ts b/src/api/systemManage/menu/index.ts
index 84e24af..4f7ac4c 100644
--- a/src/api/systemManage/menu/index.ts
+++ b/src/api/systemManage/menu/index.ts
@@ -17,7 +17,7 @@
         // },
         getMenuAdmin: () => {
             return request({
-                url: import.meta.env.VITE_API_URL + `/sys/console/menu/get/all`,
+                url: import.meta.env.VITE_API_URL + `/sys/menu/get/u`,
                 method: 'get'
             });
         },
diff --git a/src/utils/toolsValidate.ts b/src/utils/toolsValidate.ts
index 46a6162..da8421e 100644
--- a/src/utils/toolsValidate.ts
+++ b/src/utils/toolsValidate.ts
@@ -210,7 +210,7 @@
  */
 export function verifyPhone(val: string) {
     // false: 手机号码不正确
-    if (!/^((12[0-9])|(13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0|1,5-9]))\d{8}$/.test(val)) return false;
+    if (!/^((12[0-9])|(13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(17([7-9]))|(18[0|1,5-9]))\d{8}$/.test(val)) return false;
     // true: 手机号码正确
     else return true;
 }
diff --git a/src/views/analyse/applyReview/components/reportDialog.vue b/src/views/analyse/applyReview/components/reportDialog.vue
index a675922..66e8843 100644
--- a/src/views/analyse/applyReview/components/reportDialog.vue
+++ b/src/views/analyse/applyReview/components/reportDialog.vue
@@ -107,24 +107,6 @@
                         <div>{{item.siteType}}</div>
                       </td>
                     </tr>
-                    <tr>
-                      <td class="w-25 m-color required">评估人</td>
-                      <td class="w-75 m-color">
-<!--                        <el-select style="width: 100%" :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" clearable filterable>-->
-<!--                          <el-option-->
-<!--                              v-for="item in reportDialogState.allPersonList"-->
-<!--                              :key="item.id"-->
-<!--                              :value="item.id"-->
-<!--                              :label="item.personName"-->
-<!--                          ></el-option>-->
-<!--                        </el-select>-->
-                        <el-input :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" placeholder="评估人" />
-                      </td>
-<!--                      <td class="w-25 m-color required">评估时间</td>-->
-<!--                      <td class="w-25 m-color">-->
-<!--                        <el-date-picker :disabled="reportDialogState.disabled"  type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="reportDialogState.reportForm.assessTime" />-->
-<!--                      </td>-->
-                    </tr>
 
                     <tr class="m-color b-font" style="text-align: center">实验概况</tr>
                     <tr>
@@ -162,16 +144,34 @@
                     <tr>
                       <td class="m-color" style="width: 100%">
                         <el-radio-group :disabled="reportDialogState.disabled"  v-model="reportDialogState.reportForm.assessLevel">
-                          <el-radio :label="1">低风险(一级)</el-radio>
-                          <el-radio :label="2">一般风险(二级)</el-radio>
-                          <el-radio :label="3">较大风险(三级)</el-radio>
-                          <el-radio :label="4">重大风险(四级)</el-radio>
+                          <el-radio :label="1">重大风险(一级)</el-radio>
+                          <el-radio :label="2">较大风险(二级)</el-radio>
+                          <el-radio :label="3">一般风险(三级)</el-radio>
+                          <el-radio :label="4">低风险(四级)</el-radio>
                         </el-radio-group>
                       </td>
                     </tr>
                     <tr>
                       <el-input type="textarea" :autosize="{ minRows: 3}" :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.description" placeholder="评定依据(必填)" />
                     </tr>
+                    <tr>
+                      <td class="w-25 m-color required">评估人</td>
+                      <td class="w-75 m-color">
+                        <!--                        <el-select style="width: 100%" :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" clearable filterable>-->
+                        <!--                          <el-option-->
+                        <!--                              v-for="item in reportDialogState.allPersonList"-->
+                        <!--                              :key="item.id"-->
+                        <!--                              :value="item.id"-->
+                        <!--                              :label="item.personName"-->
+                        <!--                          ></el-option>-->
+                        <!--                        </el-select>-->
+                        <el-input :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" placeholder="评估人" />
+                      </td>
+                      <!--                      <td class="w-25 m-color required">评估时间</td>-->
+                      <!--                      <td class="w-25 m-color">-->
+                      <!--                        <el-date-picker :disabled="reportDialogState.disabled"  type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="reportDialogState.reportForm.assessTime" />-->
+                      <!--                      </td>-->
+                    </tr>
                     <tr v-if="reportDialogState.reportForm.person?.length>0" class="m-color b-font" style="text-align: center">审批内容</tr>
                     <template v-if="reportDialogState.reportForm.person?.length>0" v-for="item in reportDialogState.reportForm.person">
                       <tr>
diff --git a/src/views/analyse/assessApply/components/reportDialog.vue b/src/views/analyse/assessApply/components/reportDialog.vue
index f8cca9e..f8d1257 100644
--- a/src/views/analyse/assessApply/components/reportDialog.vue
+++ b/src/views/analyse/assessApply/components/reportDialog.vue
@@ -107,24 +107,6 @@
                         <div>{{item.siteType}}</div>
                       </td>
                     </tr>
-                    <tr>
-                      <td class="w-25 m-color required">评估人</td>
-                      <td class="w-75 m-color">
-<!--                        <el-select style="width: 100%" :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" clearable filterable>-->
-<!--                          <el-option-->
-<!--                              v-for="item in reportDialogState.allPersonList"-->
-<!--                              :key="item.id"-->
-<!--                              :value="item.id"-->
-<!--                              :label="item.personName"-->
-<!--                          ></el-option>-->
-<!--                        </el-select>-->
-                        <el-input :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" placeholder="评估人" />
-                      </td>
-<!--                      <td class="w-25 m-color required">评估时间</td>-->
-<!--                      <td class="w-25 m-color">-->
-<!--                        <el-date-picker :disabled="reportDialogState.disabled"  type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="reportDialogState.reportForm.assessTime" />-->
-<!--                      </td>-->
-                    </tr>
 
                     <tr class="m-color b-font" style="text-align: center">实验概况</tr>
                     <tr>
@@ -162,16 +144,34 @@
                     <tr>
                       <td class="m-color" style="width: 100%">
                         <el-radio-group :disabled="reportDialogState.disabled"  v-model="reportDialogState.reportForm.assessLevel">
-                          <el-radio :label="1">低风险(一级)</el-radio>
-                          <el-radio :label="2">一般风险(二级)</el-radio>
-                          <el-radio :label="3">较大风险(三级)</el-radio>
-                          <el-radio :label="4">重大风险(四级)</el-radio>
+                          <el-radio :label="1">重大风险(一级)</el-radio>
+                          <el-radio :label="2">较大风险(二级)</el-radio>
+                          <el-radio :label="3">一般风险(三级)</el-radio>
+                          <el-radio :label="4">低风险(四级)</el-radio>
                         </el-radio-group>
                       </td>
                     </tr>
                     <tr>
                       <el-input type="textarea" :autosize="{ minRows: 3}" :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.description" placeholder="评定依据(必填)" />
                     </tr>
+                    <tr>
+                      <td class="w-25 m-color required">评估人</td>
+                      <td class="w-75 m-color">
+                        <!--                        <el-select style="width: 100%" :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" clearable filterable>-->
+                        <!--                          <el-option-->
+                        <!--                              v-for="item in reportDialogState.allPersonList"-->
+                        <!--                              :key="item.id"-->
+                        <!--                              :value="item.id"-->
+                        <!--                              :label="item.personName"-->
+                        <!--                          ></el-option>-->
+                        <!--                        </el-select>-->
+                        <el-input :disabled="reportDialogState.disabled" v-model="reportDialogState.reportForm.assessPerson" placeholder="评估人" />
+                      </td>
+                      <!--                      <td class="w-25 m-color required">评估时间</td>-->
+                      <!--                      <td class="w-25 m-color">-->
+                      <!--                        <el-date-picker :disabled="reportDialogState.disabled"  type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="reportDialogState.reportForm.assessTime" />-->
+                      <!--                      </td>-->
+                    </tr>
                     <tr v-if="reportDialogState.reportForm.person?.length>0" class="m-color b-font" style="text-align: center">审批内容</tr>
                     <template v-if="reportDialogState.reportForm.person?.length>0" v-for="item in reportDialogState.reportForm.person">
                       <tr>
diff --git a/src/views/analyse/evaluate/index.vue b/src/views/analyse/evaluate/index.vue
index 81363c1..41ec3e0 100644
--- a/src/views/analyse/evaluate/index.vue
+++ b/src/views/analyse/evaluate/index.vue
@@ -428,64 +428,6 @@
         }
     }
 }
-.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;
-                }
-            }
-        }
-    }
-    &:hover .card-header {
-        color: #0098f5;
-    }
-    &:hover .stepNum {
-        border: 2px solid #0098f5;
-        color: #0098f5;
-    }
-}
 
 :deep(.el-date-editor) {
     width: 100%;
diff --git a/src/views/analyse/identify/index.vue b/src/views/analyse/identify/index.vue
index c6128d4..62b0508 100644
--- a/src/views/analyse/identify/index.vue
+++ b/src/views/analyse/identify/index.vue
@@ -27,6 +27,7 @@
                         <!--                        <el-button type="primary" :icon="Refresh" size="default" />-->
                     </el-row>
                     <el-table ref="multipleTableRef" :data="identifyState.identifyData" style="width: 100%" height="calc(100% - 100px)" :header-cell-style="{ background: '#fafafa' }">
+                        <el-table-column type="index" label="序号"/>
                         <el-table-column prop="assessPlanName" label="评估计划名称"/>
                         <el-table-column prop="identificationMethod" label="辨识方法" show-overflow-tooltip>
                             <template #default="scope">
@@ -337,64 +338,6 @@
                 margin-right: 20px;
             }
         }
-    }
-}
-.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;
-                }
-            }
-        }
-    }
-    &:hover .card-header {
-        color: #0098f5;
-    }
-    &:hover .stepNum {
-        border: 2px solid #0098f5;
-        color: #0098f5;
     }
 }
 
diff --git a/src/views/analyse/plan/components/planDialog.vue b/src/views/analyse/plan/components/planDialog.vue
index 4eec5fc..aab3fce 100644
--- a/src/views/analyse/plan/components/planDialog.vue
+++ b/src/views/analyse/plan/components/planDialog.vue
@@ -37,17 +37,27 @@
                             </el-select>
                         </el-form-item>
                     </el-col>
-                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
                         <el-form-item label="辨识专家" prop="identificationUserId">
-                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationUserId" style="width:100%"  placeholder="负责人" clearable>
-                                <el-option v-for="item in planDialogState.personList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
+                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationUserId" style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
+                                <el-option v-for="item in planDialogState.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-col>
-                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
                         <el-form-item label="评价专家" prop="evaluateUserId">
-                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.evaluateUserId" style="width:100%"  placeholder="评价专家" clearable>
-                                <el-option v-for="item in planDialogState.personList" :key="item.id" :label="item.realName" :value="item.id"></el-option>
+                            <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.evaluateUserId" style="width:100%" :teleported="false" placeholder="评价专家" clearable>
+                                <el-option v-for="item in planDialogState.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-col>
@@ -95,13 +105,17 @@
         evaluateUserId: [{ required: true, message: '请选择评价专家', trigger: 'change' }],
     },
     riskUnitList: [],
-    personList: []
+    personList: [],
+    bsExperts: [],
+    pjExperts: []
 })
 
-const showPlanDialog = (title: string, value: PlanType, riskUnitList: RiskUnitType [], personList: SystemPersonType []) => {
+const showPlanDialog = (title: string, value: PlanType, riskUnitList: RiskUnitType [], personList: SystemPersonType [],bsExperts:[],pjExperts:[]) => {
     planDialogState.planDialogVisible = true;
     planDialogState.riskUnitList = riskUnitList;
     planDialogState.personList = personList;
+    planDialogState.bsExperts = bsExperts;
+    planDialogState.pjExperts = pjExperts;
     planDialogState.disabled = false
     setTimeout(() => {
         planFormRef.value.clearValidate();
@@ -203,4 +217,39 @@
       position: absolute !important;
       top: 0 !important;
     }
+    .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;
+              }
+            }
+          }
+        }
+      }
+    }
 </style>
diff --git a/src/views/analyse/plan/index.ts b/src/views/analyse/plan/index.ts
index c64f94f..405aac0 100644
--- a/src/views/analyse/plan/index.ts
+++ b/src/views/analyse/plan/index.ts
@@ -12,6 +12,8 @@
 	evaluateMethodList: Array<Type>
 	riskUnitList: Array<RiskUnitType>
 	personList: Array<SystemPersonType>,
+	bsExperts: [],
+	pjExperts: [],
 	reSendTitle:string
 	reSendDialogVisible: boolean
 	reSendForm: {
@@ -66,4 +68,6 @@
 	},
 	riskUnitList: Array<RiskUnitType>
 	personList: Array<SystemPersonType>
+	bsExperts: []
+	pjExperts: []
 }
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%;
 }
diff --git a/src/views/basic/equipment/components/equipmentDialog.vue b/src/views/basic/equipment/components/equipmentDialog.vue
index 369d347..d20f00d 100644
--- a/src/views/basic/equipment/components/equipmentDialog.vue
+++ b/src/views/basic/equipment/components/equipmentDialog.vue
@@ -26,8 +26,8 @@
                       </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-                        <el-form-item label="设备功率" prop="devicePower">
-                            <el-input v-model="equipmentDialogState.equipmentForm.devicePower" placeholder="设备功率" clearable class="input-length"></el-input>
+                        <el-form-item label="额定功率" prop="devicePower">
+                            <el-input v-model="equipmentDialogState.equipmentForm.devicePower" placeholder="额定功率" clearable class="input-length"></el-input>
                         </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
@@ -119,7 +119,7 @@
     equipmentFormRules: {
         deviceCode: [{ required: true, message: '请填写设备编号', trigger: 'blur' }],
         deviceName: [{ required: true, message: '请填写设备名称', trigger: 'blur' }],
-        devicePower: [{ required: true, message: '请填写设备功率', trigger: 'blur' }],
+        devicePower: [{ required: true, message: '请填写额定功率', trigger: 'blur' }],
         deviceUnit: [{ required: true, message: '请选择计量单位', trigger: 'change' }],
         deviceTypeId: [{ required: true, message: '请填写设备类型ID', trigger: 'blur' }],
         deviceDesc: [{ required: true, message: '请填写设备型号', trigger: 'blur' }],
diff --git a/src/views/basic/equipment/index.vue b/src/views/basic/equipment/index.vue
index 0ffc56a..153359c 100644
--- a/src/views/basic/equipment/index.vue
+++ b/src/views/basic/equipment/index.vue
@@ -13,8 +13,8 @@
                     </el-input>
                 </div>
                 <div class="basic-line">
-                    <span>设备功率:</span>
-                    <el-input v-model="equipmentState.searchQuery.devicePower" clearable filterable class="input-box" placeholder="设备功率">
+                    <span>额定功率:</span>
+                    <el-input v-model="equipmentState.searchQuery.devicePower" clearable filterable class="input-box" placeholder="额定功率">
                     </el-input>
                 </div>
                 <div class="basic-line">
@@ -46,7 +46,7 @@
                           </template>
                         </el-table-column>
                         <el-table-column prop="deviceDesc" label="设备型号" />
-                        <el-table-column prop="devicePower" label="设备功率">
+                        <el-table-column prop="devicePower" label="额定功率">
                           <template #default="scope">
                             <span>{{scope.row.devicePower}}</span>
                           </template>
diff --git a/src/views/experiment/developing/components/applyDialog.vue b/src/views/experiment/developing/components/applyDialog.vue
index b65f862..4f4b618 100644
--- a/src/views/experiment/developing/components/applyDialog.vue
+++ b/src/views/experiment/developing/components/applyDialog.vue
@@ -9,7 +9,7 @@
                         </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-                        <el-form-item label="是否是安全信息化系统 " prop="sisStatus">
+                        <el-form-item label="是否使用安全信息化系统" prop="sisStatus">
                             <el-radio-group v-model="applyStartDialogState.applyStartForm.sisStatus">
                                 <el-radio :label="1">是</el-radio>
                                 <el-radio :label="2">否</el-radio>
diff --git a/src/views/experiment/developing/components/developDialog.vue b/src/views/experiment/developing/components/developDialog.vue
index ffc8c69..147036b 100644
--- a/src/views/experiment/developing/components/developDialog.vue
+++ b/src/views/experiment/developing/components/developDialog.vue
@@ -39,9 +39,17 @@
                       <td class="w-25 m-color required">负责人</td>
                       <td class="w-25 m-color">
                         <el-form-item prop="liabilityUserId">
-                        <el-select style="width: 100%" disabled v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable>
-                          <el-option :key="userInfos.uid" :value="userInfos.uid" :label="userInfos.userName"></el-option>
-                        </el-select>
+<!--                        <el-select style="width: 100%" v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable @change="getLiabilityUserPhone($event)">-->
+<!--                            <el-option-->
+<!--                                v-for="item in projectDialogState.systemPersonList"-->
+<!--                                :key="item.id"-->
+<!--                                :value="item.id"-->
+<!--                                :label="item.realName"-->
+<!--                            ></el-option>-->
+<!--                        </el-select>-->
+                            <el-select style="width: 100%" disabled v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable>
+                              <el-option :key="userInfos.uid" :value="userInfos.uid" :label="userInfos.userName"></el-option>
+                            </el-select>
                         </el-form-item>
                         <!--                        <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.liabilityUserId"/>-->
                       </td>
@@ -296,8 +304,8 @@
 const selectMaterialRef = ref()
 const selectDangerRef = ref()
 const selectEmergencyRef = ref()
-const userInfo = useUserInfo();
-const { userInfos } = storeToRefs(userInfo);
+const userInfo = useUserInfo()
+const { userInfos } = storeToRefs(userInfo)
 
 const projectDialogState = reactive<ProjectDialogType>({
     title: '',
diff --git a/src/views/experiment/developing/components/selectEquipment.vue b/src/views/experiment/developing/components/selectEquipment.vue
index c86e11f..fb9db03 100644
--- a/src/views/experiment/developing/components/selectEquipment.vue
+++ b/src/views/experiment/developing/components/selectEquipment.vue
@@ -3,7 +3,7 @@
     <tr>
         <td class="w-16 m-color">设备名称</td>
         <td class="w-16 m-color">编号</td>
-        <td class="w-16 m-color">设备功率</td>
+        <td class="w-16 m-color">额定功率</td>
         <td class="w-16 m-color">是否特种</td>
         <td class="w-16 m-color">设备数量</td>
         <td class="w-16 m-color">操作</td>
diff --git a/src/views/experiment/developing/index.vue b/src/views/experiment/developing/index.vue
index d9744bb..a88ac4b 100644
--- a/src/views/experiment/developing/index.vue
+++ b/src/views/experiment/developing/index.vue
@@ -71,7 +71,7 @@
                         <el-table-column prop="assessLevel" label="风险等级">
                           <template #default="scope">
                             <el-tag :type="scope.row.assessLevel == 4?'danger':scope.row.assessLevel == 3 || scope.row.assessLevel == 2?'warning':''">
-                              {{scope.row.assessLevel == 1?'低风险':scope.row.assessLevel == 2?'一般风险':scope.row.assessLevel == 3?'较大风险':scope.row.assessLevel == 4?'重大风险':'--'}}
+                              {{scope.row.assessLevel == 1?'重大风险':scope.row.assessLevel == 2?'较大风险':scope.row.assessLevel == 3?'一般风险':scope.row.assessLevel == 4?'低风险':'--'}}
                             </el-tag>
                           </template>
                         </el-table-column>
diff --git a/src/views/experiment/project/components/applyDialog.vue b/src/views/experiment/project/components/applyDialog.vue
index f77bc86..404c391 100644
--- a/src/views/experiment/project/components/applyDialog.vue
+++ b/src/views/experiment/project/components/applyDialog.vue
@@ -9,7 +9,7 @@
                         </el-form-item>
                     </el-col>
                     <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-                        <el-form-item label="是否是安全信息化系统 " prop="sisStatus">
+                        <el-form-item label="是否使用安全信息化系统" prop="sisStatus">
                             <el-radio-group v-model="applyStartDialogState.applyStartForm.sisStatus">
                                 <el-radio :label="1">是</el-radio>
                                 <el-radio :label="2">否</el-radio>
diff --git a/src/views/experiment/project/components/projectDialog.vue b/src/views/experiment/project/components/projectDialog.vue
index 1292685..9248096 100644
--- a/src/views/experiment/project/components/projectDialog.vue
+++ b/src/views/experiment/project/components/projectDialog.vue
@@ -45,6 +45,14 @@
                       <td class="w-25 m-color required">负责人</td>
                       <td class="w-25 m-color">
                         <el-form-item prop="liabilityUserId">
+<!--                          <el-select style="width: 100%" v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable @change="getLiabilityUserPhone($event)">-->
+<!--                            <el-option-->
+<!--                                v-for="item in projectDialogState.systemPersonList"-->
+<!--                                :key="item.id"-->
+<!--                                :value="item.id"-->
+<!--                                :label="item.realName"-->
+<!--                            ></el-option>-->
+<!--                          </el-select>-->
                           <el-select style="width: 100%" disabled v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable>
                             <el-option :key="userInfos.uid" :value="userInfos.uid" :label="userInfos.userName"></el-option>
                           </el-select>
@@ -369,10 +377,10 @@
   projectDialogState.projectForm.liabilityUserPhone = data.phone
 }
 
-const getSafeLiabilityUserPhone = (value: number)=>{
-  const data = projectDialogState.allPersonList.find(item => item.id === value) as AllPersonListType
-  projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
-}
+// const getSafeLiabilityUserPhone = (value: number)=>{
+//   const data = projectDialogState.allPersonList.find(item => item.id === value) as AllPersonListType
+//   projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
+// }
 
 const showProjectDialog = (title: string, value: ProjectType, allRoomList: RoomType []) => {
     projectDialogState.projectDialogVisible = true;
diff --git a/src/views/experiment/project/components/selectEquipment.vue b/src/views/experiment/project/components/selectEquipment.vue
index 33b2527..7ddf0b9 100644
--- a/src/views/experiment/project/components/selectEquipment.vue
+++ b/src/views/experiment/project/components/selectEquipment.vue
@@ -3,7 +3,7 @@
     <tr>
         <td class="w-16 m-color required">设备名称</td>
         <td class="w-16 m-color">编号</td>
-        <td class="w-16 m-color">设备功率</td>
+        <td class="w-16 m-color">额定功率</td>
         <td class="w-16 m-color">是否特种</td>
         <td class="w-16 m-color required">设备数量</td>
         <td class="w-16 m-color">操作</td>
diff --git a/src/views/experiment/project/index.vue b/src/views/experiment/project/index.vue
index 0eb8355..2918ffa 100644
--- a/src/views/experiment/project/index.vue
+++ b/src/views/experiment/project/index.vue
@@ -71,7 +71,7 @@
                         <el-table-column prop="assessLevel" label="风险等级">
                           <template #default="scope">
                             <el-tag :type="scope.row.assessLevel == 4?'danger':scope.row.assessLevel == 3 || scope.row.assessLevel == 2?'warning':''">
-                              {{scope.row.assessLevel == 1?'低风险':scope.row.assessLevel == 2?'一般风险':scope.row.assessLevel == 3?'较大风险':scope.row.assessLevel == 4?'重大风险':'--'}}
+                              {{scope.row.assessLevel == 1?'重大风险':scope.row.assessLevel == 2?'较大风险':scope.row.assessLevel == 3?'一般风险':scope.row.assessLevel == 4?'低风险':'--'}}
                             </el-tag>
                           </template>
                         </el-table-column>
diff --git a/src/views/loginPage/component/accountLogin.vue b/src/views/loginPage/component/accountLogin.vue
index 8f5c014..8ae28b4 100644
--- a/src/views/loginPage/component/accountLogin.vue
+++ b/src/views/loginPage/component/accountLogin.vue
@@ -87,6 +87,7 @@
 
 import {verifyPhone,verifyIdCard} from "/@/utils/toolsValidate"
 import { Base64 } from 'js-base64'
+import {useMenuApi} from "/@/api/systemManage/menu";
 export default defineComponent({
     name: 'accountLogin',
     setup() {
@@ -113,7 +114,8 @@
                 password: '',
                 rePassword: ''
             },
-            identifyDialog: false
+            identifyDialog: false,
+            menu: []
         });
         const identifyRef = ref<FormInstance>()
 
@@ -227,6 +229,21 @@
             // 	signInSuccess();
             // }
         };
+
+      const getMenu = async () => {
+        let res = await useMenuApi().getMenuAdmin();
+        if (res.data.code === 100) {
+          state.menu = JSON.parse(JSON.stringify(res.data.data))
+          router.push(state.menu[0].children[0].path);
+        } else {
+          ElMessage({
+            type: 'warning',
+            message: res.data.msg
+          });
+        }
+
+      };
+
         // 登录成功后的跳转
         const signInSuccess = async () => {
             // 初始化登录成功时间问候语
@@ -234,7 +251,9 @@
             // 登录成功,跳到转首页
             // 如果是复制粘贴的路径,非首页/登录页,那么登录成功后重定向到对应的路径中
             // if (route.json.query?.redirect) {
-            router.push('/project');
+            getMenu()
+            // console.log(state.menu,'menu')
+
             // router.push({
             // 	path: <string>route.json.query?.redirect,
             // 	query: Object.keys(<string>route.json.query?.params).length > 0 ? JSON.parse(<string>route.json.query?.params) : '',
@@ -293,6 +312,7 @@
         return {
             identifyRef,
             identityRules,
+            getMenu,
             clearIdentity,
             onSignIn,
             identify,
diff --git a/src/views/system/experts/index.vue b/src/views/system/experts/index.vue
index 163f222..a4b6a18 100644
--- a/src/views/system/experts/index.vue
+++ b/src/views/system/experts/index.vue
@@ -2,7 +2,7 @@
     <div class="system-user-container">
         <el-card shadow="hover">
             <div class="system-user-search mb15">
-                <el-select v-model="userTableData.listQuery.searchParams.userIndentityId" placeholder="专家类型" clearable class="w100" style="max-width: 180px">
+                <el-select v-model="userTableData.listQuery.searchParams.userIndentityId" placeholder="专家类型" clearable class="w100" style="max-width: 180px" size="default">
                   <el-option v-for="item in expList" :key="item.id" :label="item.identity" :value="item.id"> </el-option>
                 </el-select>
                 <el-button size="default" type="primary" class="ml10" @click="searchByName()">
diff --git a/src/views/system/home/index.vue b/src/views/system/home/index.vue
index 91d40aa..9c91967 100644
--- a/src/views/system/home/index.vue
+++ b/src/views/system/home/index.vue
@@ -37,7 +37,7 @@
 				</el-table-column>
 				<el-table-column label="权限标识" show-overflow-tooltip>
 					<template #default="scope">
-						<span>{{ scope.row.meta.roles }}</span>
+						<span>{{ scope.row.meta.roles.map(id => state.roleList.find(obj => obj.id === id)?.name).join(',') }}</span>
 					</template>
 				</el-table-column>
 				<el-table-column label="排序" show-overflow-tooltip width="80">
@@ -72,6 +72,7 @@
 import { useMenuApi } from "/@/api/systemManage/menu";
 import { initBackEndControlRoutes } from "/@/router/backEnd";
 import {roomApi} from "/@/api/basic/room";
+import {useRoleApi} from "/@/api/systemManage/role";
 // import { setBackEndControlRefreshRoutes } from "/@/router/backEnd";
 
 // 引入组件
@@ -83,9 +84,10 @@
 const menuDialogRef = ref();
 const state = reactive({
 	tableData: {
-        data: [] as RouteRecordRaw[],
-		loading: false,
+      data: [] as RouteRecordRaw[],
+		  loading: false,
 	},
+  roleList: []
 });
 
 // 获取路由数据,真实请从接口获取
@@ -101,6 +103,19 @@
         });
     }
 };
+
+const initRoleTableData = async () => {
+  let res = await useRoleApi().getRoleList();
+  if (res.data.code === 100) {
+    state.roleList = res.data.data;
+  } else {
+    ElMessage({
+      type: 'warning',
+      message: res.data.msg
+    });
+  }
+};
+
 // 打开新增菜单弹窗
 const onOpenAddMenu = (type: string) => {
 	menuDialogRef.value.openDialog(type);
@@ -140,5 +155,6 @@
 // 页面加载时
 onMounted(() => {
 	getTableData();
+  initRoleTableData();
 });
 </script>
diff --git a/src/views/system/user/index.vue b/src/views/system/user/index.vue
index ec5954b..473f805 100644
--- a/src/views/system/user/index.vue
+++ b/src/views/system/user/index.vue
@@ -2,7 +2,10 @@
     <div class="system-user-container">
         <el-card shadow="hover">
             <div class="system-user-search mb15">
-                <el-input size="default" v-model.trim="searchName" placeholder="真实姓名" style="max-width: 180px"> </el-input>
+                <el-input size="default" v-model.trim="userTableData.listQuery.searchParams.realName" placeholder="真实姓名" style="max-width: 180px;margin-right: 10px"> </el-input>
+                <el-select v-model="userTableData.listQuery.searchParams.roleId" placeholder="角色类型" clearable class="w100" style="max-width: 180px" size="default">
+                  <el-option v-for="item in roleList" :key="item.id" :label="item.name" :value="item.id"> </el-option>
+                </el-select>
                 <el-button size="default" type="primary" class="ml10" @click="searchByName()">
                     <el-icon>
                         <ele-Search />
@@ -95,6 +98,7 @@
               roleId: number | null;
               name: string
               realName: string
+              userIndentityId: number | null;
             }
         };
     };
@@ -102,7 +106,7 @@
     depList: [];
     roleList: [];
     expList: [];
-    searchName:string
+    searchType: null | number
 }
 
 export default defineComponent({
@@ -121,7 +125,8 @@
                   searchParams:{
                     roleId: null,
                     name: '',
-                    realName: ''
+                    realName: '',
+                    userIndentityId: null
                   }
                 }
             },
@@ -134,7 +139,7 @@
             depList: [],
             roleList: [],
             expList: [],
-            searchName: ''
+            searchType:null
         });
         // 初始化表格数据
         const initUserTableData = async () => {
@@ -149,28 +154,33 @@
                 });
             }
         };
-
-        const searchByName = async () =>{
-          if(state.searchName == ''){
+        const initRoleTableData = async () => {
+          let res = await useRoleApi().getRoleList();
+          if (res.data.code === 100) {
+            state.roleList = res.data.data;
+          } else {
             ElMessage({
               type: 'warning',
-              message: '请输入搜索内容'
+              message: res.data.msg
             });
-          }else{
-            let res = await userApi().getUserLByRealName(state.searchName);
-            if (res.data.code === 100) {
-              state.userTableData.data = res.data.data
-            } else {
-              ElMessage({
-                type: 'warning',
-                message: res.data.msg
-              });
-            }
           }
-        }
+        };
+
+      const searchByName = ()=>{
+        initUserTableData()
+      }
 
         const reset = () =>{
-          state.searchName = ''
+          state.userTableData.listQuery = {
+            pageIndex: 1,
+                pageSize: 10,
+                searchParams:{
+                  roleId: null,
+                  name: '',
+                  realName: '',
+                  userIndentityId: null
+                }
+          }
           initUserTableData()
         }
 
@@ -253,6 +263,7 @@
         // 页面加载时
         onMounted(() => {
             initUserTableData();
+            initRoleTableData();
             getRoleData();
             getExpertsData();
             getDepList()

--
Gitblit v1.9.2