<template>
|
<div class="system-menu-dialog-container">
|
<el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%">
|
<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>
|
<tr>
|
<td class="w-25 m-color required">实验名称</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="experimentName">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.experimentName" placeholder="请输入实验名称" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">实验类型</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="experimentType" style="display: flex;justify-content: center">
|
<el-radio-group style="text-align: center" :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.experimentType">
|
<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="5">特种设备类</el-radio>
|
<el-radio :label="6">其他类</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</td>
|
</tr>
|
<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>
|
</td>
|
</tr>
|
<tr>
|
<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-form-item>
|
<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.liabilityUserId"/>-->
|
</td>
|
<td class="w-25 m-color required">电话</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="liabilityUserPhone">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.liabilityUserPhone" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">安全负责人</td>
|
<td class="w-25 m-color">
|
<!-- <el-select style="width: 100%" :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeLiabilityUser" @change="getSafeLiabilityUserPhone($event)" clearable filterable>-->
|
<!-- <el-option-->
|
<!-- v-for="item in projectDialogState.allPersonList"-->
|
<!-- :key="item.id"-->
|
<!-- :value="item.id"-->
|
<!-- :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>
|
</td>
|
<td class="w-25 m-color required">电话</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="safeLiabilityUserPhone">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeLiabilityUserPhone" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">立项时间</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="createExperimentTime">
|
<el-date-picker :disabled="projectDialogState.disabled" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="projectDialogState.projectForm.createExperimentTime" />
|
</el-form-item>
|
</td>
|
<td class="w-25 m-color required">开展时间</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="startTime">
|
<el-date-picker :disabled="projectDialogState.disabled" type="datetime" format="YYYY/MM/DD HH:mm:ss" value-format="YYYY-MM-DD HH:mm:ss" v-model="projectDialogState.projectForm.startTime" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">是否是安全化信息系统</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="sisStatus">
|
<el-radio-group :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.sisStatus" @change="hasSafeSystem">
|
<el-radio :label="1">是</el-radio>
|
<el-radio :label="2">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</td>
|
<td class="w-25 m-color" v-if="projectDialogState.projectForm.sisStatus == 1" :class="projectDialogState.projectForm.sisStatus==1?'required':''">安全信息化系统</td>
|
<td class="w-25 m-color" v-if="projectDialogState.projectForm.sisStatus == 1">
|
<el-form-item prop="safeInformationSystem">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeInformationSystem" />
|
</el-form-item>
|
</td>
|
</tr>
|
<select-room ref="selectRoomRef" v-model:disabled="projectDialogState.disabled" v-model:data="projectDialogState.projectForm.siteList"></select-room>
|
<select-material ref="selectMaterialRef" v-model:disabled="projectDialogState.disabled" v-model:data="projectDialogState.projectForm.stuffList"></select-material>
|
<select-equipment ref="selectEquipmentRef" v-model:disabled="projectDialogState.disabled" v-model:data="projectDialogState.projectForm.deviceList"></select-equipment>
|
<tr>
|
<td class="w-25 m-color required">实验步骤</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="experimentStep">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.experimentStep" placeholder="请输入实验步骤" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">操作方法</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="experimentMethod">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.experimentMethod" placeholder="请输入操作方法" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">工艺过程</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="process">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.process" placeholder="请输入工艺过程" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">特殊/关键过程</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="keyProcess">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.keyProcess" placeholder="请输入特殊/关键过程" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">预防措施</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="measure">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.measure" placeholder="请输入预防措施" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">是否存在过夜、老化实验</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="timeout">
|
<el-radio-group :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.timeout">
|
<el-radio :label="1">存在</el-radio>
|
<el-radio :label="2">不存在</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</td>
|
<td class="w-25 m-color required" v-if="projectDialogState.projectForm.timeout === 1">过夜、老化保障措施</td>
|
<td class="w-25 m-color" v-if="projectDialogState.projectForm.timeout === 1">
|
<el-form-item prop="timeoutManager">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.timeoutManager" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">是否在封闭条件下</td>
|
<td class="w-25 m-color">
|
<el-form-item prop="closed">
|
<el-radio-group :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.closed">
|
<el-radio :label="1">存在</el-radio>
|
<el-radio :label="2">不存在</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</td>
|
<td class="w-25 m-color required" v-if="projectDialogState.projectForm.closed === 1">封闭条件保障措施</td>
|
<td class="w-25 m-color" v-if="projectDialogState.projectForm.closed === 1">
|
<el-form-item prop="unclosedManager">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.unclosedManager" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">实验场所防爆措施条件和设施情况</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="explosionProof">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.explosionProof" placeholder="请输入" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">实验场所防火措施条件和设施情况</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="fireProof">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.fireProof" placeholder="请输入" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color required">实验场所防中毒措施条件和设施情况</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="poisonProof">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.poisonProof" placeholder="请输入" />
|
</el-form-item>
|
</td>
|
</tr>
|
|
|
<select-danger ref="selectDangerRef" v-model:data="projectDialogState.projectForm.hazardousWasteList" v-model:disabled="projectDialogState.disabled"></select-danger>
|
<select-person ref="selectPersonRef" v-model:data="projectDialogState.projectForm.persons" v-model:disabled="projectDialogState.disabled"></select-person>
|
<!-- <tr class="m-color b-font" style="text-align: center">应急预案/应急演练</tr>-->
|
<!-- <tr>-->
|
<!-- <td class="w-25 m-color required">有无预案</td>-->
|
<!-- <td class="w-25 m-color required">预案名称</td>-->
|
<!-- <td class="w-25 m-color required">是否演练</td>-->
|
<!-- <td class="w-25 m-color required">演练情况</td>-->
|
<!-- </tr>-->
|
<!-- <tr>-->
|
<!-- <td class="w-25 m-color">-->
|
<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyPlan" />-->
|
<!-- </td>-->
|
<!-- <td class="w-25 m-color">-->
|
<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyPlanName" />-->
|
<!-- </td>-->
|
<!-- <td class="w-25 m-color">-->
|
<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyDrillStatus" />-->
|
<!-- </td>-->
|
<!-- <td class="w-25 m-color">-->
|
<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyDrill" />-->
|
<!-- </td>-->
|
<!-- </tr>-->
|
<select-emergency ref="selectEmergencyRef" v-model:disabled="projectDialogState.disabled" v-model:data="projectDialogState.projectForm.emergencyList"></select-emergency>
|
<tr>
|
<td class="w-25 m-color required">安全管理制度</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="safeManagerMethod">
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.safeManagerMethod" placeholder="请输入" />
|
</el-form-item>
|
</td>
|
</tr>
|
<tr class="m-color b-font" style=" text-align: center">其他信息</tr>
|
<tr>
|
<td class="w-25 m-color required">实验场所是否需要分区隔断</td>
|
<td class="w-75 m-color">
|
<el-form-item prop="partitionCondition">
|
<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.partitionCondition" placeholder="请输入" />-->
|
<el-radio-group :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.partitionCondition">
|
<el-radio :label="0">是</el-radio>
|
<el-radio :label="1">否</el-radio>
|
</el-radio-group>
|
</el-form-item>
|
</td>
|
</tr>
|
<tr>
|
<td class="w-25 m-color">其它基础信息(详细描述)</td>
|
<td class="w-75 m-color">
|
<el-form-item>
|
<el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.note" placeholder="请输入" />
|
</el-form-item>
|
</td>
|
</tr>
|
</table>
|
</el-form>
|
<template #footer>
|
<span class="dialog-footer" style="padding-top:10px;text-align: center !important;">
|
<el-button @click="projectDialogState.projectDialogVisible = !projectDialogState.projectDialogVisible" size="default">取 消</el-button>
|
<el-button type="primary" v-if="!projectDialogState.disabled" @click="onSubmitProject" size="default">确定</el-button>
|
</span>
|
</template>
|
</el-dialog>
|
</div>
|
</template>
|
|
<script setup lang="ts">
|
import {defineAsyncComponent, nextTick, onMounted, reactive, ref} from "vue";
|
import {ElMessage} from "element-plus";
|
import {projectApi} from "/@/api/experiment/project";
|
import {personApi} from "/@/api/basic/person";
|
import {userApi} from "/@/api/systemManage/user";
|
|
import {useUserInfo} from "/@/stores/userInfo";
|
import {storeToRefs} from "pinia";
|
import {checkChineseName, verifyPhone} from "/@/utils/toolsValidate";
|
const SelectEquipment = defineAsyncComponent(() => import('../../project/components/selectEquipment.vue'))
|
const SelectMaterial = defineAsyncComponent(() => import('../../project/components/selectMaterial.vue'))
|
const SelectDanger = defineAsyncComponent(() => import('../../project/components/selectDanger.vue'))
|
const SelectEmergency = defineAsyncComponent(() => import('../../project/components/selectEmergency.vue'))
|
const SelectPerson = defineAsyncComponent(() => import('../../project/components/selectPerson.vue'))
|
const SelectRoom = defineAsyncComponent(() => import('../../project/components/selectRoom.vue'))
|
const ProjectFormRef = ref()
|
const selectPersonRef = ref()
|
const selectEquipmentRef = ref()
|
const selectRoomRef = ref()
|
const selectMaterialRef = ref()
|
const selectDangerRef = ref()
|
const selectEmergencyRef = ref()
|
const userInfo = useUserInfo();
|
const { userInfos } = storeToRefs(userInfo);
|
|
const projectDialogState = reactive<ProjectDialogType>({
|
title: '',
|
disabled: false,
|
projectDialogVisible: false,
|
projectForm: {
|
id: null,
|
experimentName: "",
|
experimentType: null,
|
liabilityUserId: Number(userInfos.value.uid),
|
liabilityUserPhone: '',
|
safeLiabilityUser: '',
|
safeLiabilityUserPhone: '',
|
sisStatus: null,
|
safeInformationSystem: '',
|
dep: "",
|
experimentStep: "",
|
experimentMethod: "",
|
process: "",
|
keyProcess: "",
|
measure: "",
|
timeout: null,
|
timeoutManager: "",
|
closed: null,
|
unclosedManager: "",
|
explosionProof: "",
|
fireProof: "",
|
poisonProof: "",
|
safeManagerMethod: "",
|
emergencyList: [],
|
partitionCondition: null,
|
note: "",
|
createExperimentTime: '',
|
startTime: '',
|
persons: [
|
],
|
siteList: [],
|
deviceList: [
|
],
|
stuffList: [
|
],
|
hazardousWasteList: [
|
]
|
},
|
projectFormRules: {
|
experimentName: [{ required: true, message: '', trigger: 'blur' }],
|
experimentType: [{ required: true, message: '', trigger: 'blur' }],
|
liabilityUserId: [{ required: true, message: '', trigger: 'blur' }],
|
liabilityUserPhone: [{ required: true, message: '', trigger: 'blur' }],
|
safeLiabilityUser: [{ required: true, message: '', trigger: 'blur' }],
|
safeLiabilityUserPhone: [{ required: true, message: '', trigger: 'blur' }],
|
sisStatus: [{ required: true, message: '', trigger: 'blur' }],
|
safeInformationSystem: [{ required: true, message: '', trigger: 'blur' }],
|
dep: [{ required: true, message: '', trigger: 'blur' }],
|
experimentStep: [{ required: true, message: '', trigger: 'blur' }],
|
experimentMethod: [{ required: true, message: '', trigger: 'blur' }],
|
process: [{ required: true, message: '', trigger: 'blur' }],
|
keyProcess: [{ required: true, message: '', trigger: 'blur' }],
|
measure: [{ required: true, message: '', trigger: 'blur' }],
|
timeout: [{ required: true, message: '', trigger: 'blur' }],
|
timeoutManager: [{ required: true, message: '', trigger: 'blur' }],
|
closed: [{ required: true, message: '', trigger: 'blur' }],
|
unclosedManager: [{ required: true, message: '', trigger: 'blur' }],
|
explosionProof: [{ required: true, message: '', trigger: 'blur' }],
|
fireProof: [{ required: true, message: '', trigger: 'blur' }],
|
poisonProof: [{ required: true, message: '', trigger: 'blur' }],
|
safeManagerMethod: [{ required: true, message: '', trigger: 'blur' }],
|
emergencyList: [{ required: true, message: '', trigger: 'blur' }],
|
partitionCondition: [{ required: true, message: '', trigger: 'blur' }],
|
createExperimentTime: [{ required: true, message: '', trigger: 'blur' }],
|
startTime: [{ required: true, message: '', trigger: 'blur' }]
|
},
|
allPersonList: [],
|
allRoomList: [],
|
systemPersonList: [],
|
})
|
|
const showDevelopDialog = (title: string, value: ProjectType, allRoomList: RoomType []) => {
|
projectDialogState.projectDialogVisible = true;
|
projectDialogState.allRoomList = allRoomList
|
setTimeout(() => {
|
ProjectFormRef.value.clearValidate();
|
});
|
if(title === '新增'){
|
projectDialogState.disabled = false
|
projectDialogState.title = '新增';
|
projectDialogState.projectForm = {
|
id: null,
|
experimentName: "",
|
experimentType: null,
|
liabilityUserId: Number(userInfos.value.uid),
|
liabilityUserPhone: '',
|
safeLiabilityUser: '',
|
safeLiabilityUserPhone: '',
|
sisStatus: null,
|
safeInformationSystem: '',
|
dep: "",
|
experimentStep: "",
|
experimentMethod: "",
|
process: "",
|
keyProcess: "",
|
measure: "",
|
timeout: null,
|
timeoutManager: "",
|
closed: null,
|
unclosedManager: "",
|
explosionProof: "",
|
fireProof: "",
|
poisonProof: "",
|
safeManagerMethod: "",
|
emergencyList: [],
|
partitionCondition: null,
|
note: "",
|
createExperimentTime: '',
|
startTime: '',
|
persons: [],
|
siteList: [],
|
deviceList: [],
|
stuffList: [],
|
hazardousWasteList: []
|
};
|
}else if(title === '整改'){
|
projectDialogState.title = '整改';
|
projectDialogState.disabled = false
|
for(let i in projectDialogState.projectForm) {
|
if(isValidKey(i, projectDialogState.projectForm)) {
|
projectDialogState.projectForm[i] = value[i];
|
}
|
}
|
}else{
|
projectDialogState.title = '查看';
|
projectDialogState.disabled = true
|
for(let i in projectDialogState.projectForm) {
|
if(isValidKey(i, projectDialogState.projectForm)) {
|
projectDialogState.projectForm[i] = value[i];
|
}
|
}
|
}
|
};
|
|
const isValidKey = (key: string | number | symbol, object:object): key is keyof typeof object =>{
|
return key in object;
|
};
|
|
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.allPersonList.find(item => item.id === value) as AllPersonListType
|
projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
|
}
|
|
const hasSafeSystem = (value: number) =>{
|
if(value == 2){
|
projectDialogState.projectForm.safeInformationSystem = ''
|
}
|
}
|
|
const onSubmitProject = () => {
|
ProjectFormRef.value.validate(async(valid: boolean) => {
|
if(valid){
|
if(projectDialogState.projectForm.timeout == 2){
|
projectDialogState.projectForm.timeoutManager = ''
|
}else{
|
if(projectDialogState.projectForm.timeoutManager == ''){
|
ElMessage({
|
type: 'warning',
|
message: '请填写过夜、老化保障措施',
|
duration: 1000
|
});
|
return
|
}
|
}
|
if(projectDialogState.projectForm.closed == 2){
|
projectDialogState.projectForm.unclosedManager = ""
|
}else{
|
if(projectDialogState.projectForm.unclosedManager == ''){
|
ElMessage({
|
type: 'warning',
|
message: '请填写封闭条件保障措施',
|
duration: 1000
|
});
|
return
|
}
|
}
|
if(projectDialogState.title === '新增'){
|
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',
|
message: '请输入正确的手机号',
|
duration: 1000
|
});
|
return
|
}
|
if(projectDialogState.projectForm.siteList.length === 0){
|
ElMessage({
|
type: 'warning',
|
message: '请至少添加一处实验场所',
|
duration: 1000
|
});
|
return
|
}
|
if(projectDialogState.projectForm.stuffList.length === 0){
|
ElMessage({
|
type: 'warning',
|
message: '请至少选择一种试剂/材料',
|
duration: 1000
|
});
|
return
|
}
|
if(projectDialogState.projectForm.deviceList.length === 0){
|
ElMessage({
|
type: 'warning',
|
message: '请至少选择一种仪器/设备',
|
duration: 1000
|
});
|
return
|
}
|
if(projectDialogState.projectForm.persons.length === 0){
|
ElMessage({
|
type: 'warning',
|
message: '请至少添加一名实验人员',
|
duration: 1000
|
});
|
return
|
}
|
projectDialogState.projectForm.emergencyList = selectEmergencyRef.value.dataList
|
projectDialogState.projectForm.persons = selectPersonRef.value.dataList
|
projectDialogState.projectForm.hazardousWasteList = selectDangerRef.value.dataList
|
projectDialogState.projectForm.siteList = selectRoomRef.value.dataList.map(({siteId}) => ({siteId}))
|
projectDialogState.projectForm.stuffList = selectMaterialRef.value.dataList
|
projectDialogState.projectForm.deviceList = selectEquipmentRef.value.dataList
|
let res = await projectApi().addDevelop(projectDialogState.projectForm);
|
if(res.data.code === 100){
|
emit('refresh')
|
projectDialogState.projectDialogVisible = false;
|
ElMessage({
|
type: 'success',
|
message: '新增成功'
|
})
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg,
|
});
|
}
|
}else{
|
projectDialogState.projectForm.siteList = selectRoomRef.value.dataList.map(({siteId}) => ({siteId}))
|
projectDialogState.projectForm.hazardousWasteList = selectDangerRef.value.dataList.map(obj => ({classify:obj.classify,wasteStorage:obj.wasteStorage,handAmount:obj.handAmount}))
|
let res = await projectApi().modProject(projectDialogState.projectForm)
|
if(res.data.code === 100){
|
emit('refresh')
|
projectDialogState.projectDialogVisible = false;
|
ElMessage({
|
type: 'success',
|
message: '整改已提交'
|
})
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg,
|
});
|
}
|
}
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: '请完善基本信息',
|
});
|
}
|
})
|
};
|
|
const getPersonList = async () => {
|
let res = await userApi().getUserList({
|
pageIndex: 1,
|
pageSize: 99999,
|
searchParams:{
|
roleId: null,
|
name: '',
|
realName: ''
|
}
|
});
|
if(res.data.code === 100){
|
projectDialogState.systemPersonList = JSON.parse(JSON.stringify(res.data.data));
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg
|
})
|
}
|
};
|
|
const getAllPersonList = async () => {
|
let res = await personApi().getAllPerson();
|
if(res.data.code === 100){
|
projectDialogState.allPersonList = JSON.parse(JSON.stringify(res.data.data));
|
}else{
|
ElMessage({
|
type: 'warning',
|
message: res.data.msg
|
})
|
}
|
};
|
|
const emit = defineEmits(['refresh']);
|
|
defineExpose({
|
showDevelopDialog,
|
});
|
|
onMounted(() => {
|
getAllPersonList();
|
getPersonList();
|
});
|
</script>
|
|
<style scoped lang="scss">
|
.site-layout-background {
|
background: #fff;
|
}
|
|
.report-table {
|
width: 100%;
|
border-collapse: collapse;
|
border: 1px solid #337ecc;
|
margin: 20px 0;
|
|
th {
|
padding: 10px 0;
|
border: 1px solid #337ecc;
|
border-left: none;
|
}
|
|
tr {
|
width: 100%;
|
height: 44px;
|
line-height: 42px;
|
border-bottom: 1px solid #ccc;
|
|
&:last-of-type {
|
border-bottom: none;
|
}
|
|
td {
|
border-right: 1px solid #ccc;
|
display: inline-block;
|
height: 44px;
|
vertical-align: middle;
|
text-align: center;
|
line-height: 42px;
|
|
:deep(.el-input__wrapper ){
|
box-shadow: none;
|
margin-top: 6px;
|
}
|
|
&:last-of-type {
|
border-right: none;
|
}
|
|
&.required {
|
&::before {
|
content: "*";
|
display: inline-block;
|
color: red;
|
}
|
}
|
|
&.w-14 {
|
width: calc((100/7)/100 * 100%);
|
}
|
|
&.w-16 {
|
width: calc((100/6)/100 * 100%);
|
}
|
|
&.w-18 {
|
width: 16.59%;
|
}
|
|
&.w-20 {
|
width: 20%;
|
}
|
|
&.w-25 {
|
width: 25%;
|
}
|
|
&.w-50 {
|
width: 50%;
|
}
|
|
&.w-75 {
|
width: 75%;
|
}
|
|
.ant-input {
|
height: 100%;
|
border: none;
|
background: #f5f7fa;
|
}
|
|
.ant-picker {
|
width: 100%;
|
height: 100%;
|
}
|
}
|
}
|
|
.b-font {
|
font-size: 16px;
|
font-weight: bolder;
|
}
|
}
|
|
.m-color {
|
color: #0c4995;
|
}
|
::v-deep(.el-form-item){
|
height: 100%;
|
display: flex;
|
justify-content: center;
|
.el-form-item__content{
|
display: flex;
|
justify-content: center;
|
}
|
}
|
.roomSelect{
|
::v-deep(.el-popper){
|
.el-select-dropdown__item{
|
height: auto;
|
padding: 0;
|
|
.roomTable{
|
width: 100%;
|
display: flex;
|
border-bottom: 1px solid #ebeef5;
|
|
&:last-of-type{
|
border-bottom: none;
|
}
|
|
&>div{
|
width: 25%;
|
border-right: 1px dashed #ebeef5;
|
&:last-of-type{
|
border-right: none;
|
}
|
|
div{
|
width: 100%;
|
}
|
.roomTit{
|
border-bottom: 1px solid #ebeef5;
|
}
|
}
|
}
|
}
|
.el-select-dropdown__item.selected{
|
.roomTit{
|
color: #606266;
|
font-weight: normal;
|
}
|
}
|
}
|
}
|
|
:deep(.el-dialog__footer){
|
padding-top: 20px;
|
display: flex;
|
justify-content: center;
|
}
|
|
|
</style>
|