From 88e3972bd623a80ce86ade12f9e1f5b593f00423 Mon Sep 17 00:00:00 2001
From: zhaojiale <631455805@qq.com>
Date: 星期五, 05 八月 2022 15:48:31 +0800
Subject: [PATCH] 应急队伍管理

---
 src/api/contingency/index.ts                                                    |    5 
 src/components/DailogSearchUserManger/index.vue                                 |  223 ++++++++++
 src/views/accidentManagementSystem/accidentReport/component/openAdd.vue         |    6 
 src/views/contingencyManagement/contingency/index.vue                           |    8 
 src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue |   87 ++-
 src/views/contingencyManagement/contingency/component/openAdd.vue               |  921 +++++++++++++++++++++++--------------------
 6 files changed, 767 insertions(+), 483 deletions(-)

diff --git a/src/api/contingency/index.ts b/src/api/contingency/index.ts
index 39befff..52d8628 100644
--- a/src/api/contingency/index.ts
+++ b/src/api/contingency/index.ts
@@ -35,8 +35,9 @@
         // 应急队伍删除
         deleteEmergencyTeam: (params:object) => {
             return request({
-                url: `/emergencyTeam/batchDelete/${params}`,
-                method: 'get',
+                url: `/emergencyTeam/batchDelete`,
+                method: 'post',
+                data:params
             });
         },
         // 应急队伍人员一览
diff --git a/src/components/DailogSearchUserManger/index.vue b/src/components/DailogSearchUserManger/index.vue
new file mode 100644
index 0000000..1632e6a
--- /dev/null
+++ b/src/components/DailogSearchUserManger/index.vue
@@ -0,0 +1,223 @@
+<template>
+	<el-dialog v-model="dialogVisible" :fullscreen="full" title="用户选择" width="60%" draggable>
+		<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
+		<el-row>
+			<el-col :span="6">
+				<div class="userTree">
+					<el-input v-model="filterText" placeholder="请输入组织机构过滤"></el-input>
+					<div class="tree">
+						<el-tree ref="treeRef" :data="data" :props="propse" @node-click="handleNodeClick" :filter-node-method="filterNode" />
+					</div>
+				</div>
+			</el-col>
+			<el-col :span="14" style="padding: 20px">
+				<el-form ref="ruleFormRef" :model="ruleForm" status-icon>
+					<el-row>
+						<el-col :span="10" :offset="1">
+							<el-form-item size="default">
+								<el-input v-model="ruleForm.pass" placeholder="登录名" />
+							</el-form-item>
+						</el-col>
+						<el-col :span="8" :offset="1">
+							<el-form-item>
+								<el-button size="default" type="primary" >查询</el-button>
+								<el-button size="default">重置</el-button>
+							</el-form-item>
+						</el-col>
+					</el-row>
+				</el-form>
+				<el-table :data="tableData" style="width: 100%; margin-top: 20px" @cell-click="radio">
+					<el-table-column align="center">
+						<template #default="scope">
+							<el-radio-group v-model="radio1">
+								<el-radio :label="scope.row.uid" size="large">{{ null }}</el-radio>
+							</el-radio-group>
+						</template>
+					</el-table-column>
+					<el-table-column align="center" prop="realName" label="登录名" />
+					<el-table-column align="center" prop="username" label="用户名" />
+					<el-table-column align="center" prop="address" label="所属机构" />
+					<el-table-column align="center" prop="address" label="所属部门" />
+					<el-table-column align="center" prop="type" label="状态" />
+				</el-table>
+				<el-pagination
+					style="padding: 20px 0; border-bottom: 1px solid #dedede"
+					v-model:currentPage="currentPage4"
+					v-model:page-size="pageSize4"
+					:page-sizes="[100, 200, 300, 400]"
+					layout="total, sizes, prev, pager, next, jumper"
+					:total="400"
+					@size-change="handleSizeChange"
+					@current-change="handleCurrentChange"
+				/>
+			</el-col>
+			<el-col :span="4">
+			<div v-if="dynamicTags[0]==''?false:true">
+				<el-tag
+					v-for="tag in dynamicTags"
+					:key="tag"
+					class="mx-1"
+					style="margin: 5px"
+					closable
+					:disable-transitions="false"
+					@close="handleClose(tag)"
+				>
+					{{ tag.realName }}
+				</el-tag>
+				</div>
+			</el-col>
+		</el-row>
+		<template #footer>
+			<span class="dialog-footer">
+				<el-button @click="dialogVisible = false" size="default">关闭</el-button>
+				<el-button type="primary" @click="submitForm" size="default">确定</el-button>
+			</span>
+		</template>
+	</el-dialog>
+</template>
+<script lang="ts">
+import { defineComponent, ref, onMounted, reactive, watch } from 'vue';
+import { FullScreen } from '@element-plus/icons-vue';
+import { ElMessageBox, ElTree, ElMessage, ElButton, ElInput, TabsPaneContext } from 'element-plus';
+import { goalManagementApi } from '/@/api/goalManagement';
+interface Tree {
+	label: string;
+	children?: Tree[];
+}
+export default defineComponent({
+	setup(props, { emit }) {
+		//部门树
+		const department = () => {
+			goalManagementApi()
+				.getTreedepartment()
+				.then((res) => {
+					if (res.data.code == 200) {
+						data.value = res.data.data;
+					} else {
+						ElMessage.error(res.data.msg);
+					}
+				});
+		};
+		const propse = {
+			label: 'depName',
+			children: 'children',
+			value: 'depId',
+		};
+		//部门树查询
+		const filterText = ref('');
+		const treeRef = ref<InstanceType<typeof ElTree>>();
+		watch(filterText, (val) => {
+			treeRef.value!.filter(val);
+		});
+		const filterNode = (depName: string, data: Tree) => {
+			if (!depName) return true;
+			return data.depName.includes(depName);
+		};
+		onMounted(() => {
+			department();
+		});
+		//左边树形部分点击获取回调
+		const names = ref<any>();
+		const handleNodeClick = (data: Tree) => {
+			goalManagementApi()
+				.getManName(data.depId)
+				.then((res) => {
+					if (res.data.code == 200) {
+						tableData.value=res.data.data
+					}else{
+						ElMessage.error(res.data.msg);
+					}
+				});
+		};
+
+		const data = ref();
+		//中间表格
+		// 搜索条件
+		const ruleForm = reactive({
+			pass: '',
+			checkPass: '',
+		});
+		// 表格
+		const tableData = ref();
+		const currentPage4 = ref();
+		const pageSize4 = ref();
+		const handleSizeChange = (val: number) => {
+			console.log(`${val} items per page`);
+		};
+		const handleCurrentChange = (val: number) => {
+			console.log(`current page: ${val}`);
+		};
+		// 右方点击添加后显示标签
+		const dynamicTags = ref(['']);
+		const handleClose = (tag: any) => {
+			dynamicTags.value.splice(dynamicTags.value.indexOf(tag), 1);
+			radio1.value = '';
+		};
+		const radio1 = ref('');
+		const radio = (event: any) => {
+			dynamicTags.value[0] = event;
+		};
+		const types=ref()
+		// 开启弹窗
+		const dialogVisible = ref(false);
+		const openDailog = (type:any) => {
+			console.log(type)
+			types.value=type
+			dialogVisible.value = true;
+		};
+		//全屏
+		const full = ref(false);
+		const toggleFullscreen = () => {
+			if (full.value == false) {
+				full.value = true;
+			} else {
+				full.value = false;
+			}
+		};
+		const submitForm = () => {
+			emit('SearchUser', dynamicTags.value);
+			dialogVisible.value = false;
+		};
+		return {
+			types,
+			filterText,
+			treeRef,
+			filterNode,
+			propse,
+			dialogVisible,
+			names,
+			data,
+			handleNodeClick,
+			openDailog,
+			ruleForm,
+			tableData,
+			currentPage4,
+			pageSize4,
+			handleSizeChange,
+			handleCurrentChange,
+			radio1,
+			dynamicTags,
+			handleClose,
+			FullScreen,
+			full,
+			toggleFullscreen,
+			radio,
+			submitForm,
+		};
+	},
+});
+</script>
+<style scoped>
+.userTree {
+	border: 1px solid #ebeef5;
+}
+.userTree .el-input {
+	padding: 10px;
+	border-bottom: 1px solid #ebeef5;
+}
+.tree {
+	height: 500px;
+	overflow: hidden;
+	overflow-y: auto;
+}
+</style>
diff --git a/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue b/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue
index c9a6958..d9bc2ac 100644
--- a/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue
+++ b/src/views/accidentManagementSystem/accidentReport/component/openAdd.vue
@@ -206,7 +206,7 @@
 			</template>
 		</el-dialog>
 		<AccidentName @selectItem="onSelectItem" ref="Shows" />
-		<DailogSearchUser @SearchUser="onUser" ref="userRef"  />
+		<DailogSearchUserManger @SearchUser="onUser" ref="userRef"  />
 		<RegionsDialog ref="openRef" />
 	</div>
 </template>
@@ -217,7 +217,7 @@
 import type { UploadUserFile, FormInstance, FormRules } from 'element-plus';
 import { ElMessage } from 'element-plus';
 import { Search, FullScreen } from '@element-plus/icons-vue';
-import DailogSearchUser from '/@/components/DailogSearchUser/index.vue';
+import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue';
 import AccidentName from '/@/views/accidentManagementSystem/workInjuryDeclaration/component/accidentName.vue';
 import RegionsDialog from '/@/components/regionsDialog/index.vue';
 import uploaderImg from '/@/components/uploaderImg/index.vue';
@@ -229,7 +229,7 @@
 	name: 'openAdd',
 	components: {
 		AccidentName,
-		DailogSearchUser,
+		DailogSearchUserManger,
 		RegionsDialog,
 		uploaderImg
 	},
diff --git a/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue b/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue
index 29a7ea8..dcaf499 100644
--- a/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue
+++ b/src/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue
@@ -3,9 +3,10 @@
     <el-dialog
         :title="titles"
         v-model="isShowDialog"
-        width="769px"
+        width="40%"
         draggable
         :fullscreen="full"
+        @close="resetForm(ruleFormRef)"
     >
       <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
       <el-form
@@ -17,15 +18,15 @@
           label-width="90px">
         <el-row :gutter="35">
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="选择人员" prop="userUid">
+            <el-form-item label="选择人员" prop="name">
               <el-input
-                  v-model="ruleForm.userUid"
+                  v-model="ruleForm.name"
                   placeholder="请选择"
                   class="input-with-select"
                   disabled
               >
                 <template #append>
-                  <el-button :icon="Search" @click="openUser" disabled/>
+                  <el-button :icon="Search" @click="openUser"/>
                 </template>
               </el-input>
             </el-form-item>
@@ -41,10 +42,10 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="人员性别" prop="sex">
-              <el-radio-group v-model="ruleForm.sex">
-                <el-radio label="男" />
-                <el-radio label="女" />
+            <el-form-item label="人员性别" prop="gender">
+              <el-radio-group v-model="ruleForm.gender">
+                <el-radio :label="false">男</el-radio>
+                <el-radio :label="true">女</el-radio>
               </el-radio-group>
             </el-form-item>
           </el-col>
@@ -68,7 +69,7 @@
 				</span>
       </template>
     </el-dialog>
-    <DailogSearchUser ref="userRef" @SearchUser="onUser"/>
+    <DailogSearchUserManger ref="userRef" @SearchUser="onUser"/>
   </div>
 </template>
 
@@ -88,21 +89,21 @@
   Search,
   FullScreen,
 } from '@element-plus/icons-vue'
-import DailogSearchUser from "/@/components/DailogSearchUser/index.vue"
+import DailogSearchUserManger from "/@/components/DailogSearchUserManger/index.vue"
 import {contingencyApi} from "/@/api/contingency";
 
 export default defineComponent({
   name: 'addTeamLeader',
   components: {
     // Search,
-    DailogSearchUser
+    DailogSearchUserManger
   },
   setup(props, { emit }) {
     const isShowDialog = ref(false)
     const ruleFormRef = ref<FormInstance>()
     const ruleForm = ref ({
       teamId: '',
-      userUid: 1,
+      userUid: '',
       gender: '',
       jobNumber: '', // 人员工号
       name: '', // 人员名称
@@ -148,6 +149,11 @@
     })
     const titles = ref();
     const disabled = ref();
+    //继续添加
+    const addForm = (formEl: FormInstance | undefined) => {
+      emit('myAdd', ruleForm.value);
+      formEl.resetFields();
+    }
     // const submitForm = async (title: string, formEl: FormInstance | undefined) => {
     //   if (title == '新建应急队伍人员') {
     //     if (!formEl) return;
@@ -226,27 +232,28 @@
         await formEl.validate((valid, fields) => {
           if (valid) {
             isShowDialog.value = false;
-            emit('onAdd', ruleForm.value);
-            // contingencyApi()
-            //     .addEmergencyTeamPersonnel(ruleForm.value)
-            //     .then((res) => {
-            //       if (res.data.code == 200) {
-            //         ElMessage({
-            //           showClose: true,
-            //           message: res.data.msg,
-            //           type: 'success',
-            //         });
-            //         emit('myAdd', true);
-            //       } else {
-            //         ElMessage({
-            //           showClose: true,
-            //           message: res.data.msg,
-            //           type: 'error',
-            //         });
-            //         emit('myAdd', true);
-            //       }
-            //       formEl.resetFields();
-            //     });
+            // console.log('-------',ruleForm.value)
+            // emit('myAdd', ruleForm.value);
+            contingencyApi()
+                .addEmergencyTeamPersonnel(ruleForm.value)
+                .then((res) => {
+                  if (res.data.code == 200) {
+                    ElMessage({
+                      showClose: true,
+                      message: res.data.msg,
+                      type: 'success',
+                    });
+                    emit('myAdd', true);
+                  } else {
+                    ElMessage({
+                      showClose: true,
+                      message: res.data.msg,
+                      type: 'error',
+                    });
+                    emit('myAdd', true);
+                  }
+                  formEl.resetFields();
+                });
           } else {
             console.log('error submit!', fields);
           }
@@ -258,7 +265,7 @@
           if (valid) {
             isShowDialog.value = false;
             contingencyApi()
-                .editEmergencyTeam(ruleForm.value)
+                .editEmergencyTeamPersonnel(ruleForm.value)
                 .then((res) => {
                   if (res.data.code == 200) {
                     ElMessage({
@@ -284,7 +291,7 @@
         formEl.resetFields();
         ruleForm.value = {
           teamId: '',
-          userUid: 1,
+          userUid: '',
           gender: '',
           jobNumber: '', // 人员工号
           name: '', // 人员名称
@@ -298,11 +305,14 @@
       if (!formEl) return;
       formEl.resetFields();
     };
+
     // 打开弹窗
-    const openDialog = (title: string, id: number, type: boolean) => {
+    const openDialog = (title: string, id: number,teamId:number, type: boolean) => {
       isShowDialog.value = true;
       titles.value = title;
       disabled.value = type;
+      ruleForm.value.teamId = teamId
+
       if (title == '查看应急队伍人员' || title == '修改应急队伍人员') {
         contingencyApi()
             .seeEmergencyTeamPersonnel(id)
@@ -319,7 +329,8 @@
       userRef.value.openDailog();
     };
     const onUser = (e:any) => {
-      ruleForm.value.userUid=e.id
+      ruleForm.value.userUid=e[0].uid
+      ruleForm.value.name=e[0].realName
     };
     //全屏
     const full = ref(false);
@@ -350,7 +361,7 @@
       openUser,
       userRef,
       onUser,
-      // addForm,
+      addForm,
       submitForm,
     };
   },
diff --git a/src/views/contingencyManagement/contingency/component/openAdd.vue b/src/views/contingencyManagement/contingency/component/openAdd.vue
index b7f9bc5..5f4eb4f 100644
--- a/src/views/contingencyManagement/contingency/component/openAdd.vue
+++ b/src/views/contingencyManagement/contingency/component/openAdd.vue
@@ -1,454 +1,503 @@
 <template>
-	<div class="system-edit-user-container">
-		<el-dialog :title="titles" v-model="isShowDialog" width="769px" draggable :fullscreen="full">
-			<el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen" ></el-button>
-			<el-form ref="ruleFormRef" :model="ruleForm" size="default" :rules="rules" label-width="120px" :disabled="disabled">
-				<el-row :gutter="35">
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="队伍名称" prop="teamName">
-							<el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="队伍级别" prop="teamLevel">
-							<el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
-								<el-option label="公司" value="公司"></el-option>
-								<el-option label="分厂-车间" value="分厂-车间"></el-option>
-								<el-option label="工序-班组等" value="工序-班组等"></el-option>
-							</el-select>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="队伍负责人" prop="principalUid">
-							<el-input v-model="ruleForm.principalUid" placeholder="请选择" class="input-with-select">
-								<template #append>
-									<el-button :icon="Search" @click="openUser"/>
-								</template>
-							</el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="负责人部门" prop="principalDepartmentId">
-							<el-tree-select v-model="ruleForm.principalDepartmentId" :data="data" class="w100" :props="propse" clearable  placeholder="请选择" />
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="负责人手机" prop="principalPhone">
-							<el-input v-model="ruleForm.principalPhone" placeholder="请填写负责人手机"></el-input>
-						</el-form-item>
-					</el-col>
-					<el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-						<el-form-item label="固定电话" prop="telephoneNumber">
-							<el-input v-model="ruleForm.telephoneNumber" placeholder="请填写固定电话"></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="teamDesc">
-							<el-input class="textarea" v-model="ruleForm.teamDesc" type="textarea" maxlength="150" placeholder="请填写队伍描述"></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="fileList">
-							<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>
-						</el-form-item>
-					</el-col>
-				</el-row>
-			</el-form>
-			<el-row :gutter="35">
-				<el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-					<el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
-						<el-tab-pane label="应急队伍人员" name="first" :disabled="disabled">
-							<el-button type="primary" size="default" @click="onAddEmergencyPersonnel" :disabled="disabled">新增</el-button>
-							<el-table
-								:data="tableData"
-								style="width: 100%; margin-top: 15px"
-								ref="multipleTableRef"
-								:header-cell-style="{ background: '#f6f7fa', color: '#909399' }"
-                :disabled="disabled"
-							>
-								<el-table-column prop="jobNumber" label="人员工号" show-overflow-tooltip></el-table-column>
-								<el-table-column prop="name" label="人员名称" show-overflow-tooltip></el-table-column>
-								<el-table-column prop="phone" label="手机号码" show-overflow-tooltip></el-table-column>
-								<el-table-column prop="position" label="职位" show-overflow-tooltip></el-table-column>
-								<el-table-column label="操作" width="200" align="center">
-									<template #default="scope">
-										<el-button disabled size="small" @click="onEdit('详情',scope.row.id)" >查看 </el-button>
-										<el-button disabled size="small" @click="onEdit('详情',scope.row.id)" style="margin-right: 5px">编辑 </el-button>
-										<el-button disabled size="small" @click="onRowDel(scope.row.id)" style="margin-right: 5px">删除 </el-button>
-									</template>
-								</el-table-column>
-							</el-table>
-						</el-tab-pane>
-					</el-tabs>
-				</el-col>
-			</el-row>
-			<template #footer>
+    <div class="system-edit-user-container">
+        <el-dialog :title="titles" v-model="isShowDialog" width="50%" draggable :fullscreen="full" @close="resetForm(ruleFormRef)">
+            <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
+            <el-form ref="ruleFormRef" :model="ruleForm" size="default" :rules="rules" label-width="120px"
+                     :disabled="disabled">
+                <el-row :gutter="35">
+                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+                        <el-form-item label="队伍名称" prop="teamName">
+                            <el-input v-model="ruleForm.teamName" placeholder="请填写队伍名称"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+                        <el-form-item label="队伍级别" prop="teamLevel">
+                            <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
+                                <el-option label="公司" value="公司"></el-option>
+                                <el-option label="分厂-车间" value="分厂-车间"></el-option>
+                                <el-option label="工序-班组等" value="工序-班组等"></el-option>
+                            </el-select>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+                        <el-form-item label="队伍负责人" prop="principalName">
+                            <el-input v-model="ruleForm.principalName" placeholder="请选择" class="input-with-select">
+                                <template #append>
+                                    <el-button :icon="Search" @click="openUser"/>
+                                </template>
+                            </el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+                        <el-form-item label="负责人部门" prop="principalDepartmentId">
+                            <el-tree-select v-model="ruleForm.principalDepartmentId" :data="data" class="w100"
+                                            :props="propse" clearable placeholder="请选择"/>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+                        <el-form-item label="负责人手机" prop="principalPhone">
+                            <el-input v-model="ruleForm.principalPhone" placeholder="请填写负责人手机"></el-input>
+                        </el-form-item>
+                    </el-col>
+                    <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
+                        <el-form-item label="固定电话" prop="telephoneNumber">
+                            <el-input v-model="ruleForm.telephoneNumber" placeholder="请填写固定电话"></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="teamDesc">
+                            <el-input class="textarea" v-model="ruleForm.teamDesc" type="textarea" maxlength="150"
+                                      placeholder="请填写队伍描述"></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="fileList">
+                            <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>
+                        </el-form-item>
+                    </el-col>
+                </el-row>
+            </el-form>
+            <el-row :gutter="35">
+                <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
+                    <el-tabs v-model="activeName" class="demo-tabs" @tab-click="handleClick">
+                        <el-tab-pane label="应急队伍人员" name="first" >
+                            <el-button type="primary" size="default" @click="onAddEmergencyPersonnel" :disabled="disabled">新增
+                            </el-button>
+                            <el-table
+                                    :data="tableData"
+                                    style="width: 100%; margin-top: 15px"
+                                    ref="multipleTableRef"
+                                    :header-cell-style="{ background: '#f6f7fa', color: '#909399' }"
+                                    :disabled="disabled"
+                            >
+                                <el-table-column prop="jobNumber" label="人员工号" show-overflow-tooltip></el-table-column>
+                                <el-table-column prop="name" label="人员名称" show-overflow-tooltip></el-table-column>
+                                <el-table-column prop="phone" label="手机号码" show-overflow-tooltip></el-table-column>
+                                <el-table-column prop="position" label="职位" show-overflow-tooltip></el-table-column>
+                                <el-table-column label="操作" width="250" align="center">
+                                    <template #default="scope">
+                                        <el-button :disabled="disabled" size="small" @click="onEdit('查看应急队伍人员',scope.row.id)">查看
+                                        </el-button>
+                                        <el-button :disabled="disabled" size="small" @click="onEdit('修改应急队伍人员',scope.row.id)"
+                                                   style="margin-right: 5px">编辑
+                                        </el-button>
+                                        <el-button :disabled="disabled" size="small" @click="onRowDel(scope.row.id)"
+                                                   style="margin-right: 5px">删除
+                                        </el-button>
+                                    </template>
+                                </el-table-column>
+                            </el-table>
+                        </el-tab-pane>
+                    </el-tabs>
+                </el-col>
+            </el-row>
+            <template #footer>
 				<span class="dialog-footer">
 					<el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button>
-					<el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="onSubmit(titles, ruleFormRef)">确定</el-button>
+					<el-button size="default" v-if="disabled == true ? false : true" type="primary"
+                               @click="onSubmit(titles, ruleFormRef)">确定</el-button>
 				</span>
-			</template>
-		</el-dialog>
-		<AddEmergencyPersonnel ref="addRef"  @myAdd="onMyAdd"/>
-		<DailogSearchUser ref="userRef" @SearchUsers="onUser" />
-	</div>
+            </template>
+        </el-dialog>
+        <AddEmergencyPersonnel ref="addRef" @myAdd="onMyAdd"/>
+        <DailogSearchUserManger ref="userRef" @SearchUser="onUser"/>
+    </div>
 </template>
 
 <script lang="ts">
-import {
-  reactive,
-  ref,
-  defineComponent,
-  onMounted,
-  // toRefs,
-} from 'vue';
-import {
-  ElMessage,
-  ElMessageBox,
-} from 'element-plus';
+    import {
+        reactive,
+        ref,
+        defineComponent,
+        onMounted,
+        // toRefs,
+    } from 'vue';
+    import {
+        ElMessage,
+        ElMessageBox,
+    } from 'element-plus';
 
-import type {
-  UploadUserFile,
-  TabsPaneContext,
-  FormInstance,
-  FormRules,
-} from 'element-plus'
+    import type {
+        UploadUserFile,
+        TabsPaneContext,
+        FormInstance,
+        FormRules,
+    } from 'element-plus'
 
-import {
-  Search,
-  FullScreen
-} from '@element-plus/icons-vue'
-import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue";
-import DailogSearchUser from "/@/components/DailogSearchUser/index.vue"
-import {contingencyApi} from "/@/api/contingency";
-import {goalManagementApi} from "/@/api/goalManagement";
-// import {releaseDrillPlanApi} from "/@/api/releaseDrillPlan";
+    import {
+        Search,
+        FullScreen
+    } from '@element-plus/icons-vue'
+    import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue";
+    import DailogSearchUserManger from "/@/components/DailogSearchUserManger/index.vue"
+    import {contingencyApi} from "/@/api/contingency";
+    import {goalManagementApi} from "/@/api/goalManagement";
+    // import {releaseDrillPlanApi} from "/@/api/releaseDrillPlan";
 
 
-export default defineComponent({
-  name: 'openAdd',
-  components: {
-    AddEmergencyPersonnel,
-    DailogSearchUser,
-  },
-  setup(prop, {emit}) {
-    const isShowDialog = ref(false);
-    const ruleFormRef = ref<FormInstance>();
-    const ruleForm =ref({
-        teamName: '', // 队伍名称
-        teamLevel: '', // 队伍级别
-        principalUid: '', // 队伍负责人
-        principalDepartmentId: '',  //负责人部门
-        principalPhone: '', // 负责人手机
-        telephoneNumber: '', // 固定电话
-        teamDesc: '',  //队伍描述
-        fileList: [
-          {
-            fileUrl: 'url',
-            fileName: 'name',
-          }
-        ],
-        memberList: []
-      });
-    const titles = ref();
-    const disabled = ref();
-    // 打开弹窗
-    const openDialog = (title: string,id: number, type: boolean) => {
-      isShowDialog.value = true;
-      titles.value = title;
-      disabled.value = type;
-      if (title == '查看应急队伍管理' || title == '修改应急队伍管理') {
-        contingencyApi()
-            .seeEmergencyTeam(id)
-            .then((res) => {
-              if (res.data.code == 200) {
-                ruleForm.value = res.data.data;
-              }
+    export default defineComponent({
+        name: 'openAdd',
+        components: {
+            AddEmergencyPersonnel,
+            DailogSearchUserManger,
+        },
+        setup(prop, {emit}) {
+            const isShowDialog = ref(false);
+            const ruleFormRef = ref<FormInstance>();
+            const ruleForm = ref({
+                teamName: '', // 队伍名称
+                teamLevel: '', // 队伍级别
+                principalUid: '', // 队伍负责人
+                principalName: '',
+                principalDepartmentId: '',  //负责人部门
+                principalPhone: '', // 负责人手机
+                telephoneNumber: '', // 固定电话
+                teamDesc: '',  //队伍描述
+                fileList: [
+                    {
+                        fileUrl: 'url',
+                        fileName: 'name',
+                    }
+                ],
+                memberList: []
             });
-      }
-    }
-    // 上传附件
-    const fileList = ref<UploadUserFile[]>([])
-
-    //部门树
-    const department = () => {
-      goalManagementApi()
-          .getTreedepartment()
-          .then((res) => {
-            if (res.data.code == 200) {
-              data.value = res.data.data;
-            } else {
-              ElMessage.error(res.data.msg);
+            const titles = ref();
+            const disabled = ref();
+            const peopleInsertBtn = ref(false)
+            const teamId = ref()
+            // 打开弹窗
+            const openDialog = (title: string, id: number, type: boolean) => {
+                isShowDialog.value = true;
+                titles.value = title;
+                disabled.value = type;
+                teamId.value = id
+                //如果是新增  无法添加人员
+                if(title == '新建应急队伍管理'){
+                    peopleInsertBtn.value = true
+                }else{
+                    peopleInsertBtn.value = false
+                }
+                if (title == '查看应急队伍管理' || title == '修改应急队伍管理') {
+                    contingencyApi()
+                        .seeEmergencyTeam(id)
+                        .then((res) => {
+                            if (res.data.code == 200) {
+                                ruleForm.value = res.data.data;
+                                listApi()
+                            }
+                        });
+                }
             }
-          });
-    };
-    //定义树形下拉框
-    const principalDepartmentId = ref()
-    const propse = {
-      label: 'depName',
-      children: 'children',
-      value: 'depId',
-    };
-    const data=ref()
-    onMounted(() => {
-      department();
+            // 上传附件
+            const fileList = ref<UploadUserFile[]>([])
+
+            //部门树
+            const department = () => {
+                goalManagementApi()
+                    .getTreedepartment()
+                    .then((res) => {
+                        if (res.data.code == 200) {
+                            data.value = res.data.data;
+                        } else {
+                            ElMessage.error(res.data.msg);
+                        }
+                    });
+            };
+            //定义树形下拉框
+            const principalDepartmentId = ref()
+            const propse = {
+                label: 'depName',
+                children: 'children',
+                value: 'depId',
+            };
+            const data = ref()
+            onMounted(() => {
+                department();
+            });
+            // 打开用户选择弹窗
+            const userRef = ref();
+            const openUser = () => {
+                userRef.value.openDailog();
+            };
+            const onUser = (e: any) => {
+                ruleForm.value.principalUid = e[0].uid
+                ruleForm.value.principalName = e[0].realName
+            };
+            //定义tabs切换
+            const activeName = ref('first')
+            const handleClick = (tab: TabsPaneContext, event: Event) => {
+                console.log(tab, event)
+            }
+
+            // 必填项提示
+            const rules = reactive<FormRules>({
+                teamName: [
+                    {
+                        required: true,
+                        message: '队伍名称不能为空',
+                        trigger: 'change',
+                    },
+                ],
+                teamLevel: [
+                    {
+                        required: true,
+                        message: '队伍级别不能为空',
+                        trigger: 'change',
+                    },
+                ],
+                principalUid: [
+                    {
+                        required: true,
+                        message: '队伍负责人不能为空',
+                        trigger: 'change',
+                    },
+                ],
+                principalDepartmentId: [
+                    {
+                        required: true,
+                        message: '负责人部门不能为空',
+                        trigger: 'change',
+                    },
+                ],
+                principalPhone: [
+                    {
+                        required: true,
+                        message: '负责人手机不能为空',
+                        trigger: 'change',
+                    },
+                ],
+                telephoneNumber: [
+                    {
+                        required: true,
+                        message: '固定电话不能为空',
+                        trigger: 'change',
+                    },
+                ],
+            })
+            //全屏
+            const full = ref(false);
+            const toggleFullscreen = () => {
+                if (full.value == false) {
+                    full.value = true;
+                } else {
+                    full.value = false;
+                }
+            };
+            const onSubmit = async (title: string, formEl: FormInstance | undefined) => {
+                if (title == '新建应急队伍管理') {
+                    if (!formEl) return;
+                    await formEl.validate((valid, fields) => {
+                        if (valid) {
+                            isShowDialog.value = false;
+                            contingencyApi()
+                                .addEmergencyTeam(ruleForm.value)
+                                .then((res) => {
+                                    if (res.data.code == 200) {
+                                        ElMessage({
+                                            showClose: true,
+                                            message: res.data.msg,
+                                            type: 'success',
+                                        });
+                                        emit('myAdd', true);
+                                    } else {
+                                        ElMessage({
+                                            showClose: true,
+                                            message: res.data.msg,
+                                            type: 'error',
+                                        });
+                                        emit('myAdd', true);
+                                    }
+                                    formEl.resetFields();
+                                });
+                        } else {
+                            console.log('error submit!', fields);
+                        }
+                    });
+                } else if (title == '修改应急队伍管理') {
+                    if (!formEl) return;
+                    await formEl.validate((valid, fields) => {
+                        if (valid) {
+                            isShowDialog.value = false;
+                            contingencyApi()
+                                .editEmergencyTeam(ruleForm.value)
+                                .then((res) => {
+                                    if (res.data.code == 200) {
+                                        ElMessage({
+                                            showClose: true,
+                                            message: '修改成功',
+                                            type: 'success',
+                                        });
+                                        emit('myAdd', true);
+                                    } else {
+                                        ElMessage({
+                                            showClose: true,
+                                            message: res.data.msg,
+                                            type: 'error',
+                                        });
+                                        emit('myAdd', true);
+                                    }
+                                    formEl.resetFields();
+                                });
+                        } else {
+                            console.log('error submit!', fields);
+                        }
+                    });
+                    formEl.resetFields();
+                    ruleForm.value = {
+                        teamName: '', // 队伍名称
+                        teamLevel: '', // 队伍级别
+                        principalUid: '', // 队伍负责人
+                        principalDepartmentId: '',  //负责人部门
+                        principalPhone: '', // 负责人手机
+                        telephoneNumber: '', // 固定电话
+                        teamDesc: '',  //队伍描述
+                        fileList: [
+                            {
+                                fileUrl: 'url',
+                                fileName: 'name',
+                            }
+                        ],
+                        memberList: []
+                    };
+                }
+            };
+            const resetForm = (formEl: FormInstance | undefined) => {
+                isShowDialog.value = false;
+                if (!formEl) return;
+                formEl.resetFields();
+                tableData.value=[]
+            };
+            // 定义表格数据
+            const tableData = ref([]);
+            //添加队伍负责人弹窗
+            const addRef = ref();
+            const onAddEmergencyPersonnel = () => {
+                //未添加队伍 无法修改人员
+                if(peopleInsertBtn.value == true){
+                    ElMessage({
+                        showClose: true,
+                        message: '请先添加应急队伍',
+                        type: 'warning',
+                    });
+                }else {
+                    addRef.value.openDialog('新建应急队伍人员','',teamId.value);
+                }
+
+            };
+            // 请求列表数据
+            const listApi = async () => {
+                let res = await contingencyApi().getEmergencyTeamPersonnelList(teamId.value);
+                if (res.data.code == 200) {
+                    tableData.value = res.data.data;
+                } else {
+                    ElMessage.error(res.data.msg);
+                }
+            };
+            // 新增后刷新
+            const onMyAdd = (e: object) => {
+                listApi();
+                // console.log(e)
+                // item.value = e
+                // tableData.value.push(item.value)
+                // console.log(tableData)
+            };
+            // 打开修改弹窗
+            const onEdit = (val: string, row: object) => {
+                if (val == '查看应急队伍人员') {
+                    addRef.value.openDialog('查看应急队伍人员', row,teamId.value, true);
+                } else {
+                    addRef.value.openDialog('修改应急队伍人员', row,teamId.value, false);
+                }
+            };
+            // 删除
+            const onRowDel = (data: any) => {
+                ElMessageBox.confirm('确定删除所选项吗?', '提示', {
+                    confirmButtonText: '确认',
+                    cancelButtonText: '取消',
+                    type: 'warning',
+                }).then(() => {
+                    contingencyApi()
+                        .deleteEmergencyTeamPersonnel(data)
+                        .then((res) => {
+                            if (res.data.code == 200) {
+                                ElMessage({
+                                    showClose: true,
+                                    message: res.data.msg,
+                                    type: 'success',
+                                });
+                                listApi()
+                            } else {
+                                ElMessage({
+                                    showClose: true,
+                                    message: res.data.msg,
+                                    type: 'error',
+                                });
+                                listApi()
+                            }
+                        });
+                })
+                    .catch(() => {
+                    });
+            };
+            return {
+                openDialog,
+                fileList,
+                principalDepartmentId,
+                data,
+                activeName,
+                handleClick,
+                tableData,
+                Search,
+                resetForm,
+                isShowDialog,
+                ruleFormRef,
+                ruleForm,
+                rules,
+                addRef,
+                userRef,
+                titles,
+                disabled,
+                propse,
+                emit,
+                onSubmit,
+                openUser,
+                onAddEmergencyPersonnel,
+                toggleFullscreen,
+                FullScreen,
+                full,
+                onUser,
+                onMyAdd,
+                listApi,
+                onEdit,
+                onRowDel,
+                department,
+                peopleInsertBtn,
+                teamId
+            };
+        },
     });
-    // 打开用户选择弹窗
-    const userRef = ref();
-    const openUser = () => {
-      userRef.value.openDailog();
-    };
-    const onUser = (e:any) => {
-      ruleForm.value.principalUid = e.username
-    };
-    //定义tabs切换
-    const activeName = ref('first')
-    const handleClick = (tab: TabsPaneContext, event: Event) => {
-      console.log(tab, event)
-    }
-
-    // 必填项提示
-    const rules = reactive<FormRules>({
-      teamName: [
-        {
-          required: true,
-          message: '队伍名称不能为空',
-          trigger: 'change',
-        },
-      ],
-      teamLevel: [
-        {
-          required: true,
-          message: '队伍级别不能为空',
-          trigger: 'change',
-        },
-      ],
-      principalUid: [
-        {
-          required: true,
-          message: '队伍负责人不能为空',
-          trigger: 'change',
-        },
-      ],
-      principalDepartmentId: [
-        {
-          required: true,
-          message: '负责人部门不能为空',
-          trigger: 'change',
-        },
-      ],
-      principalPhone: [
-        {
-          required: true,
-          message: '负责人手机不能为空',
-          trigger: 'change',
-        },
-      ],
-      telephoneNumber: [
-        {
-          required: true,
-          message: '固定电话不能为空',
-          trigger: 'change',
-        },
-      ],
-    })
-    //全屏
-    const full = ref(false);
-    const toggleFullscreen = () => {
-      if (full.value == false) {
-        full.value = true;
-      } else {
-        full.value = false;
-      }
-    };
-    const onSubmit = async (title: string, formEl: FormInstance | undefined) => {
-      if (title == '新建应急队伍管理') {
-        if (!formEl) return;
-        await formEl.validate((valid, fields) => {
-          if (valid) {
-            isShowDialog.value = false;
-            contingencyApi()
-                .addEmergencyTeam(ruleForm.value)
-                .then((res) => {
-                  if (res.data.code == 200) {
-                    ElMessage({
-                      showClose: true,
-                      message: res.data.msg,
-                      type: 'success',
-                    });
-                    emit('myAdd', true);
-                  } else {
-                    ElMessage({
-                      showClose: true,
-                      message: res.data.msg,
-                      type: 'error',
-                    });
-                    emit('myAdd', true);
-                  }
-                  formEl.resetFields();
-                });
-          } else {
-            console.log('error submit!', fields);
-          }
-        });
-      } else if (title == '修改应急队伍管理') {
-        if (!formEl) return;
-        await formEl.validate((valid, fields) => {
-          if (valid) {
-            isShowDialog.value = false;
-            contingencyApi()
-                .editEmergencyTeam(ruleForm.value)
-                .then((res) => {
-                  if (res.data.code == 200) {
-                    ElMessage({
-                      showClose: true,
-                      message: '修改成功',
-                      type: 'success',
-                    });
-                    emit('myAdd', true);
-                  } else {
-                    ElMessage({
-                      showClose: true,
-                      message: res.data.msg,
-                      type: 'error',
-                    });
-                    emit('myAdd', true);
-                  }
-                  formEl.resetFields();
-                });
-          } else {
-            console.log('error submit!', fields);
-          }
-        });
-        formEl.resetFields();
-        ruleForm.value = {
-          teamName: '', // 队伍名称
-          teamLevel: '', // 队伍级别
-          principalUid: '', // 队伍负责人
-          principalDepartmentId: '',  //负责人部门
-          principalPhone: '', // 负责人手机
-          telephoneNumber: '', // 固定电话
-          teamDesc: '',  //队伍描述
-          fileList: [
-            {
-              fileUrl: 'url',
-              fileName: 'name',
-            }
-          ],
-          memberList: []
-        };
-      }
-    };
-    const resetForm = (formEl: FormInstance | undefined) => {
-      isShowDialog.value = false;
-      if (!formEl) return;
-      formEl.resetFields();
-    };
-    // 定义表格数据
-    const tableData = ref([]);
-    //添加队伍负责人弹窗
-    const addRef = ref();
-    const onAddEmergencyPersonnel = (title:string,data: any) => {
-      addRef.value.openDialog('新建应急队伍人员',data);
-    };
-    // 新增后刷新
-    const onMyAdd = (e: boolean) => {
-      if (e) {
-        // listApi();
-      } else {
-        // listApi();
-      }
-    };
-    // 打开修改弹窗
-    const onEdit = (val: string, row: object) => {
-      if (val == '详情') {
-        addRef.value.openDialog('查看应急队伍人员',row,true);
-      } else {
-        addRef.value.openDialog('修改应急队伍人员',row,false);
-      }
-    };
-    // 删除
-    const onRowDel = (data: any) => {
-      ElMessageBox.confirm('确定删除所选项吗?', '提示',{
-        confirmButtonText: '确认',
-        cancelButtonText: '取消',
-        type: 'warning',
-      }).then(() => {
-        contingencyApi()
-            .deleteEmergencyTeamPersonnel(data)
-            .then((res) => {
-              if (res.data.code == 200) {
-                ElMessage({
-                  showClose: true,
-                  message: res.data.msg,
-                  type: 'success',
-                });
-              } else {
-                ElMessage({
-                  showClose: true,
-                  message: res.data.msg,
-                  type: 'error',
-                });
-              }
-            });
-      })
-          .catch(() => {});
-    };
-    return {
-      openDialog,
-      fileList,
-      principalDepartmentId,
-      data,
-      activeName,
-      handleClick,
-      tableData,
-      Search,
-      resetForm,
-      isShowDialog,
-      ruleFormRef,
-      ruleForm,
-      rules,
-      addRef,
-      userRef,
-      titles,
-      disabled,
-      propse,
-      emit,
-      onSubmit,
-      openUser,
-      onAddEmergencyPersonnel,
-      toggleFullscreen,
-      FullScreen,
-      full,
-      onUser,
-      onMyAdd,
-      // listApi,
-      onEdit,
-      onRowDel,
-      department,
-    };
-  },
-});
 </script>
 <style scoped lang="scss">
-.textarea {
-	height: 168px !important;
-}
-.textarea ::v-deep .el-textarea__inner {
-	height: 168px !important;
-}
-::v-deep .el-table__cell {
-	font-weight: 400;
-}
+    .textarea {
+        height: 168px !important;
+    }
+
+    .textarea ::v-deep .el-textarea__inner {
+        height: 168px !important;
+    }
+
+    ::v-deep .el-table__cell {
+        font-weight: 400;
+    }
 </style>
 
diff --git a/src/views/contingencyManagement/contingency/index.vue b/src/views/contingencyManagement/contingency/index.vue
index 66b517d..40627e3 100644
--- a/src/views/contingencyManagement/contingency/index.vue
+++ b/src/views/contingencyManagement/contingency/index.vue
@@ -202,8 +202,8 @@
       for (let i = 0; i < valId.length; i++) {
         arr.push(valId[i].id);
       }
-      deleteAll.value = arr.toString();
-      console.log(deleteAll.value);
+      deleteAll.value = arr;
+      console.log(deleteAll.value)
       if (val.length == 1) {
         warning.value = false;
         danger.value = false;
@@ -224,7 +224,7 @@
     // 打开新增应急队伍弹窗
     const addRef = ref();
     const onOpenAdd = () => {
-      addRef.value.openDialog('新建应急队伍管理',false);
+      addRef.value.openDialog('新建应急队伍管理');
     };
     // 新增后刷新
     const onMyAdd = (e: boolean) => {
@@ -250,7 +250,7 @@
         type: 'warning',
       }).then(() => {
         contingencyApi()
-          .deleteEmergencyTeam(data)
+          .deleteEmergencyTeam([data])
           .then((res) => {
             if (res.data.code == 200) {
               ElMessage({

--
Gitblit v1.9.2