From 1b9fea7d4af68d8f933b2dc42bf6084b9646f64c Mon Sep 17 00:00:00 2001
From: 马宇豪 <978517621@qq.com>
Date: 星期二, 04 三月 2025 08:39:55 +0800
Subject: [PATCH] 修改作业等级名称

---
 src/views/contingencyManagement/panManagement/component/openAdd.vue |  247 ++++++++++++++++++++++++++++---------------------
 1 files changed, 140 insertions(+), 107 deletions(-)

diff --git a/src/views/contingencyManagement/panManagement/component/openAdd.vue b/src/views/contingencyManagement/panManagement/component/openAdd.vue
index a5d978a..58c5501 100644
--- a/src/views/contingencyManagement/panManagement/component/openAdd.vue
+++ b/src/views/contingencyManagement/panManagement/component/openAdd.vue
@@ -1,6 +1,14 @@
 <template>
 	<div class="system-edit-user-container">
-		<el-dialog :title="titles" v-model="isShowDialog" width="40%" draggable :fullscreen="full" :close-on-click-modal="false">
+		<el-dialog
+			:title="titles"
+			v-model="isShowDialog"
+			width="50%"
+			draggable
+			:fullscreen="full"
+			:close-on-click-modal="false"
+			@close="resetForm(ruleFormRef)"
+		>
 			<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
 			<el-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px" :disabled="disabled">
 				<el-row :gutter="35">
@@ -12,14 +20,17 @@
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="适用部门" prop="responsibleDepartment">
 							<el-tree-select
-								v-model="ruleForm.treeSelect"
-								:data="data"
-								multiple
-								:render-after-expand="true"
-								:props="propse"
-								show-checkbox
+								v-model="responsibleDepartment"
+								:data="newTreeList"
+								class="w100"
 								clearable
+								:props="propse"
+								multiple
+								:render-after-expand="false"
 								check-strictly
+								check-on-click-node
+								placeholder="请选择"
+								@change="changeDepartment"
 							/>
 							<el-divider />
 						</el-form-item>
@@ -27,10 +38,10 @@
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="预案类型" prop="type">
 							<el-select v-model="ruleForm.type" class="w100" placeholder="请选择">
-								<el-option label="综合应急预案" value="综合应急预案"></el-option>
-								<el-option label="现场处置方案" value="现场处置方案"></el-option>
-								<el-option label="专项应急预案" value="专项应急预案"></el-option>
-								<el-option label="其他预案" value="其他预案"></el-option>
+								<el-option label="综合应急预案" :value="1"></el-option>
+								<el-option label="现场处置方案" :value="2"></el-option>
+								<el-option label="专项应急预案" :value="3"></el-option>
+								<el-option label="其他预案" value="4"></el-option>
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -45,9 +56,9 @@
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="预案级别" prop="level">
 							<el-select v-model="ruleForm.level" class="w100" placeholder="请选择">
-								<el-option label="公司级" value="公司级"></el-option>
-								<el-option label="分厂级" value="分厂级"></el-option>
-								<el-option label="车间级" value="车间级"></el-option>
+								<el-option label="公司级" :value="1"></el-option>
+								<el-option label="分厂级" :value="2"></el-option>
+								<el-option label="车间级" :value="3"></el-option>
 							</el-select>
 						</el-form-item>
 					</el-col>
@@ -64,8 +75,7 @@
 						<el-form-item label="编写部门" prop="authorDeptId">
 							<el-tree-select
 								v-model="ruleForm.authorDeptId"
-								check-strictly
-								:data="data"
+								:data="newTreeList"
 								class="w100"
 								:props="propse"
 								clearable
@@ -87,7 +97,7 @@
 					</el-col>
 					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
 						<el-form-item label="应急队伍" prop="emergencyTeam">
-							<el-input v-model="ruleForm.emergencyTeam" placeholder="请选择" class="input-with-select">
+							<el-input v-model="ruleForm.teamName" placeholder="请选择" class="input-with-select">
 								<template #append>
 									<el-button :icon="Search" @click="daiInpt(0)" />
 								</template>
@@ -96,17 +106,8 @@
 					</el-col>
 					<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
 						<el-form-item label="相关附件">
-							<el-upload
-								v-model:file-list="fileList"
-								class="upload-demo"
-								action="https://run.mocky.io/v3/9d059bf9-4660-45f2-925d-ce80ad6c4d15"
-								:on-change="handleChange"
-							>
-								<el-button type="primary">点击上传</el-button>
-								<template #tip>
-									<div class="el-upload__tip">添加相关附件</div>
-								</template>
-							</el-upload>
+							<uploaderFile :fileList="fileList" :systemName="'EMERGENCY'" :disabled="disabled"
+										  @successUploader="successUploader"></uploaderFile>
 						</el-form-item>
 					</el-col>
 					<!--          <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">-->
@@ -131,7 +132,7 @@
 				</span>
 			</template>
 		</el-dialog>
-		<CheckTemplate ref="Shows"  @SearchUser="SearchUser" />
+		<CheckTemplate ref="Shows" @SearchUser="SearchUser" />
 		<DailogSearchUserManger ref="userRef" @SearchUser="onUser" />
 		<RegionsDialog ref="openRef" />
 	</div>
@@ -148,13 +149,14 @@
 import RegionsDialog from '/@/components/regionsDialog/index.vue';
 import { emergencyPlanApi } from '/@/api/contingencyManagement/emergencyPlan';
 import { goalManagementApi } from '/@/api/goalManagement';
-
+import uploaderFile from '/@/components/uploaderFile/index.vue';
 export default defineComponent({
 	name: 'openAdd',
 	components: {
 		CheckTemplate,
 		DailogSearchUserManger,
 		RegionsDialog,
+		uploaderFile
 	},
 	setup(prop, { emit }) {
 		const isShowDialog = ref(false);
@@ -168,18 +170,11 @@
 			authorName: '',
 			authorDeptId: '', // 编写部门
 			releaseDate: '', // 发布实施日期
-			fileList: [
-				{
-					fileUrl: 'url',
-					fileName: 'name',
-				},
-			],
-			emergencyTeam: '', //应急队伍
+			fileList: [],
 			areaList: [], //区域列表
-			teamList: [
-            ],
+			teamList: [],
+			// teamId: '', //应急队伍
 			deptList: [],
-			abolishStatus: false,
 		});
 		const titles = ref();
 		const disabled = ref();
@@ -195,51 +190,108 @@
 					.then((res) => {
 						if (res.data.code == 200) {
 							ruleForm.value = res.data.data;
+							ruleForm.value.teamName = ''
+							responsibleDepartment.value = []
+							if(res.data.data.teamList){
+								for(var a = 0;a<res.data.data.teamList.length;a++){
+									ruleForm.value.teamName+=res.data.data.teamList[a].teamName+';'
+								}
+							}
+							if(res.data.data.deptList){
+								for(var a = 0;a<res.data.data.deptList.length;a++){
+									responsibleDepartment.value.push(res.data.data.deptList[a].departmentId)
+								}
+							}
+							fileList.value = (res.data.data.fileList?res.data.data.fileList:[])
+							initFileListData()
 						}
 					});
 			}
 		};
+		const initFileListData = async () => {
+			for(var a = 0;a<fileList.value.length;a++){
+				fileList.value[a].name = fileList.value[a].fileName
+			}
+		}
+		// 上传成功组装数据
+		const successUploader = (list) =>{
+			fileList.value = list
+			const formFileList = []
+			for(var a = 0;a<fileList.value.length;a++){
+				formFileList.push(
+						{
+							fileName:fileList.value[a].fileName,
+							fileUrl:''
+						}
+				)
+			}
+			ruleForm.value.fileList = formFileList
+		}
 		//日期选择器
 		const releaseDate = ref('');
 		// 上传附件
-		const fileList = ref<UploadUserFile[]>([]);
-		//部门树
-		const department = () => {
-			goalManagementApi()
+		const fileList = ref([]);
+		//el-tree-select回显
+		const propse = {
+			label: 'depName',
+			children: 'children',
+		};
+		const newTreeList = [];
+		//得到部门树
+		const department = async () => {
+			await goalManagementApi()
 				.getTreedepartment()
 				.then((res) => {
 					if (res.data.code == 200) {
-            ruleForm.value = res.data.data;
-            let arr = [];
-            for (let i = 0; i < ruleForm.value.teamList.length; i++) {
-              arr.push(ruleForm.value.teamList[i].userName);
-            }
-            ruleForm.value.userName = arr.toString();
+						data.value = res.data.data;
+						getTreeList(res.data.data, newTreeList);
 					} else {
 						ElMessage.error(res.data.msg);
 					}
 				});
 		};
-		const treeSelect = ref();
-		// const trees = ref();
-		const propse = {
-			label: 'depName',
-			children: 'children',
-			value: 'depId',
+		// 递归树状数据且修改字段名
+		const getTreeList = (treeList, newTreeList) => {
+			treeList.map((c) => {
+				let tempData = {
+					depName: c.depName,
+					value: c.depId,
+					children: [],
+				};
+				if (c.children && c.children.length > 0) {
+					tempData.children = [];
+					getTreeList(c.children, tempData.children);
+				}
+				newTreeList.push(tempData);
+			});
 		};
 		onMounted(() => {
 			department();
 		});
+		const changeDepartment = (e) => {
+			var temList = [];
+			for (var a = 0; a < e.length; a++) {
+				temList.push({
+          departmentId: e[a],
+				});
+			}
+			ruleForm.value.deptList = temList;
+			console.log(ruleForm);
+		};
 		//定义树形下拉框
-		const responsibleDepartment = ref();
+		const responsibleDepartment = ref([]);
 		const data = ref();
 
 		const submitForm = async (title: string, formEl: FormInstance | undefined) => {
+			if(!ruleForm.value.fileList){
+				ruleForm.value.fileList = []
+			}
 			if (title == '新建应急预案管理') {
 				if (!formEl) return;
 				await formEl.validate((valid, fields) => {
 					if (valid) {
 						isShowDialog.value = false;
+						delete ruleForm.value.teamName
 						emergencyPlanApi()
 							.addEmergencyPlan(ruleForm.value)
 							.then((res) => {
@@ -268,10 +320,13 @@
 				if (!formEl) return;
 				await formEl.validate((valid, fields) => {
 					if (valid) {
-						isShowDialog.value = false;
-						emergencyPlanApi()
-							.editEmergencyTeam(ruleForm.value)
+						delete ruleForm.value.teamName
+            ruleForm.value.teamList = JSON.parse(JSON.stringify(ruleForm.value.teamList))
+            ruleForm.value.fileList = JSON.parse(JSON.stringify(ruleForm.value.fileList))
+            ruleForm.value.deptList = JSON.parse(JSON.stringify(ruleForm.value.deptList))
+						emergencyPlanApi().editEmergencyTeam(ruleForm.value)
 							.then((res) => {
+                console.log(res,'res')
 								if (res.data.code == 200) {
 									ElMessage({
 										showClose: true,
@@ -288,7 +343,8 @@
 									emit('myAdd', true);
 								}
 								formEl.resetFields();
-							});
+							})
+            isShowDialog.value = false;
 					} else {
 						console.log('error submit!', fields);
 					}
@@ -303,64 +359,37 @@
 					authorName: '',
 					authorDeptId: '', // 编写部门
 					releaseDate: '', // 发布实施日期
-					fileList: [
-						{
-							fileUrl: 'url',
-							fileName: 'name',
-						},
-					],
-					emergencyTeam: '', //应急队伍
+					fileList: [],
+					// teamId: '', //应急队伍ID
 					areaList: [], //区域列表
-					teamList: [
-          ],
+					teamList: [],
 					deptList: [],
-					abolishStatus: false,
 				};
 			}
 		};
 		const resetForm = (formEl: FormInstance | undefined) => {
 			isShowDialog.value = false;
 			if (!formEl) return;
-      ruleForm.value = {
-        name: '', // 预案名称
-        type: '', //预案类型
-        associatedDanger: '', // 危险源关联
-        level: '', // 预案级别
-        authorUid: '', // 编写人
-        authorName: '',
-        authorDeptId: '', // 编写部门
-        releaseDate: '', // 发布实施日期
-        fileList: [
-          {
-            fileUrl: 'url',
-            fileName: 'name',
-          },
-        ],
-        emergencyTeam: '', //应急队伍
-        areaList: [], //区域列表
-        teamList: [
-        ],
-        deptList: [],
-        abolishStatus: false,
-      };
 			formEl.resetFields();
+			ruleForm.value = {};
+			fileList.value = []
 		};
 		// 应急队伍弹窗
 		const Shows = ref();
 		const daiInpt = (data: any) => {
-      Shows.value.openDailog(data);
+			Shows.value.openDailog(data);
 		};
-    const SearchUser = (e: any) => {
-      let arr = [];
-      for (let i = 0; i < val.length; i++) {
-        arr.push(val[i].realName);
-        ruleForm.value.userList.push({
-          userUid: val[i].uid,
-          userName: val[i].realName,
-        });
-      }
-      ruleForm.value.userName = arr.toString();
-    };
+		const SearchUser = (val: any) => {
+			let arr = [];
+			ruleForm.value.teamList = [];
+			for (let i = 0; i < val.length; i++) {
+				arr.push(val[i].teamName);
+				ruleForm.value.teamList.push({
+					teamId: val[i].id,
+				});
+			}
+			ruleForm.value.teamName = arr.toString();
+		};
 		// 选择区域弹窗
 		const openRef = ref();
 		const regionsDialog = () => {
@@ -392,13 +421,13 @@
 			data,
 			Search,
 			releaseDate,
-			treeSelect,
+			// treeSelect,
 			// trees,
 			propse,
 			department,
 			daiInpt,
 			Shows,
-      SearchUser,
+			SearchUser,
 			submitForm,
 			openUser,
 			userRef,
@@ -415,6 +444,10 @@
 			ruleForm,
 			resetForm,
 			onUser,
+			newTreeList,
+			changeDepartment,
+			successUploader,
+			initFileListData
 		};
 	},
 });

--
Gitblit v1.9.2