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