From 6f5336ab50c25e8a4a8c4df7ec703a0dfa418583 Mon Sep 17 00:00:00 2001 From: zhouwx <1175765986@qq.com> Date: 星期一, 13 一月 2025 15:14:11 +0800 Subject: [PATCH] 修改 --- src/views/experiment/project/index.ts | 1 src/views/experiment/developing/components/developDialog.vue | 48 ++++++++++++++++++++---- src/views/experiment/project/components/projectDialog.vue | 67 ++++++++++++++++++++++++++------- 3 files changed, 93 insertions(+), 23 deletions(-) diff --git a/src/views/experiment/developing/components/developDialog.vue b/src/views/experiment/developing/components/developDialog.vue index 75b54a0..51bc6c0 100644 --- a/src/views/experiment/developing/components/developDialog.vue +++ b/src/views/experiment/developing/components/developDialog.vue @@ -1,6 +1,6 @@ <template> <div class="system-menu-dialog-container"> - <el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%"> + <el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%" @close="handleClose"> <el-form ref="ProjectFormRef" :rules="projectDialogState.projectFormRules" :model="projectDialogState.projectForm" size="default" label-width="0"> <table class="report-table"> <th class="m-color b-font" style="text-align: center">***研究所/***大学<br />科学研究实验项目安全风险基础信息录入表(已开展)(带<span style="color: red">*</span>为必填项)</th> @@ -33,9 +33,18 @@ <tr> <td class="w-25 m-color required">部门</td> <td class="w-75 m-color"> - <el-form-item prop="dep"> - <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.dep" /> - </el-form-item> +<!-- <el-form-item prop="dep">--> +<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.dep" />--> +<!-- </el-form-item>--> + <el-select style="width: 100%" v-model="projectDialogState.projectForm.dep" clearable filterable> + <el-option + + v-for="item in projectDialogState.deptList" + :key="item.id" + :value="item.depName" + :label="item.depName" + ></el-option> + </el-select> </td> </tr> <tr> @@ -74,9 +83,17 @@ <!-- :label="item.personName"--> <!-- ></el-option>--> <!-- </el-select>--> - <el-form-item prop="safeLiabilityUser"> - <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeLiabilityUser"/> - </el-form-item> +<!-- <el-form-item prop="safeLiabilityUser">--> +<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeLiabilityUser"/>--> +<!-- </el-form-item>--> + <el-select style="width: 100%" v-model="projectDialogState.projectForm.safeLiabilityUser" clearable filterable @change="getSafeLiabilityUserPhone($event)"> + <el-option + v-for="item in projectDialogState.systemPersonList" + :key="item.id" + :value="item.realName" + :label="item.realName" + ></el-option> + </el-select> </td> <td class="w-25 m-color required">电话</td> <td class="w-25 m-color"> @@ -295,6 +312,7 @@ import {useUserInfo} from "/@/stores/userInfo"; import {storeToRefs} from "pinia"; import {checkChineseName, verifyPhone} from "/@/utils/toolsValidate"; +import {departmentApi} from "/@/api/systemManage/department"; const SelectEquipment = defineAsyncComponent(() => import('../../project/components/selectEquipment.vue')) const SelectMaterial = defineAsyncComponent(() => import('../../project/components/selectMaterial.vue')) const SelectDanger = defineAsyncComponent(() => import('../../project/components/selectDanger.vue')) @@ -395,6 +413,7 @@ allPersonList: [], allRoomList: [], systemPersonList: [], + deptList: [] }) const showDevelopDialog = (title: string, value: ProjectType, allRoomList: RoomType []) => { @@ -473,7 +492,7 @@ } const getSafeLiabilityUserPhone = (value: number)=>{ - const data = projectDialogState.allPersonList.find(item => item.id === value) as AllPersonListType + const data = projectDialogState.systemPersonList.find(item => item.realName === value) as AllPersonListType projectDialogState.projectForm.safeLiabilityUserPhone = data.phone } @@ -492,6 +511,18 @@ }) projectDialogState.projectForm.typeList = filteredNames +} + +const getDeptData =async () => { + let res = await departmentApi().getDepartmentList() + if (res.data.code === 100) { + projectDialogState.deptList = res.data.data + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } } const scratchProject = async() => { @@ -688,6 +719,7 @@ onMounted(() => { getAllPersonList(); getPersonList(); + getDeptData(); }); </script> diff --git a/src/views/experiment/project/components/projectDialog.vue b/src/views/experiment/project/components/projectDialog.vue index 15f901a..f4f593c 100644 --- a/src/views/experiment/project/components/projectDialog.vue +++ b/src/views/experiment/project/components/projectDialog.vue @@ -33,9 +33,17 @@ <tr> <td class="w-25 m-color required">部门</td> <td class="w-25 m-color"> - <el-form-item prop="dep"> - <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.dep" /> - </el-form-item> +<!-- <el-form-item prop="dep">--> +<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.dep" />--> +<!-- </el-form-item>--> + <el-select style="width: 100%" v-model="projectDialogState.projectForm.dep" clearable filterable> + <el-option + v-for="item in projectDialogState.deptList" + :key="item.id" + :value="item.depName" + :label="item.depName" + ></el-option> + </el-select> </td> <td class="w-25 m-color required">立项时间</td> <td class="w-25 m-color"> @@ -80,9 +88,17 @@ <!-- :label="item.personName"--> <!-- ></el-option>--> <!-- </el-select>--> - <el-form-item prop="safeLiabilityUser"> - <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeLiabilityUser" /> - </el-form-item> + <el-select style="width: 100%" v-model="projectDialogState.projectForm.safeLiabilityUser" clearable filterable @change="getSafeLiabilityUserPhone($event)"> + <el-option + v-for="item in projectDialogState.systemPersonList" + :key="item.id" + :value="item.realName" + :label="item.realName" + ></el-option> + </el-select> +<!-- <el-form-item prop="safeLiabilityUser">--> +<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeLiabilityUser" />--> +<!-- </el-form-item>--> </td> <td class="w-25 m-color required">电话</td> <td class="w-25 m-color"> @@ -292,6 +308,7 @@ import {useUserInfo} from "/@/stores/userInfo"; import {storeToRefs} from "pinia"; import {checkChineseName, verifyPhone} from "/@/utils/toolsValidate"; +import {departmentApi} from "/@/api/systemManage/department"; const SelectEquipment = defineAsyncComponent(() => import('./selectEquipment.vue')) const SelectMaterial = defineAsyncComponent(() => import('./selectMaterial.vue')) @@ -384,11 +401,17 @@ allPersonList: [], allRoomList: [], systemPersonList: [], + deptList: [] }) const getLiabilityUserPhone = (value: number)=>{ const data = projectDialogState.systemPersonList.find(item => item.id === value) as AllPersonListType projectDialogState.projectForm.liabilityUserPhone = data.phone +} + +const getSafeLiabilityUserPhone = (value: number)=>{ + const data = projectDialogState.systemPersonList.find(item => item.realName === value) as AllPersonListType + projectDialogState.projectForm.safeLiabilityUserPhone = data.phone } // const getSafeLiabilityUserPhone = (value: number)=>{ @@ -461,7 +484,7 @@ siteList: [], deviceList: [], stuffList: [], - hazardousWasteList: [] + hazardousWasteList: [], }; }else if(title === '整改' || title === '编辑'){ projectDialogState.title = title; @@ -533,14 +556,14 @@ } } if(projectDialogState.title === '新增'){ - if(checkChineseName(projectDialogState.projectForm.safeLiabilityUser) == false){ - ElMessage({ - type: 'warning', - message: '安全负责人姓名格式有误', - duration: 1000 - }); - return - } + // if(checkChineseName(projectDialogState.projectForm.safeLiabilityUser) == false){ + // ElMessage({ + // type: 'warning', + // message: '安全负责人姓名格式有误', + // duration: 1000 + // }); + // return + // } if(verifyPhone(projectDialogState.projectForm.safeLiabilityUserPhone) == false || verifyPhone(projectDialogState.projectForm.liabilityUserPhone) == false){ ElMessage({ type: 'warning', @@ -659,6 +682,19 @@ } }; +const getDeptData =async () => { + let res = await departmentApi().getDepartmentList() + if (res.data.code === 100) { + projectDialogState.deptList = res.data.data + } else { + ElMessage({ + type: 'warning', + message: res.data.msg + }); + } +} + + const emit = defineEmits(['refresh']); defineExpose({ @@ -668,6 +704,7 @@ onMounted(() => { getAllPersonList(); getPersonList(); + getDeptData(); }); </script> diff --git a/src/views/experiment/project/index.ts b/src/views/experiment/project/index.ts index 12a630a..a489093 100644 --- a/src/views/experiment/project/index.ts +++ b/src/views/experiment/project/index.ts @@ -81,6 +81,7 @@ systemPersonList: Array<AllPersonListType> allRoomList: Array<RoomType> experimentTypeList: eType [] + deptList: Array<any> } declare interface SelectDangerType { -- Gitblit v1.9.2