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