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