From 4d1b167c820c0fd706ac4dea34d4f0f91abb7eb2 Mon Sep 17 00:00:00 2001 From: 13937891274 <kxc0822> Date: 星期六, 06 八月 2022 15:37:59 +0800 Subject: [PATCH] 应急预案管理数据对接 --- src/api/emergencyPlan/index.ts | 24 + src/views/contingencyManagement/panManagement/component/approvalProcess.vue | 220 ++++++++++++ src/views/contingencyManagement/panManagement/index.vue | 41 + src/views/contingencyManagement/panManagement/component/initiateApproval.vue | 339 ++----------------- src/views/contingencyManagement/panManagement/component/approval.vue | 358 ++++----------------- 5 files changed, 385 insertions(+), 597 deletions(-) diff --git a/src/api/emergencyPlan/index.ts b/src/api/emergencyPlan/index.ts index e64bd70..30ce773 100644 --- a/src/api/emergencyPlan/index.ts +++ b/src/api/emergencyPlan/index.ts @@ -55,5 +55,29 @@ method: 'get', }); }, + // 应急预案管理审批新增 + approvalEmergencyPlan: (params: object) => { + return request({ + url: `/emergencyWorkApprove/add`, + method: 'post', + data: params + }); + }, + // 应急预案管理审批修改 + editApprovalEmergencyPlan: (params: object) => { + return request({ + url: `/emergencyWorkApprove/update`, + method: 'post', + data: params + }); + }, + // 应急预案管理审批流程 + approvalProcessEmergencyPlan: (params: number) => { + return request({ + url: `/emergencyWorkApprove/info/${params}`, + method: 'get', + data: params + }); + }, } } \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/approval.vue b/src/views/contingencyManagement/panManagement/component/approval.vue index 8eea92f..0e97074 100644 --- a/src/views/contingencyManagement/panManagement/component/approval.vue +++ b/src/views/contingencyManagement/panManagement/component/approval.vue @@ -5,134 +5,35 @@ <el-form ref="ruleFormRef" :model="ruleForm" size="default" 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="name"> - <el-input v-model="ruleForm.name" placeholder="请填写队伍名称"></el-input> + <el-form-item label="审批名称" prop="name"> + <el-input v-model="ruleForm.workName" 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="title"> + <el-input v-model="ruleForm.title" 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="responsibleDepartment"> - <el-tree-select - v-model="ruleForm.treeSelect" - :data="data" - multiple - :render-after-expand="true" - :props="propse" - show-checkbox - clearable - check-strictly - /> - <el-divider /> - </el-form-item> - </el-col> - <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-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="associatedDanger"> - <el-select v-model="ruleForm.associatedDanger" class="w100" placeholder="请选择"> - <el-option label="是" :value="false"></el-option> - <el-option label="否" :value="true"></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="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-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="authorUid"> - <el-input v-model="ruleForm.authorName" placeholder="请选择" class="input-with-select"> + <el-form-item label="审批人" prop="approvePersonId"> + <el-input v-model="ruleForm.approvePersonName" 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="authorDeptId"> - <el-tree-select - v-model="ruleForm.authorDeptId" - check-strictly - :data="data" - class="w100" - :props="propse" - clearable - :render-after-expand="false" - 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="releaseDate"> - <el-date-picker - v-model="ruleForm.releaseDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </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"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </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="相关附件"> - <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-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="区域名称" prop="areaName">--> - <!-- <el-input--> - <!-- v-model="ruleForm.areaName"--> - <!-- placeholder="请选择"--> - <!-- class="input-with-select"--> - <!-- >--> - <!-- <template #append>--> - <!-- <el-button :icon="Search" @click="regionsDialog"/>--> - <!-- </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="authorUid"> - <el-radio-group v-model="ruleForm.resource"> - <el-radio label="不通过" /> - <el-radio label="通过" /> + <el-radio-group v-model="ruleForm.approveResult"> + <el-radio :label="false">不通过</el-radio> + <el-radio :label="true">通过</el-radio> </el-radio-group> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> - <el-form-item label="审批意见" prop="authorUid"> - <el-input v-model="ruleForm.name" type="textarea" placeholder="请填写审批意见"></el-input> + <el-form-item label="审批意见" prop="approveMemo"> + <el-input v-model="ruleForm.approveMemo" type="textarea" placeholder="请填写审批意见"></el-input> </el-form-item> </el-col> <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> @@ -143,9 +44,19 @@ </el-radio-group> </el-form-item> </el-col> + <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="审批名称" prop="workName"> + <el-input v-model="ruleForm.workName" placeholder="请填写队伍名称"></el-input> + </el-form-item> + </el-col> + <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> + <el-form-item label="审批标题" prop="title"> + <el-input v-model="ruleForm.title" placeholder="请填写审批名称"></el-input> + </el-form-item> + </el-col> <el-col v-if="ruleForm.complete" :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> <el-form-item label="审批人" prop="authorUid"> - <el-input v-model="ruleForm.authorName" placeholder="请选择" class="input-with-select"> + <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select"> <template #append> <el-button :icon="Search" @click="openUser" /> </template> @@ -161,54 +72,38 @@ </span> </template> </el-dialog> - <CheckTemplate ref="Shows" /> <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - <RegionsDialog ref="openRef" /> </div> </template> <script lang="ts"> -import { ref, defineComponent, onMounted } from 'vue'; +import { ref, defineComponent } from 'vue'; -import type { UploadUserFile, FormInstance } from 'element-plus'; +import type { FormInstance } from 'element-plus'; import { ElMessage } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import CheckTemplate from '/@/components/checkTemplate/index.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; import { emergencyPlanApi } from '/@/api/emergencyPlan'; -import { goalManagementApi } from '/@/api/goalManagement'; export default defineComponent({ name: 'openAdd', components: { - CheckTemplate, DailogSearchUserManger, - RegionsDialog, }, setup(prop, { emit }) { const isShowDialog = ref(false); const ruleFormRef = ref<FormInstance>(); const ruleForm = ref({ - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - }, - ], - emergencyTeam: '', //应急队伍 - areaList: [], //区域列表 - teamList: [], - deptList: [], - abolishStatus: false, + approveId: '', + workName: '', // 审批名称 + title: '', //审批标题 + approvePersonId: '', // + approvePersonName: '', // 审批人 + approveStatus: 2, + relateType: 1, + approveResult: false, + approveMemo: '', + relateId: '', }); const titles = ref(); const disabled = ref(); @@ -218,143 +113,38 @@ isShowDialog.value = true; titles.value = title; disabled.value = type; - if (title == '查看应急预案管理' || title == '修改应急预案管理') { - emergencyPlanApi() - .seeEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } + emergencyPlanApi() + .approvalProcessEmergencyPlan(id) + .then((res) => { + if (res.data.code == 200) { + ruleForm.value = res.data.data; + } + }); }; - //日期选择器 - const releaseDate = ref(''); - // 上传附件 - 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 submitForm = async () => { + isShowDialog.value = false; + emergencyPlanApi() + .editApprovalEmergencyPlan(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); + } + }); }; - const treeSelect = ref(); - // const trees = ref(); - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - }); - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = ref(); - - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急预案管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanApi() - .addEmergencyPlan(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; - emergencyPlanApi() - .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 = { - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - }, - ], - emergencyTeam: '', //应急队伍 - areaList: [], //区域列表 - teamList: [], - deptList: [], - abolishStatus: false, - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { + const resetForm = () => { isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 应急队伍弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); }; // 打开用户选择弹窗 const userRef = ref(); @@ -363,8 +153,8 @@ }; //回显 const onUser = (e: any) => { - ruleForm.value.authorUid = e[0].uid; - ruleForm.value.authorName = e[0].realName; + ruleForm.value.approvePersonId = e[0].uid; + ruleForm.value.approvePersonName = e[0].realName; }; const typeChang = () => { console.log('tag', ruleForm); @@ -380,22 +170,10 @@ }; return { openDialog, - fileList, - responsibleDepartment, - data, Search, - releaseDate, - treeSelect, - // trees, - propse, - department, - daiInpt, - Shows, submitForm, openUser, userRef, - regionsDialog, - openRef, toggleFullscreen, FullScreen, full, diff --git a/src/views/contingencyManagement/panManagement/component/approvalProcess.vue b/src/views/contingencyManagement/panManagement/component/approvalProcess.vue new file mode 100644 index 0000000..5c4ac6c --- /dev/null +++ b/src/views/contingencyManagement/panManagement/component/approvalProcess.vue @@ -0,0 +1,220 @@ +<template> + <div class="system-edit-user-container"> + <el-dialog title="查看审批流程" v-model="isShowDialog" width="60%" draggable :fullscreen="full"> + <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> + <el-row :gutter="35"> + <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20"> + <el-table + :data="tableData" + style="width: 100%; margin-top: 15px" + ref="multipleTableRef" + :model="formInline" + :header-cell-style="{ background: '#f6f7fa', color: '#909399' }" + > + <el-table-column prop="name" label="审批人" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="type" label="审批标题" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="authorUid" label="编写人" show-overflow-tooltip sortable></el-table-column> + <el-table-column prop="releaseDate" label="发布实施日期" show-overflow-tooltip sortable></el-table-column> + <el-table-column label="操作" width="200" align="center"> + <template #default="scope"> + <el-button size="small" text type="primary" @click="onReduction(scope.row.id)">还原</el-button> + </template> + </el-table-column> + </el-table> + </el-col> + </el-row> + <div class="pages"> + <el-pagination + v-if="tableData.length == 0 ? false : true" + v-model:currentPage="pageIndex" + v-model:page-size="pageSize" + :page-sizes="[10, 20, 30]" + :pager-count="5" + class="mt15" + background + layout="total, sizes, prev, pager, next, jumper" + :total="total" + @size-change="onHandleSizeChange" + @current-change="onHandleCurrentChange" + /> + </div> + <template #footer> + <span class="dialog-footer"> + <el-button @click="onCancel">取消</el-button> + </span> + </template> + </el-dialog> + </div> +</template> + +<script lang="ts"> +import { ref, reactive, defineComponent, onMounted } from 'vue'; + +import type { FormInstance } from 'element-plus'; +import { + // ElMessageBox, + ElMessage, +} from 'element-plus'; +import { Search, FullScreen } from '@element-plus/icons-vue'; +import { emergencyPlanApi } from '../../../../api/emergencyPlan'; +export default defineComponent({ + name: 'abolishLibrary', + components: {}, + setup(prop, { emit }) { + // 列表参数 + const listQuery = reactive({ + pageIndex: 1, + pageSize: 10, + searchParams: { + abolishStatus: true, + }, + }); + // 定义表格数据 + const tableData = ref([]); + + // 列表数据请求 + const openDialog = async (id: number) => { + isShowDialog.value = true; + let res = await emergencyPlanApi().approvalProcessEmergencyPlan(id); + if (res.data.code === '200') { + tableData.value = res.data.data; + pageIndex.value = res.data.pageIndex; + pageSize.value = res.data.pageSize; + total.value = res.data.total; + } else { + ElMessage({ + showClose: true, + type: 'error', + message: res.data.msg, + }); + } + }; + + const isShowDialog = ref(false); + + const ruleFormRef = ref<FormInstance>(); + // 打开弹窗 + // const openDialog = () => { + // isShowDialog.value = true; + // }; + // 关闭弹窗 + const closeDialog = () => { + isShowDialog.value = false; + }; + // 取消 + const onCancel = () => { + closeDialog(); + }; + const onReduction = async (id) => { + isShowDialog.value = false; + // emergencyPlanApi() + // .approvalProcessEmergencyPlan(id) + // .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); + // openDialog(); + // } + // }) + // .catch(() => {}); + }; + // 分页 + const pageIndex = ref(); + const pageSize = ref(); + const total = ref(); + // 分页改变 + const handleSizeChange = (val: number) => { + listQuery.pageSize = val; + }; + // 分页未改变 + const handleCurrentChange = (val: number) => { + listQuery.pageIndex = val; + }; + //全屏 + const full = ref(false); + const toggleFullscreen = () => { + if (full.value == false) { + full.value = true; + } else { + full.value = false; + } + }; + return { + openDialog, + closeDialog, + isShowDialog, + onCancel, + tableData, + Search, + ruleFormRef, + pageIndex, + pageSize, + handleSizeChange, + handleCurrentChange, + toggleFullscreen, + FullScreen, + full, + listQuery, + // onSubmit, + total, + emit, + onReduction, + }; + }, +}); +</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; +} +//分页 +.pages { + display: flex; + justify-content: flex-end; +} +::v-deep .el-pagination .el-pager li { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; +} +::v-deep .el-pagination .el-pager li.is-active { + background-color: #409eff; + color: #fff; +} +::v-deep .el-pagination .btn-prev { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; +} +::v-deep .el-pagination button:disabled { + color: #c0c4cc; +} +::v-deep .el-pagination .btn-next { + margin: 0 5px; + background-color: #f4f4f5; + color: #606266; + min-width: 30px; + border-radius: 2px; +} +</style> \ No newline at end of file diff --git a/src/views/contingencyManagement/panManagement/component/initiateApproval.vue b/src/views/contingencyManagement/panManagement/component/initiateApproval.vue index a4f313a..869d34d 100644 --- a/src/views/contingencyManagement/panManagement/component/initiateApproval.vue +++ b/src/views/contingencyManagement/panManagement/component/initiateApproval.vue @@ -1,130 +1,22 @@ <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="发起审批" v-model="isShowDialog" width="40%" draggable :fullscreen="full" :close-on-click-modal="false"> <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-form ref="ruleFormRef" :model="ruleForm" size="default" label-width="120px"> <el-row :gutter="35"> <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20"> - <el-form-item label="预案名称" prop="name"> - <el-input v-model="ruleForm.name" placeholder="请填写队伍名称"></el-input> + <el-form-item label="审批名称" prop="workName"> + <el-input v-model="ruleForm.workName" 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="responsibleDepartment"> - <el-tree-select - v-model="ruleForm.treeSelect" - :data="data" - multiple - :render-after-expand="true" - :props="propse" - show-checkbox - clearable - check-strictly - /> - <el-divider /> + <el-form-item label="审批标题" prop="title"> + <el-input v-model="ruleForm.title" 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="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-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="associatedDanger"> - <el-select v-model="ruleForm.associatedDanger" class="w100" placeholder="请选择"> - <el-option label="是" :value="false"></el-option> - <el-option label="否" :value="true"></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="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-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="authorId"> - <el-input v-model="ruleForm.authorName" 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="authorDeptId"> - <el-tree-select - v-model="ruleForm.authorDeptId" - check-strictly - :data="data" - class="w100" - :props="propse" - clearable - :render-after-expand="false" - 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="releaseDate"> - <el-date-picker - v-model="ruleForm.releaseDate" - type="datetime" - class="w100" - placeholder="选择日期时间" - value-format="YYYY-MM-DD HH:mm:ss" - /> - </el-form-item> - </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"> - <template #append> - <el-button :icon="Search" @click="daiInpt" /> - </template> - </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="相关附件"> - <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-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">--> - <!-- <el-form-item label="区域名称" prop="areaName">--> - <!-- <el-input--> - <!-- v-model="ruleForm.areaName"--> - <!-- placeholder="请选择"--> - <!-- class="input-with-select"--> - <!-- >--> - <!-- <template #append>--> - <!-- <el-button :icon="Search" @click="regionsDialog"/>--> - <!-- </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="authorId"> - <el-input v-model="ruleForm.authorName" placeholder="请选择" class="input-with-select"> + <el-form-item label="审批人" prop="approvePersonId"> + <el-input v-model="ruleForm.approvePersonName" placeholder="请选择" class="input-with-select"> <template #append> <el-button :icon="Search" @click="openUser" /> </template> @@ -135,205 +27,76 @@ </el-form> <template #footer> <span class="dialog-footer"> - <el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button> - <el-button size="default" type="primary" v-if="disabled == true ? false : true" @click="submitForm(titles, ruleFormRef)">确定</el-button> + <el-button @click="resetForm" size="default">关闭</el-button> + <el-button size="default" type="primary" @click="submitForm">确定</el-button> </span> </template> </el-dialog> - <CheckTemplate ref="Shows" /> <DailogSearchUserManger ref="userRef" @SearchUser="onUser" /> - <RegionsDialog ref="openRef" /> </div> </template> <script lang="ts"> -import { ref, defineComponent, onMounted } from 'vue'; +import { ref, defineComponent } from 'vue'; -import type { UploadUserFile, FormInstance } from 'element-plus'; +import type { FormInstance } from 'element-plus'; import { ElMessage } from 'element-plus'; import { Search, FullScreen } from '@element-plus/icons-vue'; import DailogSearchUserManger from '/@/components/DailogSearchUserManger/index.vue'; -import CheckTemplate from '/@/components/checkTemplate/index.vue'; -import RegionsDialog from '/@/components/regionsDialog/index.vue'; import { emergencyPlanApi } from '/@/api/emergencyPlan'; -import { goalManagementApi } from '/@/api/goalManagement'; export default defineComponent({ name: 'openAdd', components: { - CheckTemplate, - DailogSearchUserManger, - RegionsDialog, + DailogSearchUserManger, }, setup(prop, { emit }) { const isShowDialog = ref(false); const ruleFormRef = ref<FormInstance>(); const ruleForm = ref({ - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - }, - ], - emergencyTeam: '', //应急队伍 - areaList: [], //区域列表 - teamList: [], - deptList: [], - abolishStatus: false, + workName: '', // 审批名称 + title: '', //审批标题 + approvePersonId: '', + approvePersonName: '', + approveStatus: 2, + relateType: 1, + relateId: '', }); const titles = ref(); - const disabled = ref(); // 打开弹窗 - const openDialog = (title: string, id: number, type: boolean) => { + const openDialog = (title: string, id: number) => { isShowDialog.value = true; titles.value = title; - disabled.value = type; - if (title == '查看应急预案管理' || title == '修改应急预案管理') { - emergencyPlanApi() - .seeEmergencyTeam(id) - .then((res) => { - if (res.data.code == 200) { - ruleForm.value = res.data.data; - } - }); - } + ruleForm.value.relateId = id; + uid.value = id; }; - //日期选择器 - const releaseDate = ref(''); - // 上传附件 - const fileList = ref<UploadUserFile[]>([]); - //部门树 - const department = () => { - goalManagementApi() - .getTreedepartment() + const uid = ref(); + const submitForm = async () => { + isShowDialog.value = false; + + emergencyPlanApi() + .approvalEmergencyPlan(ruleForm.value) .then((res) => { if (res.data.code == 200) { - data.value = res.data.data; + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'success', + }); + emit('myAdd', true); } else { - ElMessage.error(res.data.msg); + ElMessage({ + showClose: true, + message: res.data.msg, + type: 'error', + }); + emit('myAdd', true); } }); }; - const treeSelect = ref(); - // const trees = ref(); - const propse = { - label: 'depName', - children: 'children', - value: 'depId', - }; - onMounted(() => { - department(); - }); - //定义树形下拉框 - const responsibleDepartment = ref(); - const data = ref(); - - const submitForm = async (title: string, formEl: FormInstance | undefined) => { - if (title == '新建应急预案管理') { - if (!formEl) return; - await formEl.validate((valid, fields) => { - if (valid) { - isShowDialog.value = false; - emergencyPlanApi() - .addEmergencyPlan(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; - emergencyPlanApi() - .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 = { - name: '', // 预案名称 - type: '', //预案类型 - associatedDanger: '', // 危险源关联 - level: '', // 预案级别 - authorUid: '', // 编写人 - authorName: '', - authorDeptId: '', // 编写部门 - releaseDate: '', // 发布实施日期 - fileList: [ - { - fileUrl: 'url', - fileName: 'name', - }, - ], - emergencyTeam: '', //应急队伍 - areaList: [], //区域列表 - teamList: [], - deptList: [], - abolishStatus: false, - }; - } - }; - const resetForm = (formEl: FormInstance | undefined) => { + const resetForm = () => { isShowDialog.value = false; - if (!formEl) return; - formEl.resetFields(); - }; - // 应急队伍弹窗 - const Shows = ref(); - const daiInpt = () => { - Shows.value.openDailog(); - }; - // 选择区域弹窗 - const openRef = ref(); - const regionsDialog = () => { - openRef.value.openDailog(); }; // 打开用户选择弹窗 const userRef = ref(); @@ -342,8 +105,8 @@ }; //回显 const onUser = (e: any) => { - ruleForm.value.authorUid = e[0].uid; - ruleForm.value.authorName = e[0].realName; + ruleForm.value.approvePersonId = e[0].uid; + ruleForm.value.approvePersonName = e[0].realName; }; //全屏 const full = ref(false); @@ -356,33 +119,21 @@ }; return { openDialog, - fileList, - responsibleDepartment, - data, Search, - releaseDate, - treeSelect, - // trees, - propse, - department, - daiInpt, - Shows, submitForm, openUser, userRef, - regionsDialog, - openRef, toggleFullscreen, FullScreen, full, titles, - disabled, emit, isShowDialog, ruleFormRef, ruleForm, resetForm, onUser, + uid, }; }, }); diff --git a/src/views/contingencyManagement/panManagement/index.vue b/src/views/contingencyManagement/panManagement/index.vue index 14e7c33..41c09cb 100644 --- a/src/views/contingencyManagement/panManagement/index.vue +++ b/src/views/contingencyManagement/panManagement/index.vue @@ -93,8 +93,8 @@ size="small" text type="primary" - v-if="scope.row.approveStatus === 1 || scope.row.checkApprove == true" - @click="onApproval(scope.row.id)" + v-if="scope.row.approveStatus === 2 && scope.row.checkApprove === true" + @click="onApproval('修改',scope.row.id)" > 审批 </el-button> @@ -102,12 +102,12 @@ size="small" text type="primary" - v-if="scope.row.approveStatus === 1 || scope.row.checkApprove == false" - @click="initiateApproval(scope.row.id)" + v-if="scope.row.approveStatus === 2 && scope.row.checkApprove === false" + @click="onApproval('详情',scope.row.id)" > - 查看审批 + 查看审批 </el-button> - <el-button size="small" text type="primary" v-if="scope.row.approveStatus === 2" @click="initiateApproval(scope.row.id)"> + <el-button size="small" text type="primary" v-if="scope.row.approveStatus === 3" @click="onApprovalProcess(scope.row.id)"> 查看审批流程 </el-button> <!-- <el-button size="small" text type="primary" @click="jumpFrom(0)">--> @@ -143,9 +143,10 @@ </div> </el-card> <OpenAdd ref="addRef" @myAdd="onMyAdd" /> - <AbolishLibrary ref="abolishRef" /> - <InitiateApproval ref="initiateApprovalRef" /> - <Approval ref="approvalRef" /> + <AbolishLibrary ref="abolishRef" @myAdd="onMyAdd" /> + <InitiateApproval ref="initiateApprovalRef" @myAdd="onMyAdd" /> + <Approval ref="approvalRef" @myAdd="onMyAdd" /> + <ApprovalProcess ref="processRef" @myAdd="onMyAdd" /> <!-- <StartUp ref="startRef" @myAdd="startUp"/>--> <el-dialog v-model="dialogFormVisible" width="30%" title="启动" :fullscreen="full"> <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button> @@ -174,6 +175,7 @@ import OpenAdd from '/@/views/contingencyManagement/panManagement/component/openAdd.vue'; // import StartUp from '/@/views/contingencyManagement/panManagement/component/startUp.vue'; import AbolishLibrary from '/@/views/contingencyManagement/panManagement/component/abolishLibrary.vue'; +import ApprovalProcess from '/@/views/contingencyManagement/panManagement/component/approvalProcess.vue'; import InitiateApproval from '/@/views/contingencyManagement/panManagement/component/initiateApproval.vue'; import Approval from '/@/views/contingencyManagement/panManagement/component/approval.vue'; // import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue'; @@ -197,6 +199,7 @@ Refresh, VideoPause, VideoPlay, + ApprovalProcess, // UpData, emergencyPlanApi, }, @@ -450,14 +453,24 @@ // } // 发起审批弹窗 const initiateApprovalRef = ref(); - const initiateApproval = () => { - initiateApprovalRef.value.openDialog(); + const initiateApproval = (row: object) => { + initiateApprovalRef.value.openDialog('发起审批',row, true); }; // 审批 const approvalRef = ref(); - const onApproval = () => { - approvalRef.value.openDialog(); + const onApproval = (val: string,row: object) => { + if(val=='详情'){ + approvalRef.value.openDialog('查看审批', row, true); + } else { + approvalRef.value.openDialog('修改审批', row, false); + } }; + // 审批流程 + const processRef = ref(); + const onApprovalProcess = () => { + processRef.value.openDialog(); + }; + //全屏 const full = ref(false); const toggleFullscreen = () => { @@ -507,6 +520,8 @@ initiateApprovalRef, onApproval, approvalRef, + onApprovalProcess, + processRef, }; }, }); -- Gitblit v1.9.2