马宇豪
2025-04-02 5c45db7c1be28da293b3583c16834ee97e8bac47
src/views/experiment/developing/components/developDialog.vue
@@ -1,9 +1,9 @@
<template>
    <div class="system-menu-dialog-container">
        <el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%">
        <el-dialog :title="projectDialogState.title" v-model="projectDialogState.projectDialogVisible" width="80%" @close="handleClose">
            <el-form ref="ProjectFormRef" :rules="projectDialogState.projectFormRules" :model="projectDialogState.projectForm" size="default" label-width="0">
                <table class="report-table">
                  <th class="m-color b-font" style="text-align: center">***研究所/***大学<br />科学研究实验项目安全风险基础信息录入表(已开展)(带<span style="color: red">*</span>为必填项)</th>
                  <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">
@@ -33,8 +33,19 @@
                    <tr>
                        <td class="w-25 m-color required">部门</td>
                        <td class="w-75 m-color">
<!--                          <el-form-item prop="dep">-->
<!--                            <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.dep" />-->
<!--                          </el-form-item>-->
                          <el-form-item prop="dep">
                            <el-input :disabled="projectDialogState.disabled" v-model="projectDialogState.projectForm.dep" />
                          <el-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>
@@ -74,8 +85,18 @@
<!--                              :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 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>
@@ -295,6 +316,7 @@
import {useUserInfo} from "/@/stores/userInfo";
import {storeToRefs} from "pinia";
import {checkChineseName, verifyPhone} from "/@/utils/toolsValidate";
import {departmentApi} from "/@/api/systemManage/department";
const SelectEquipment = defineAsyncComponent(() => import('../../project/components/selectEquipment.vue'))
const SelectMaterial = defineAsyncComponent(() => import('../../project/components/selectMaterial.vue'))
const SelectDanger = defineAsyncComponent(() => import('../../project/components/selectDanger.vue'))
@@ -395,6 +417,7 @@
    allPersonList: [],
    allRoomList: [],
    systemPersonList: [],
    deptList: []
})
const showDevelopDialog = (title: string, value: ProjectType, allRoomList: RoomType []) => {
@@ -473,7 +496,7 @@
}
const getSafeLiabilityUserPhone = (value: number)=>{
  const data = projectDialogState.allPersonList.find(item => item.id === value) as AllPersonListType
  const data = projectDialogState.systemPersonList.find(item => item.realName === value) as AllPersonListType
  projectDialogState.projectForm.safeLiabilityUserPhone = data.phone
}
@@ -492,6 +515,18 @@
      })
  projectDialogState.projectForm.typeList = filteredNames
}
const getDeptData =async () => {
  let res = await departmentApi().getDepartmentList()
  if (res.data.code === 100) {
    projectDialogState.deptList = res.data.data
  } else {
    ElMessage({
      type: 'warning',
      message: res.data.msg
    });
  }
}
const scratchProject = async() => {
@@ -688,6 +723,7 @@
onMounted(() => {
    getAllPersonList();
    getPersonList();
    getDeptData();
});
</script>