From 724474543053bf6cf4ab9e8d14065e3d3b13a8ea Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期三, 16 四月 2025 09:57:43 +0800
Subject: [PATCH] 修改
---
src/views/experiment/project/index.ts | 5
src/views/loginPage/loginPage.vue | 8
src/theme/element.scss | 1
src/views/experiment/developing/components/developDialog.vue | 1506 +++++++++++++++--------------
src/views/experiment/project/components/projectDialog.vue | 1422 ++++++++++++++-------------
src/views/analyse/plan/components/planDialog.vue | 59
6 files changed, 1,557 insertions(+), 1,444 deletions(-)
diff --git a/src/theme/element.scss b/src/theme/element.scss
index 979f6a8..8605fb5 100644
--- a/src/theme/element.scss
+++ b/src/theme/element.scss
@@ -230,6 +230,7 @@
}
}
}
+
}
.el-dialog__body {
max-height: calc(90vh - 111px) !important;
diff --git a/src/views/analyse/plan/components/planDialog.vue b/src/views/analyse/plan/components/planDialog.vue
index 1934288..3aaddaf 100644
--- a/src/views/analyse/plan/components/planDialog.vue
+++ b/src/views/analyse/plan/components/planDialog.vue
@@ -1,25 +1,7 @@
<template>
- <div class="system-menu-dialog-container">
- <el-dialog :title="planDialogState.title" v-model="planDialogState.planDialogVisible" width="600px">
+ <el-dialog :title="planDialogState.title" append-to-body custom-class="newDialog" top="0" v-model="planDialogState.planDialogVisible" width="600px">
<el-form ref="planFormRef" :rules="planDialogState.planFormRules" :model="planDialogState.planForm" size="default"
label-width="120px">
- <el-row :gutter="35">
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="风险分析单元" prop="riskUnitId">
- <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.riskUnitId"
- style="width:100%" placeholder="风险分析单元" clearable>
- <el-option v-for="item in planDialogState.riskUnitList" :key="item.id" :label="item.riskName"
- :value="item.id"></el-option>
- </el-select>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
- <el-form-item label="评估计划名称" prop="assessPlanName">
- <el-input :disabled="planDialogState.disabled" v-model="planDialogState.planForm.assessPlanName"
- placeholder="评估计划名称" clearable></el-input>
- </el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="评估时间" prop="assessTime">
<el-date-picker
:disabled="planDialogState.disabled"
@@ -29,12 +11,20 @@
end-placeholder="结束时间"
format="YYYY-MM-DD HH:mm:ss"
value-format="YYYY-MM-DD HH:mm:ss"
- popper-class="pickTime"
@change="formatTime">
</el-date-picker>
</el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+ <el-form-item label="风险分析单元" prop="riskUnitId">
+ <el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.riskUnitId"
+ style="width:100%" placeholder="风险分析单元" clearable>
+ <el-option v-for="item in planDialogState.riskUnitList" :key="item.id" :label="item.riskName"
+ :value="item.id"></el-option>
+ </el-select>
+ </el-form-item>
+ <el-form-item label="评估计划名称" prop="assessPlanName">
+ <el-input :disabled="planDialogState.disabled" v-model="planDialogState.planForm.assessPlanName"
+ placeholder="评估计划名称" clearable></el-input>
+ </el-form-item>
<el-form-item label="计划制定人" prop="planUserId">
<el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.planUserId"
style="width:100%" placeholder="计划制定人" clearable>
@@ -42,8 +32,6 @@
:value="item.id"></el-option>
</el-select>
</el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
<el-form-item label="辨识类型" prop="identificationType">
<el-select :disabled="planDialogState.disabled" v-model="planDialogState.planForm.identificationType"
style="width:100%" placeholder="辨识类型" clearable>
@@ -51,9 +39,7 @@
:value="item.value"></el-option>
</el-select>
</el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
- <el-form-item label="辨识专家" prop="identificationUserInsert">
+ <el-form-item label="辨识专家" class="valueSelect" prop="identificationUserInsert">
<el-select :disabled="planDialogState.disabled" multiple v-model="planDialogState.planForm.identificationUserInsert"
style="width:100%" :teleported="false" placeholder="辨识专家" clearable>
<el-option v-for="item in planDialogState.bsExperts" :key="item.id" :label="item.realName"
@@ -69,9 +55,7 @@
</el-option>
</el-select>
</el-form-item>
- </el-col>
- <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20 valueSelect">
- <el-form-item label="评价专家" prop="evaluateUserInsert">
+ <el-form-item label="评价专家" class="valueSelect" prop="evaluateUserInsert">
<el-select :disabled="planDialogState.disabled" multiple v-model="planDialogState.planForm.evaluateUserInsert"
style="width:100%" :teleported="false" placeholder="评价专家" clearable>
<el-option v-for="item in planDialogState.pjExperts" :key="item.id" :label="item.realName"
@@ -87,8 +71,6 @@
</el-option>
</el-select>
</el-form-item>
- </el-col>
- </el-row>
</el-form>
<template #footer>
<span class="dialog-footer">
@@ -99,7 +81,6 @@
</span>
</template>
</el-dialog>
- </div>
</template>
<script setup lang="ts">
@@ -254,13 +235,15 @@
showPlanDialog
})
</script>
-
-<style lang="scss" scoped>
-::v-deep(.pickTime) {
- position: absolute !important;
- top: 0 !important;
+<style lang="scss">
+.el-overlay .el-overlay-dialog{
+ .newDialog{
+ margin-top: -15vh !important;
+ }
}
+</style>
+<style lang="scss" scoped>
.valueSelect {
::v-deep(.el-popper) {
.el-select-dropdown__item {
diff --git a/src/views/experiment/developing/components/developDialog.vue b/src/views/experiment/developing/components/developDialog.vue
index ede740d..dbbe495 100644
--- a/src/views/experiment/developing/components/developDialog.vue
+++ b/src/views/experiment/developing/components/developDialog.vue
@@ -1,309 +1,350 @@
<template>
- <div class="system-menu-dialog-container">
- <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>
- <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="typeValue" 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-checkbox-group style="text-align: center" v-model="typeValue" :disabled="projectDialogState.disabled" @change="changeList">
- <el-checkbox v-for="item in projectDialogState.experimentTypeList" :label="item.typeId" :key="item.typeId" >{{item.typeName}}</el-checkbox>
- </el-checkbox-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>-->
- <el-form-item prop="dep">
- <el-select style="width: 100%" v-model="projectDialogState.projectForm.dep" clearable filterable>
- <el-option
+ <div class="system-menu-dialog-container">
+ <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>
+ <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="typeValue" 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-checkbox-group style="text-align: center" v-model="typeValue"
+ :disabled="projectDialogState.disabled" @change="changeList">
+ <el-checkbox v-for="item in projectDialogState.experimentTypeList" :label="item.typeId"
+ :key="item.typeId">{{ item.typeName }}
+ </el-checkbox>
+ </el-checkbox-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>-->
+ <el-form-item prop="dep">
+ <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>
- </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%" 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>
- <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>-->
- <el-form-item prop="safeLiabilityUser">-->
- <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>
- </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>
+ v-for="item in projectDialogState.deptList"
+ :key="item.id"
+ :value="item.depName"
+ :label="item.depName"
+ ></el-option>
+ </el-select>
+ </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%" v-model="projectDialogState.projectForm.liabilityUserId" clearable
+ filterable @change="getLiabilityUserPhone($event)">
+ <el-option
+ v-for="item in projectDialogState.allPersonList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.personName"
+ ></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>
+ <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>-->
+ <el-form-item prop="safeLiabilityUserId">
+ <el-select style="width: 100%" v-model="projectDialogState.projectForm.safeLiabilityUserId" clearable
+ filterable @change="getSafeLiabilityUserPhone($event)">
+ <el-option
+ v-for="item in projectDialogState.systemPersonList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.realName"
+ ></el-option>
+ </el-select>
+ </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;">
+ <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="handleClose" size="default">取 消</el-button>
- <el-button type="primary" v-if="!projectDialogState.disabled && projectDialogState.title!= '编辑'" @click="onSubmitProject" size="default">确定</el-button>
- <el-button type="primary" v-if="!projectDialogState.disabled" @click="scratchProject" plain size="default">暂存</el-button>
+ <el-button type="primary" v-if="!projectDialogState.disabled && projectDialogState.title!= '编辑'"
+ @click="onSubmitProject" size="default">确定</el-button>
+ <el-button type="primary" v-if="!projectDialogState.disabled" @click="scratchProject" plain
+ size="default">暂存</el-button>
</span>
- </template>
- </el-dialog>
- </div>
+ </template>
+ </el-dialog>
+ </div>
</template>
<script setup lang="ts">
@@ -317,6 +358,7 @@
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'))
@@ -331,177 +373,179 @@
const selectDangerRef = ref()
const selectEmergencyRef = ref()
const userInfo = useUserInfo()
-const { userInfos } = storeToRefs(userInfo)
+const {userInfos} = storeToRefs(userInfo)
const typeValue = ref([])
const projectDialogState = reactive<ProjectDialogType>({
- title: '',
- disabled: false,
- projectDialogVisible: false,
- projectForm: {
- id: null,
- experimentName: "",
- experimentType: null,
- typeList: [],
- liabilityUserId: null,
- 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: [
- ],
- },
- experimentTypeList: [
- {typeId: 1, typeName: '化学类'},
- {typeId: 2, typeName: '生物类'},
- {typeId: 3, typeName: '辐射类'},
- {typeId: 4, typeName: '机电类'},
- {typeId: 5, typeName: '特种设备类'},
- {typeId: 6, typeName: '其它类'},
- ],
- projectFormRules: {
- experimentName: [{ required: true, message: '', trigger: 'blur' }],
- experimentType: [{ required: true, message: '', trigger: 'blur' }],
- value: [{ 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: [],
- deptList: []
+ title: '',
+ disabled: false,
+ projectDialogVisible: false,
+ projectForm: {
+ id: null,
+ experimentName: "",
+ experimentType: null,
+ typeList: [],
+ liabilityUser: '',
+ liabilityUserId: null,
+ liabilityUserPhone: '',
+ safeLiabilityUser: '',
+ safeLiabilityUserId: null,
+ 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: [],
+ },
+ experimentTypeList: [
+ {typeId: 1, typeName: '化学类'},
+ {typeId: 2, typeName: '生物类'},
+ {typeId: 3, typeName: '辐射类'},
+ {typeId: 4, typeName: '机电类'},
+ {typeId: 5, typeName: '特种设备类'},
+ {typeId: 6, typeName: '其它类'},
+ ],
+ projectFormRules: {
+ experimentName: [{required: true, message: '', trigger: 'blur'}],
+ experimentType: [{required: true, message: '', trigger: 'blur'}],
+ value: [{required: true, message: '', trigger: 'blur'}],
+ liabilityUserId: [{required: true, message: '', trigger: 'blur'}],
+ liabilityUserPhone: [{required: true, message: '', trigger: 'blur'}],
+ safeLiabilityUserId: [{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: [],
+ deptList: []
})
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,
- typeList: [],
- liabilityUserId: null,
- 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 === '整改' || title === '编辑' ){
- projectDialogState.title = title;
- projectDialogState.disabled = false
- for(let i in projectDialogState.projectForm) {
- if(isValidKey(i, projectDialogState.projectForm)) {
- projectDialogState.projectForm[i] = value[i];
- }
+ projectDialogState.projectDialogVisible = true;
+ projectDialogState.allRoomList = allRoomList
+ setTimeout(() => {
+ ProjectFormRef.value.clearValidate();
+ });
+ if (title === '新增') {
+ projectDialogState.disabled = false
+ projectDialogState.title = '新增';
+ projectDialogState.projectForm = {
+ id: null,
+ experimentName: "",
+ experimentType: null,
+ typeList: [],
+ liabilityUser: '',
+ liabilityUserId: null,
+ liabilityUserPhone: '',
+ safeLiabilityUser: '',
+ safeLiabilityUserId: null,
+ 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 === '整改' || title === '编辑') {
+ projectDialogState.title = title;
+ projectDialogState.disabled = false
+ for (let i in projectDialogState.projectForm) {
+ if (isValidKey(i, projectDialogState.projectForm)) {
+ projectDialogState.projectForm[i] = value[i];
}
- typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
- }else{
- projectDialogState.title = '查看';
- projectDialogState.disabled = true
- for(let i in projectDialogState.projectForm) {
- if(isValidKey(i, projectDialogState.projectForm)) {
- projectDialogState.projectForm[i] = value[i];
- }
- }
- typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
}
+ typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
+ } else {
+ projectDialogState.title = '查看';
+ projectDialogState.disabled = true
+ for (let i in projectDialogState.projectForm) {
+ if (isValidKey(i, projectDialogState.projectForm)) {
+ projectDialogState.projectForm[i] = value[i];
+ }
+ }
+ typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
+ }
};
-const isValidKey = (key: string | number | symbol, object:object): key is keyof typeof object =>{
- return key in object;
+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
+const getLiabilityUserPhone = (value: number | null) => {
+ const data = projectDialogState.allPersonList.find(item => item.id === value) as AllPersonListType
projectDialogState.projectForm.liabilityUserPhone = data.phone
+ projectDialogState.projectForm.liabilityUser = data.personName
}
-const getSafeLiabilityUserPhone = (value: number)=>{
- const data = projectDialogState.systemPersonList.find(item => item.realName === value) as AllPersonListType
+const getSafeLiabilityUserPhone = (value: number | null) => {
+ const data = projectDialogState.systemPersonList.find(item => item.id === value) as AllPersonListType
projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
+ projectDialogState.projectForm.safeLiabilityUser = data.realName
}
-const hasSafeSystem = (value: number) =>{
- if(value == 2){
+const hasSafeSystem = (value: number) => {
+ if (value == 2) {
projectDialogState.projectForm.safeInformationSystem = ''
}
}
@@ -517,7 +561,7 @@
}
-const getDeptData =async () => {
+const getDeptData = async () => {
let res = await departmentApi().getDepartmentList()
if (res.data.code === 100) {
projectDialogState.deptList = res.data.data
@@ -529,184 +573,198 @@
}
}
-const scratchProject = async() => {
- projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList.map(obj => ({emergencyDrill :
- obj.emergencyDrill, emergencyDrillStatus : obj.emergencyDrillStatus, emergencyPlan : obj.emergencyPlan, emergencyPlanName : obj.emergencyPlanName})): []
- // projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList: []
- projectDialogState.projectForm.persons = projectDialogState.projectForm.persons ? projectDialogState.projectForm.persons: []
- // projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList: []
- projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList.map(obj => ({classify:obj.classify,wasteStorage:obj.wasteStorage,handAmount:obj.handAmount})): []
- // const roomList = selectRoomRef.value.dataList ? selectRoomRef.value.dataList: []
- projectDialogState.projectForm.siteList = projectDialogState.projectForm.siteList ?projectDialogState.projectForm.siteList.map(({siteId}) => ({siteId})) : []
- projectDialogState.projectForm.stuffList = projectDialogState.projectForm.stuffList ? projectDialogState.projectForm.stuffList: []
- projectDialogState.projectForm.deviceList = projectDialogState.projectForm.deviceList ? projectDialogState.projectForm.deviceList: []
- let res = await projectApi().temporaryDevelop(projectDialogState.projectForm);
- if(res.data.code === 100){
- handleClose()
- ElMessage({
- type: 'success',
- message: '暂存信息成功'
- })
- }else{
- ElMessage({
- type: 'warning',
- message: res.data.msg,
- });
- }
+const scratchProject = async () => {
+ projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList.map(obj => ({
+ emergencyDrill:
+ obj.emergencyDrill,
+ emergencyDrillStatus: obj.emergencyDrillStatus,
+ emergencyPlan: obj.emergencyPlan,
+ emergencyPlanName: obj.emergencyPlanName
+ })) : []
+ // projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList: []
+ projectDialogState.projectForm.persons = projectDialogState.projectForm.persons ? projectDialogState.projectForm.persons : []
+ // projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList: []
+ projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList.map(obj => ({
+ classify: obj.classify,
+ wasteStorage: obj.wasteStorage,
+ handAmount: obj.handAmount
+ })) : []
+ // const roomList = selectRoomRef.value.dataList ? selectRoomRef.value.dataList: []
+ projectDialogState.projectForm.siteList = projectDialogState.projectForm.siteList ? projectDialogState.projectForm.siteList.map(({siteId}) => ({siteId})) : []
+ projectDialogState.projectForm.stuffList = projectDialogState.projectForm.stuffList ? projectDialogState.projectForm.stuffList : []
+ projectDialogState.projectForm.deviceList = projectDialogState.projectForm.deviceList ? projectDialogState.projectForm.deviceList : []
+ let res = await projectApi().temporaryDevelop(projectDialogState.projectForm);
+ if (res.data.code === 100) {
+ handleClose()
+ ElMessage({
+ type: 'success',
+ message: '暂存信息成功'
+ })
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
}
-const onSubmitProject = async() => {
- 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
- const roomList = selectRoomRef.value.dataList
- projectDialogState.projectForm.siteList = roomList.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){
- handleClose()
- 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){
- handleClose()
- ElMessage({
- type: 'success',
- message: '整改已提交'
- })
- }else{
- ElMessage({
- type: 'warning',
- message: res.data.msg,
- });
- }
- }
- }else{
- ElMessage({
- type: 'warning',
- message: '请完善基本信息',
- });
+const onSubmitProject = async () => {
+ console.log(projectDialogState.projectForm,'form')
+ 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
+ const roomList = selectRoomRef.value.dataList
+ projectDialogState.projectForm.siteList = roomList.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) {
+ handleClose()
+ 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) {
+ handleClose()
+ 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
- })
+ 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
- })
- }
+ 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 handleClose = () => {
typeValue.value = []
@@ -717,160 +775,166 @@
const emit = defineEmits(['refresh']);
defineExpose({
- showDevelopDialog,
+ showDevelopDialog,
});
onMounted(() => {
- getAllPersonList();
- getPersonList();
- getDeptData();
+ getAllPersonList()
+ getPersonList()
+ getDeptData()
});
</script>
<style scoped lang="scss">
.site-layout-background {
- background: #fff;
+ background: #fff;
}
.report-table {
- width: 100%;
- border-collapse: collapse;
- border: 1px solid #337ecc;
- margin: 20px 0;
+ width: 100%;
+ border-collapse: collapse;
+ border: 1px solid #337ecc;
+ margin: 20px 0;
-th {
+ th {
padding: 10px 0;
border: 1px solid #337ecc;
border-left: none;
-}
+ }
-tr {
+ tr {
width: 100%;
height: 44px;
line-height: 42px;
border-bottom: 1px solid #ccc;
-&:last-of-type {
- border-bottom: none;
- }
+ &: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;
+ 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;
+ :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%;
+ }
+ }
}
-&: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 {
+ .b-font {
font-size: 16px;
font-weight: bolder;
-}
+ }
}
.m-color {
- color: #0c4995;
+ color: #0c4995;
}
-::v-deep(.el-form-item){
+
+::v-deep(.el-form-item) {
height: 100%;
display: flex;
justify-content: center;
- .el-form-item__content{
+
+ .el-form-item__content {
display: flex;
justify-content: center;
}
}
-.roomSelect{
- ::v-deep(.el-popper){
- .el-select-dropdown__item{
+
+.roomSelect {
+ ::v-deep(.el-popper) {
+ .el-select-dropdown__item {
height: auto;
padding: 0;
- .roomTable{
+ .roomTable {
width: 100%;
display: flex;
border-bottom: 1px solid #ebeef5;
- &:last-of-type{
+ &:last-of-type {
border-bottom: none;
}
- &>div{
+ & > div {
width: 25%;
border-right: 1px dashed #ebeef5;
- &:last-of-type{
+
+ &:last-of-type {
border-right: none;
}
- div{
+ div {
width: 100%;
}
- .roomTit{
+
+ .roomTit {
border-bottom: 1px solid #ebeef5;
}
}
}
}
- .el-select-dropdown__item.selected{
- .roomTit{
+
+ .el-select-dropdown__item.selected {
+ .roomTit {
color: #606266;
font-weight: normal;
}
@@ -878,10 +942,10 @@
}
}
-:deep(.el-dialog__footer){
- padding-top: 20px;
- display: flex;
- justify-content: center;
+:deep(.el-dialog__footer) {
+ padding-top: 20px;
+ display: flex;
+ justify-content: center;
}
diff --git a/src/views/experiment/project/components/projectDialog.vue b/src/views/experiment/project/components/projectDialog.vue
index 34fc950..93c7bf2 100644
--- a/src/views/experiment/project/components/projectDialog.vue
+++ b/src/views/experiment/project/components/projectDialog.vue
@@ -1,306 +1,343 @@
<template>
- <div class="system-menu-dialog-container">
- <el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%" :before-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>
- <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="typeValue" 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-checkbox-group style="text-align: center" v-model="typeValue" :disabled="projectDialogState.disabled" @change="changeList">
- <el-checkbox v-for="item in projectDialogState.experimentTypeList" :label="item.typeId" :key="item.typeId" >{{item.typeName}}</el-checkbox>
- </el-checkbox-group>
- </el-form-item>
- </td>
- </tr>
- <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-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>
- </el-form-item>
- </td>
- <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>
- </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%" 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>
- <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-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>
-<!-- <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>
- <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>
+ <div class="system-menu-dialog-container">
+ <el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%"
+ :before-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>
+ <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="typeValue" 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-checkbox-group style="text-align: center" v-model="typeValue"
+ :disabled="projectDialogState.disabled" @change="changeList">
+ <el-checkbox v-for="item in projectDialogState.experimentTypeList" :label="item.typeId"
+ :key="item.typeId">{{ item.typeName }}
+ </el-checkbox>
+ </el-checkbox-group>
+ </el-form-item>
+ </td>
+ </tr>
+ <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-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>
+ </el-form-item>
+ </td>
+ <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>
+ </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%" v-model="projectDialogState.projectForm.liabilityUserId" clearable
+ filterable @change="getLiabilityUserPhone($event)">
+ <el-option
+ v-for="item in projectDialogState.allPersonList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.personName"
+ ></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>
+ <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="safeLiabilityUserId">
+ <el-select style="width: 100%" v-model="projectDialogState.projectForm.safeLiabilityUserId" clearable
+ filterable @change="getSafeLiabilityUserPhone($event)">
+ <el-option
+ v-for="item in projectDialogState.systemPersonList"
+ :key="item.id"
+ :value="item.id"
+ :label="item.realName"
+ ></el-option>
+ </el-select>
+ </el-form-item>
+ <!-- <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>
+ <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>
+ <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>-->
-<!-- <td class="w-25 m-color">安全信息化系统使用情况</td>-->
-<!-- <td class="w-25 m-color">-->
-<!-- <el-radio-group v-model="projectDialogState.projectForm.useIT">-->
-<!-- <el-radio value="1">是</el-radio>-->
-<!-- <el-radio value="2">否</el-radio>-->
-<!-- </el-radio-group>-->
-<!-- </td>-->
-<!-- <td class="w-25 m-color">系统名称</td>-->
-<!-- <td class="w-25 m-color">-->
-<!-- <el-input v-model="projectDialogState.projectForm.systemName" placeholder="请输入" />-->
-<!-- </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-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-form-item prop="emergencyPlan">-->
-<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyPlan" />-->
-<!-- </el-form-item>-->
-<!-- </td>-->
-<!-- <td class="w-25 m-color">-->
-<!-- <el-form-item prop="emergencyPlanName">-->
-<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyPlanName" />-->
-<!-- </el-form-item>-->
-<!-- </td>-->
-<!-- <td class="w-25 m-color">-->
-<!-- <el-form-item prop="emergencyDrillStatus">-->
-<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyDrillStatus" />-->
-<!-- </el-form-item>-->
-<!-- </td>-->
-<!-- <td class="w-25 m-color">-->
-<!-- <el-form-item prop="emergencyDrill">-->
-<!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyDrill" />-->
-<!-- </el-form-item>-->
-<!-- </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>
+ <!-- <tr>-->
+ <!-- <td class="w-25 m-color">安全信息化系统使用情况</td>-->
+ <!-- <td class="w-25 m-color">-->
+ <!-- <el-radio-group v-model="projectDialogState.projectForm.useIT">-->
+ <!-- <el-radio value="1">是</el-radio>-->
+ <!-- <el-radio value="2">否</el-radio>-->
+ <!-- </el-radio-group>-->
+ <!-- </td>-->
+ <!-- <td class="w-25 m-color">系统名称</td>-->
+ <!-- <td class="w-25 m-color">-->
+ <!-- <el-input v-model="projectDialogState.projectForm.systemName" placeholder="请输入" />-->
+ <!-- </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-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-form-item prop="emergencyPlan">-->
+ <!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyPlan" />-->
+ <!-- </el-form-item>-->
+ <!-- </td>-->
+ <!-- <td class="w-25 m-color">-->
+ <!-- <el-form-item prop="emergencyPlanName">-->
+ <!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyPlanName" />-->
+ <!-- </el-form-item>-->
+ <!-- </td>-->
+ <!-- <td class="w-25 m-color">-->
+ <!-- <el-form-item prop="emergencyDrillStatus">-->
+ <!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyDrillStatus" />-->
+ <!-- </el-form-item>-->
+ <!-- </td>-->
+ <!-- <td class="w-25 m-color">-->
+ <!-- <el-form-item prop="emergencyDrill">-->
+ <!-- <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.emergencyDrill" />-->
+ <!-- </el-form-item>-->
+ <!-- </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 && projectDialogState.title!= '编辑'" @click="onSubmitProject" size="default">确定</el-button>
- <el-button type="primary" v-if="!projectDialogState.disabled" @click="scratchProject" plain size="default">暂存</el-button>
+ <el-button @click="projectDialogState.projectDialogVisible = !projectDialogState.projectDialogVisible"
+ size="default">取 消</el-button>
+ <el-button type="primary" v-if="!projectDialogState.disabled && projectDialogState.title!= '编辑'"
+ @click="onSubmitProject" size="default">确定</el-button>
+ <el-button type="primary" v-if="!projectDialogState.disabled" @click="scratchProject" plain
+ size="default">暂存</el-button>
</span>
- </template>
- </el-dialog>
- </div>
+ </template>
+ </el-dialog>
+ </div>
</template>
<script setup lang="ts">
@@ -329,45 +366,47 @@
const selectDangerRef = ref()
const typeValue = ref([])
const userInfo = useUserInfo();
-const { userInfos } = storeToRefs(userInfo);
+const {userInfos} = storeToRefs(userInfo);
const projectDialogState = reactive<ProjectDialogType>({
- title: '',
- disabled: false,
- projectDialogVisible: false,
- projectForm: {
- id: null,
- experimentName: "",
- experimentType: null,
- typeList: [],
- liabilityUserId: null,
- liabilityUserPhone: '',
- safeLiabilityUser: '',
- safeLiabilityUserPhone: '',
- dep: "",
- experimentStep: "",
- experimentMethod: "",
- process: "",
- keyProcess: "",
- measure: "",
- timeout: null,
- timeoutManager: "",
- closed: null,
- unclosedManager: "",
- explosionProof: "",
- fireProof: "",
- poisonProof: "",
- safeManagerMethod: "",
- emergencyList: [],
- partitionCondition: null,
- note: "",
- createExperimentTime: '',
- persons: [],
- siteList: [],
- deviceList: [],
- stuffList: [],
- hazardousWasteList: []
- },
+ title: '',
+ disabled: false,
+ projectDialogVisible: false,
+ projectForm: {
+ id: null,
+ experimentName: "",
+ experimentType: null,
+ typeList: [],
+ liabilityUser: '',
+ liabilityUserId: null,
+ liabilityUserPhone: '',
+ safeLiabilityUser: '',
+ safeLiabilityUserId: null,
+ safeLiabilityUserPhone: '',
+ dep: "",
+ experimentStep: "",
+ experimentMethod: "",
+ process: "",
+ keyProcess: "",
+ measure: "",
+ timeout: null,
+ timeoutManager: "",
+ closed: null,
+ unclosedManager: "",
+ explosionProof: "",
+ fireProof: "",
+ poisonProof: "",
+ safeManagerMethod: "",
+ emergencyList: [],
+ partitionCondition: null,
+ note: "",
+ createExperimentTime: '',
+ persons: [],
+ siteList: [],
+ deviceList: [],
+ stuffList: [],
+ hazardousWasteList: []
+ },
experimentTypeList: [
{typeId: 1, typeName: '化学类'},
{typeId: 2, typeName: '生物类'},
@@ -376,46 +415,48 @@
{typeId: 5, typeName: '特种设备类'},
{typeId: 6, typeName: '其它类'},
],
- projectFormRules: {
- experimentName: [{ required: true, message: '', trigger: 'blur' }],
- experimentType: [{ required: true, message: '', trigger: 'blur' }],
- typeList: [{ 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' }],
- 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' }]
- },
- allPersonList: [],
- allRoomList: [],
- systemPersonList: [],
- deptList: []
+ projectFormRules: {
+ experimentName: [{required: true, message: '', trigger: 'blur'}],
+ experimentType: [{required: true, message: '', trigger: 'blur'}],
+ typeList: [{required: true, message: '', trigger: 'blur'}],
+ liabilityUserId: [{required: true, message: '', trigger: 'blur'}],
+ liabilityUserPhone: [{required: true, message: '', trigger: 'blur'}],
+ safeLiabilityUserId: [{required: true, message: '', trigger: 'blur'}],
+ safeLiabilityUserPhone: [{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'}]
+ },
+ allPersonList: [],
+ allRoomList: [],
+ systemPersonList: [],
+ deptList: []
})
-const getLiabilityUserPhone = (value: number)=>{
- const data = projectDialogState.systemPersonList.find(item => item.id === value) as AllPersonListType
+const getLiabilityUserPhone = (value: number | null) => {
+ const data = projectDialogState.allPersonList.find(item => item.id === value) as AllPersonListType
projectDialogState.projectForm.liabilityUserPhone = data.phone
+ projectDialogState.projectForm.liabilityUser = data.personName
}
-const getSafeLiabilityUserPhone = (value: number)=>{
- const data = projectDialogState.systemPersonList.find(item => item.realName === value) as AllPersonListType
+const getSafeLiabilityUserPhone = (value: number | null) => {
+ const data = projectDialogState.systemPersonList.find(item => item.id === value) as AllPersonListType
projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
+ projectDialogState.projectForm.safeLiabilityUser = data.realName
}
// const getSafeLiabilityUserPhone = (value: number)=>{
@@ -423,25 +464,34 @@
// projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
// }
-const scratchProject = async() => {
- projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList.map(obj => ({emergencyDrill :
- obj.emergencyDrill, emergencyDrillStatus : obj.emergencyDrillStatus, emergencyPlan : obj.emergencyPlan, emergencyPlanName : obj.emergencyPlanName})): []
+const scratchProject = async () => {
+ projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList.map(obj => ({
+ emergencyDrill:
+ obj.emergencyDrill,
+ emergencyDrillStatus: obj.emergencyDrillStatus,
+ emergencyPlan: obj.emergencyPlan,
+ emergencyPlanName: obj.emergencyPlanName
+ })) : []
// projectDialogState.projectForm.emergencyList = projectDialogState.projectForm.emergencyList ? projectDialogState.projectForm.emergencyList: []
- projectDialogState.projectForm.persons = projectDialogState.projectForm.persons ? projectDialogState.projectForm.persons: []
+ projectDialogState.projectForm.persons = projectDialogState.projectForm.persons ? projectDialogState.projectForm.persons : []
// projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList: []
- projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList.map(obj => ({classify:obj.classify,wasteStorage:obj.wasteStorage,handAmount:obj.handAmount})): []
+ projectDialogState.projectForm.hazardousWasteList = projectDialogState.projectForm.hazardousWasteList ? projectDialogState.projectForm.hazardousWasteList.map(obj => ({
+ classify: obj.classify,
+ wasteStorage: obj.wasteStorage,
+ handAmount: obj.handAmount
+ })) : []
// const roomList = selectRoomRef.value.dataList ? selectRoomRef.value.dataList: []
- projectDialogState.projectForm.siteList = projectDialogState.projectForm.siteList ?projectDialogState.projectForm.siteList.map(({siteId}) => ({siteId})) : []
- projectDialogState.projectForm.stuffList = projectDialogState.projectForm.stuffList ? projectDialogState.projectForm.stuffList: []
- projectDialogState.projectForm.deviceList = projectDialogState.projectForm.deviceList ? projectDialogState.projectForm.deviceList: []
+ projectDialogState.projectForm.siteList = projectDialogState.projectForm.siteList ? projectDialogState.projectForm.siteList.map(({siteId}) => ({siteId})) : []
+ projectDialogState.projectForm.stuffList = projectDialogState.projectForm.stuffList ? projectDialogState.projectForm.stuffList : []
+ projectDialogState.projectForm.deviceList = projectDialogState.projectForm.deviceList ? projectDialogState.projectForm.deviceList : []
let res = await projectApi().temporaryProject(projectDialogState.projectForm);
- if(res.data.code === 100){
+ if (res.data.code === 100) {
handleClose()
ElMessage({
type: 'success',
message: '暂存信息成功'
})
- }else{
+ } else {
ElMessage({
type: 'warning',
message: res.data.msg,
@@ -449,66 +499,68 @@
}
}
const showProjectDialog = (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,
- typeList: [],
- liabilityUserId: null,
- liabilityUserPhone: '',
- safeLiabilityUser: '',
- safeLiabilityUserPhone: '',
- dep: "",
- experimentStep: "",
- experimentMethod: "",
- process: "",
- keyProcess: "",
- measure: "",
- timeout: null,
- timeoutManager: "",
- closed: null,
- unclosedManager: "",
- explosionProof: "",
- fireProof: "",
- poisonProof: "",
- safeManagerMethod: "",
- emergencyList: [],
- partitionCondition: null,
- note: "",
- createExperimentTime: '',
- persons: [],
- siteList: [],
- deviceList: [],
- stuffList: [],
- hazardousWasteList: [],
- };
- }else if(title === '整改' || title === '编辑'){
- projectDialogState.title = title;
- projectDialogState.disabled = false
- for(let i in projectDialogState.projectForm) {
- if(isValidKey(i, projectDialogState.projectForm)) {
- projectDialogState.projectForm[i] = value[i];
- }
+ projectDialogState.projectDialogVisible = true
+ projectDialogState.allRoomList = allRoomList
+ setTimeout(() => {
+ ProjectFormRef.value.clearValidate();
+ });
+ if (title === '新增') {
+ projectDialogState.disabled = false
+ projectDialogState.title = '新增';
+ projectDialogState.projectForm = {
+ id: null,
+ experimentName: "",
+ experimentType: null,
+ typeList: [],
+ liabilityUser: '',
+ liabilityUserId: null,
+ liabilityUserPhone: '',
+ safeLiabilityUser: '',
+ safeLiabilityUserId: null,
+ safeLiabilityUserPhone: '',
+ dep: "",
+ experimentStep: "",
+ experimentMethod: "",
+ process: "",
+ keyProcess: "",
+ measure: "",
+ timeout: null,
+ timeoutManager: "",
+ closed: null,
+ unclosedManager: "",
+ explosionProof: "",
+ fireProof: "",
+ poisonProof: "",
+ safeManagerMethod: "",
+ emergencyList: [],
+ partitionCondition: null,
+ note: "",
+ createExperimentTime: '',
+ persons: [],
+ siteList: [],
+ deviceList: [],
+ stuffList: [],
+ hazardousWasteList: [],
+ };
+ } else if (title === '整改' || title === '编辑') {
+ projectDialogState.title = title;
+ projectDialogState.disabled = false
+ for (let i in projectDialogState.projectForm) {
+ if (isValidKey(i, projectDialogState.projectForm)) {
+ projectDialogState.projectForm[i] = value[i];
}
- typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
- }else{
- projectDialogState.title = '查看';
- projectDialogState.disabled = true
- for(let i in projectDialogState.projectForm) {
- if(isValidKey(i, projectDialogState.projectForm)) {
- projectDialogState.projectForm[i] = value[i];
- }
- }
- typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
}
+ typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
+ } else {
+ projectDialogState.title = '查看';
+ projectDialogState.disabled = true
+ for (let i in projectDialogState.projectForm) {
+ if (isValidKey(i, projectDialogState.projectForm)) {
+ projectDialogState.projectForm[i] = value[i];
+ }
+ }
+ typeValue.value = projectDialogState.projectForm.typeList.map(item => item.typeId)
+ }
};
const handleClose = () => {
@@ -517,8 +569,8 @@
projectDialogState.projectDialogVisible = false;
}
-const isValidKey = (key: string | number | symbol, object:object): key is keyof typeof object =>{
- return key in object;
+const isValidKey = (key: string | number | symbol, object: object): key is keyof typeof object => {
+ return key in object;
};
const changeList = (val: any) => {
const filteredNames = projectDialogState.experimentTypeList
@@ -532,161 +584,165 @@
}
-const onSubmitProject = async() => {
- 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
- const roomList = selectRoomRef.value.dataList
- projectDialogState.projectForm.siteList = roomList.map(({siteId}) => ({siteId}))
- projectDialogState.projectForm.stuffList = selectMaterialRef.value.dataList
- projectDialogState.projectForm.deviceList = selectEquipmentRef.value.dataList
- let res = await projectApi().addProject(projectDialogState.projectForm)
- if(res.data.code === 100){
- handleClose()
- ElMessage({
- type: 'success',
- message: '新增成功'
- })
-
- }else{
- ElMessage({
- type: 'warning',
- message: res.data.msg,
- });
- }
- }else{
- projectDialogState.projectForm.siteList = selectRoomRef.value.dataList.map(obj => ({siteId:obj.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){
- handleClose()
- ElMessage({
- type: 'success',
- message: '整改已提交'
- })
- }else{
- ElMessage({
- type: 'warning',
- message: res.data.msg,
- });
- }
- }
- }else{
- ElMessage({
- type: 'warning',
- message: '请完善基本信息',
- });
+const onSubmitProject = async () => {
+ 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
+ const roomList = selectRoomRef.value.dataList
+ projectDialogState.projectForm.siteList = roomList.map(({siteId}) => ({siteId}))
+ projectDialogState.projectForm.stuffList = selectMaterialRef.value.dataList
+ projectDialogState.projectForm.deviceList = selectEquipmentRef.value.dataList
+ let res = await projectApi().addProject(projectDialogState.projectForm)
+ if (res.data.code === 100) {
+ handleClose()
+ ElMessage({
+ type: 'success',
+ message: '新增成功'
+ })
+
+ } else {
+ ElMessage({
+ type: 'warning',
+ message: res.data.msg,
+ });
+ }
+ } else {
+ projectDialogState.projectForm.siteList = selectRoomRef.value.dataList.map(obj => ({siteId: obj.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) {
+ handleClose()
+ 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
- })
+ 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
- })
- }
+ 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 getDeptData =async () => {
+const getDeptData = async () => {
let res = await departmentApi().getDepartmentList()
if (res.data.code === 100) {
projectDialogState.deptList = res.data.data
@@ -702,160 +758,166 @@
const emit = defineEmits(['refresh']);
defineExpose({
- showProjectDialog,
+ showProjectDialog,
});
onMounted(() => {
- getAllPersonList();
- getPersonList();
- getDeptData();
+ getAllPersonList()
+ getPersonList()
+ getDeptData()
});
</script>
<style scoped lang="scss">
.site-layout-background {
- background: #fff;
+ background: #fff;
}
.report-table {
- width: 100%;
- border-collapse: collapse;
- border: 1px solid #337ecc;
- margin: 20px 0;
+ width: 100%;
+ border-collapse: collapse;
+ border: 1px solid #337ecc;
+ margin: 20px 0;
-th {
+ th {
padding: 10px 0;
border: 1px solid #337ecc;
border-left: none;
-}
+ }
-tr {
+ tr {
width: 100%;
height: 44px;
line-height: 42px;
border-bottom: 1px solid #ccc;
-&:last-of-type {
- border-bottom: none;
- }
+ &: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;
+ 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;
+ :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%;
+ }
+ }
}
-&: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 {
+ .b-font {
font-size: 16px;
font-weight: bolder;
-}
+ }
}
.m-color {
- color: #0c4995;
+ color: #0c4995;
}
-::v-deep(.el-form-item){
+
+::v-deep(.el-form-item) {
height: 100%;
display: flex;
justify-content: center;
- .el-form-item__content{
+
+ .el-form-item__content {
display: flex;
justify-content: center;
}
}
-.roomSelect{
- ::v-deep(.el-popper){
- .el-select-dropdown__item{
+
+.roomSelect {
+ ::v-deep(.el-popper) {
+ .el-select-dropdown__item {
height: auto;
padding: 0;
- .roomTable{
+ .roomTable {
width: 100%;
display: flex;
border-bottom: 1px solid #ebeef5;
- &:last-of-type{
+ &:last-of-type {
border-bottom: none;
}
- &>div{
+ & > div {
width: 25%;
border-right: 1px dashed #ebeef5;
- &:last-of-type{
+
+ &:last-of-type {
border-right: none;
}
- div{
+ div {
width: 100%;
}
- .roomTit{
+
+ .roomTit {
border-bottom: 1px solid #ebeef5;
}
}
}
}
- .el-select-dropdown__item.selected{
- .roomTit{
+
+ .el-select-dropdown__item.selected {
+ .roomTit {
color: #606266;
font-weight: normal;
}
@@ -863,10 +925,10 @@
}
}
-:deep(.el-dialog__footer){
- padding-top: 20px;
- display: flex;
- justify-content: center;
+:deep(.el-dialog__footer) {
+ padding-top: 20px;
+ display: flex;
+ justify-content: center;
}
diff --git a/src/views/experiment/project/index.ts b/src/views/experiment/project/index.ts
index a489093..695639c 100644
--- a/src/views/experiment/project/index.ts
+++ b/src/views/experiment/project/index.ts
@@ -43,8 +43,10 @@
experimentName: string,
experimentType: null | number | any,
typeList: Array<eType>,
+ liabilityUser: string
liabilityUserId: null | number,
safeLiabilityUser: string
+ safeLiabilityUserId: null | number,
liabilityUserPhone: string,
safeLiabilityUserPhone: string,
sisStatus?: null | number,
@@ -107,7 +109,8 @@
declare interface AllPersonListType {
id?: null | number,
personId?: null | number,
- personName: null,
+ personName: string,
+ realName?: string
personAge: null,
personGender:'',
personMajor:'',
diff --git a/src/views/loginPage/loginPage.vue b/src/views/loginPage/loginPage.vue
index 0bfc8b9..e3b5c20 100644
--- a/src/views/loginPage/loginPage.vue
+++ b/src/views/loginPage/loginPage.vue
@@ -75,11 +75,11 @@
position: relative;
img{
- width: 103%;
+ width: 100%;
height: auto;
position: absolute;
bottom: -180px;
- right: 15%;
+ right: 5%;
margin-top: 40px;
}
}
@@ -161,12 +161,12 @@
border-radius: 15px;
box-shadow: 0 20px 60px rgba(0, 0, 0, 0.3);
.welcc {
- font-size: 52px;
+ font-size: clamp(2.625rem, 1.911rem + 1.12vw, 3.25rem);
font-family: 'PingFang SC';
text-align: right;
font-weight: 900;
color: #485BD4;
- letter-spacing: 6px;
+ letter-spacing: 2px;
white-space: nowrap;
position: relative;
z-index: 999;
--
Gitblit v1.9.2