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