马宇豪
2025-04-16 724474543053bf6cf4ab9e8d14065e3d3b13a8ea
修改
已修改6个文件
425 ■■■■■ 文件已修改
src/theme/element.scss 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/analyse/plan/components/planDialog.vue 59 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/developing/components/developDialog.vue 188 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/project/components/projectDialog.vue 164 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/experiment/project/index.ts 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/loginPage/loginPage.vue 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/theme/element.scss
@@ -230,6 +230,7 @@
            }
        }
    }
}
.el-dialog__body {
    max-height: calc(90vh - 111px) !important;
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 {
src/views/experiment/developing/components/developDialog.vue
@@ -1,14 +1,19 @@
<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">
    <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>
          <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.experimentName" placeholder="请输入实验名称"/>
                            </el-form-item>
                        </td>
                    </tr>
@@ -24,8 +29,11 @@
<!--                                <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 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>
@@ -53,12 +61,13 @@
                      <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-select style="width: 100%" v-model="projectDialogState.projectForm.liabilityUserId" clearable
                           filterable @change="getLiabilityUserPhone($event)">
                            <el-option
                                v-for="item in projectDialogState.systemPersonList"
                      v-for="item in projectDialogState.allPersonList"
                                :key="item.id"
                                :value="item.id"
                                :label="item.realName"
                      :label="item.personName"
                            ></el-option>
                        </el-select>
<!--                            <el-select style="width: 100%" disabled v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable>-->
@@ -70,7 +79,8 @@
                      <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.liabilityUserPhone"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -88,12 +98,13 @@
<!--                        <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-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.realName"
                      :value="item.id"
                              :label="item.realName"
                          ></el-option>
                        </el-select>
@@ -102,7 +113,8 @@
                      <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.safeLiabilityUserPhone"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -110,13 +122,16 @@
                      <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-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-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>
@@ -124,27 +139,35 @@
                      <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-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"
                :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-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>
          <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.experimentStep" placeholder="请输入实验步骤"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -152,7 +175,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.experimentMethod" placeholder="请输入操作方法"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -160,7 +184,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.process"
                          placeholder="请输入工艺过程"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -168,7 +193,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.keyProcess"
                          placeholder="请输入特殊/关键过程"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -176,7 +202,8 @@
                      <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.measure"
                          placeholder="请输入预防措施"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -184,7 +211,8 @@
                        <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-group :disabled="projectDialogState.disabled"
                                v-model="projectDialogState.projectForm.timeout">
                                <el-radio :label="1">存在</el-radio>
                                <el-radio :label="2">不存在</el-radio>
                            </el-radio-group>
@@ -193,7 +221,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.timeoutManager"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -210,7 +239,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.unclosedManager"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -218,7 +248,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.explosionProof" placeholder="请输入"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -226,7 +257,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.fireProof"
                          placeholder="请输入"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -234,14 +266,17 @@
                        <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-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 class="m-color b-font" style="text-align: center">应急预案/应急演练</tr>-->
<!--                    <tr>-->
<!--                        <td class="w-25 m-color required">有无预案</td>-->
@@ -263,12 +298,14 @@
<!--                            <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>
          <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.safeManagerMethod" placeholder="请输入"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -278,7 +315,8 @@
                        <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-group :disabled="projectDialogState.disabled"
                                v-model="projectDialogState.projectForm.partitionCondition">
                            <el-radio :label="0">是</el-radio>
                            <el-radio :label="1">否</el-radio>
                          </el-radio-group>
@@ -289,17 +327,20 @@
                        <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-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;">
                <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>
@@ -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'))
@@ -342,9 +384,11 @@
        experimentName: "",
        experimentType: null,
        typeList: [],
    liabilityUser: '',
        liabilityUserId: null,
        liabilityUserPhone: '',
        safeLiabilityUser: '',
    safeLiabilityUserId: null,
        safeLiabilityUserPhone: '',
        sisStatus: null,
        safeInformationSystem: '',
@@ -367,15 +411,11 @@
        note: "",
        createExperimentTime: '',
        startTime: '',
        persons: [
        ],
    persons: [],
        siteList: [],
        deviceList: [
        ],
        stuffList: [
        ],
        hazardousWasteList: [
        ],
    deviceList: [],
    stuffList: [],
    hazardousWasteList: [],
    },
    experimentTypeList: [
      {typeId: 1, typeName: '化学类'},
@@ -391,7 +431,7 @@
      value: [{ required: true, message: '', trigger: 'blur' }],
      liabilityUserId: [{ required: true, message: '', trigger: 'blur' }],
      liabilityUserPhone: [{ required: true, message: '', trigger: 'blur' }],
      safeLiabilityUser: [{ 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' }],
@@ -434,9 +474,11 @@
            experimentName: "",
            experimentType: null,
            typeList: [],
      liabilityUser: '',
            liabilityUserId: null,
            liabilityUserPhone: '',
            safeLiabilityUser: '',
      safeLiabilityUserId: null,
            safeLiabilityUserPhone: '',
            sisStatus: null,
            safeInformationSystem: '',
@@ -490,14 +532,16 @@
    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) =>{
@@ -530,12 +574,21 @@
}
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.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})): []
  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:  []
@@ -556,6 +609,7 @@
}
const onSubmitProject = async() => {
  console.log(projectDialogState.projectForm,'form')
    ProjectFormRef.value.validate(async(valid: boolean) => {
        if(valid){
            if(projectDialogState.projectForm.timeout == 2){
@@ -653,7 +707,11 @@
                }
            }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}))
        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()
@@ -721,9 +779,9 @@
});
onMounted(() => {
    getAllPersonList();
    getPersonList();
    getDeptData();
  getAllPersonList()
  getPersonList()
  getDeptData()
});
</script>
@@ -829,15 +887,18 @@
.m-color {
    color: #0c4995;
}
::v-deep(.el-form-item){
  height: 100%;
  display: flex;
  justify-content: center;
  .el-form-item__content{
    display: flex;
    justify-content: center;
  }
}
.roomSelect{
  ::v-deep(.el-popper){
    .el-select-dropdown__item{
@@ -856,6 +917,7 @@
        &>div{
          width: 25%;
          border-right: 1px dashed #ebeef5;
          &:last-of-type{
            border-right: none;
          }
@@ -863,12 +925,14 @@
          div{
            width: 100%;
          }
          .roomTit{
            border-bottom: 1px solid #ebeef5;
          }
        }
      }
    }
    .el-select-dropdown__item.selected{
      .roomTit{
        color: #606266;
src/views/experiment/project/components/projectDialog.vue
@@ -1,14 +1,19 @@
<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">
    <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>
          <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.experimentName" placeholder="请输入实验名称"/>
                            </el-form-item>
                        </td>
                    </tr>
@@ -24,8 +29,11 @@
<!--                                <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 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>
@@ -50,7 +58,9 @@
                        <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-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>
@@ -58,12 +68,13 @@
                      <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-select style="width: 100%" v-model="projectDialogState.projectForm.liabilityUserId" clearable
                           filterable @change="getLiabilityUserPhone($event)">
                            <el-option
                                v-for="item in projectDialogState.systemPersonList"
                      v-for="item in projectDialogState.allPersonList"
                                :key="item.id"
                                :value="item.id"
                                :label="item.realName"
                      :label="item.personName"
                            ></el-option>
                          </el-select>
<!--                          <el-select style="width: 100%" disabled v-model="projectDialogState.projectForm.liabilityUserId" clearable filterable>-->
@@ -75,7 +86,8 @@
                      <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.liabilityUserPhone"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -90,12 +102,13 @@
<!--                              :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-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.realName"
                      :value="item.id"
                              :label="item.realName"
                          ></el-option>
                        </el-select>
@@ -107,18 +120,23 @@
                      <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-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>
          <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.experimentStep" placeholder="请输入实验步骤"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -126,7 +144,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.experimentMethod" placeholder="请输入操作方法"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -134,7 +153,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.process"
                          placeholder="请输入工艺过程"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -142,7 +162,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.keyProcess"
                          placeholder="请输入特殊/关键过程"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -150,7 +171,8 @@
                      <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.measure"
                          placeholder="请输入预防措施"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -158,7 +180,8 @@
                        <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-group :disabled="projectDialogState.disabled"
                                v-model="projectDialogState.projectForm.timeout">
                                <el-radio :label="1">存在</el-radio>
                                <el-radio :label="2">不存在</el-radio>
                            </el-radio-group>
@@ -167,7 +190,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.timeoutManager"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -184,7 +208,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.unclosedManager"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -192,7 +217,8 @@
                        <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.explosionProof" placeholder="请输入"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -200,7 +226,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.fireProof"
                          placeholder="请输入"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -208,14 +235,17 @@
                        <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-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>-->
@@ -260,12 +290,14 @@
<!--                          </el-form-item>-->
<!--                        </td>-->
<!--                    </tr>-->
                    <select-emergency ref="selectEmergencyRef" v-model:disabled="projectDialogState.disabled" v-model:data="projectDialogState.projectForm.emergencyList"></select-emergency>
          <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-input :disabled="projectDialogState.disabled"
                          v-model="projectDialogState.projectForm.safeManagerMethod" placeholder="请输入"/>
                        </el-form-item>
                      </td>
                    </tr>
@@ -275,7 +307,8 @@
                        <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-group :disabled="projectDialogState.disabled"
                                v-model="projectDialogState.projectForm.partitionCondition">
                              <el-radio :label="0">是</el-radio>
                              <el-radio :label="1">否</el-radio>
                            </el-radio-group>
@@ -286,7 +319,8 @@
                        <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-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.note"
                          placeholder="请输入"/>
                          </el-form-item>
                        </td>
                    </tr>
@@ -294,9 +328,12 @@
            </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>
@@ -340,9 +377,11 @@
        experimentName: "",
        experimentType: null,
        typeList: [],
    liabilityUser: '',
        liabilityUserId: null,
        liabilityUserPhone: '',
        safeLiabilityUser: '',
    safeLiabilityUserId: null,
        safeLiabilityUserPhone: '',
        dep: "",
        experimentStep: "",
@@ -382,7 +421,7 @@
      typeList: [{ required: true, message: '', trigger: 'blur' }],
      liabilityUserId: [{ required: true, message: '', trigger: 'blur' }],
      liabilityUserPhone: [{ required: true, message: '', trigger: 'blur' }],
      safeLiabilityUser: [{ 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' }],
@@ -408,14 +447,16 @@
    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)=>{
@@ -424,12 +465,21 @@
// }
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.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})): []
  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:  []
@@ -449,7 +499,7 @@
  }
}
const showProjectDialog = (title: string, value: ProjectType, allRoomList: RoomType []) => {
    projectDialogState.projectDialogVisible = true;
  projectDialogState.projectDialogVisible = true
    projectDialogState.allRoomList = allRoomList
    setTimeout(() => {
        ProjectFormRef.value.clearValidate();
@@ -462,9 +512,11 @@
            experimentName: "",
            experimentType: null,
            typeList: [],
      liabilityUser: '',
            liabilityUserId: null,
            liabilityUserPhone: '',
            safeLiabilityUser: '',
      safeLiabilityUserId: null,
            safeLiabilityUserPhone: '',
            dep: "",
            experimentStep: "",
@@ -630,7 +682,11 @@
                }
            }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}))
        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()
@@ -706,9 +762,9 @@
});
onMounted(() => {
    getAllPersonList();
    getPersonList();
    getDeptData();
  getAllPersonList()
  getPersonList()
  getDeptData()
});
</script>
@@ -814,15 +870,18 @@
.m-color {
    color: #0c4995;
}
::v-deep(.el-form-item){
  height: 100%;
  display: flex;
  justify-content: center;
  .el-form-item__content{
    display: flex;
    justify-content: center;
  }
}
.roomSelect{
  ::v-deep(.el-popper){
    .el-select-dropdown__item{
@@ -841,6 +900,7 @@
        &>div{
          width: 25%;
          border-right: 1px dashed #ebeef5;
          &:last-of-type{
            border-right: none;
          }
@@ -848,12 +908,14 @@
          div{
            width: 100%;
          }
          .roomTit{
            border-bottom: 1px solid #ebeef5;
          }
        }
      }
    }
    .el-select-dropdown__item.selected{
      .roomTit{
        color: #606266;
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:'',
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;