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