From 59a02383b283037bc809631de4287d80b79b0eb9 Mon Sep 17 00:00:00 2001
From: 13937891274 <kxc0822>
Date: 星期二, 26 七月 2022 14:24:22 +0800
Subject: [PATCH] 演练计划发布对接

---
 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue |  303 +++++++++++++++++++--------
 src/api/releaseDrillPlan/index.ts                                                       |   43 +++
 src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue             |  280 ++++++++++++++-----------
 3 files changed, 410 insertions(+), 216 deletions(-)

diff --git a/src/api/releaseDrillPlan/index.ts b/src/api/releaseDrillPlan/index.ts
new file mode 100644
index 0000000..ab0e944
--- /dev/null
+++ b/src/api/releaseDrillPlan/index.ts
@@ -0,0 +1,43 @@
+import request from '/@/utils/request';
+
+export function releaseDrillPlanApi(){
+    return{
+        getReleaseDrillPlanList: (params: object) => {
+            return request({
+                url: '/emergencyDrillPlan/page/list',
+                method: 'post',
+                data:params
+            })
+        },
+        // 应急队伍新增
+        addReleaseDrillPlan: (params:object) => {
+            return request({
+                url: `/emergencyDrillPlan/add`,
+                method: 'post',
+                data: params
+            });
+        },
+        // 应急队伍详情
+        seeReleaseDrillPlan: (params:number) => {
+            return request({
+                url: `/emergencyDrillPlan/info/${params}`,
+                method: 'get'
+            });
+        },
+        // 应急队伍编辑
+        editReleaseDrillPlan: (params: object) => {
+            return request({
+                url: `/emergencyDrillPlan/update`,
+                method: 'post',
+                data: params
+            });
+        },
+        // 应急队伍删除
+        deleteReleaseDrillPlan: (params:object) => {
+            return request({
+                url: `/emergencyDrillPlan/batchDelete/${params}`,
+                method: 'get',
+            });
+        },
+    }
+}
\ No newline at end of file
diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue
index 10ba7d3..e30a816 100644
--- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue
+++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="system-edit-user-container">
     <el-dialog
-        title="新建应急演练计划发布"
+        :title="titles"
         v-model="isShowDialog"
         width="769px"
         draggable
@@ -13,39 +13,40 @@
           :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="teamName">
-              <el-input v-model="ruleForm.teamName" placeholder="请填写演练名称"></el-input>
+            <el-form-item label="演练名称" prop="drillName">
+              <el-input v-model="ruleForm.drillName" 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="teamName">
-              <el-input v-model="ruleForm.teamName" placeholder="请填写演练地点"></el-input>
+            <el-form-item label="演练地点" prop="drillAddress">
+              <el-input v-model="ruleForm.drillAddress" 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="主办部门"  placeholder="请选择">
+            <el-form-item label="主办部门"  placeholder="请选择" prop="departmentId">
               <el-tree-select
-                  v-model="ruleForm.responsibleDepartment"
+                  v-model="ruleForm.departmentId"
                   :data="data" class="w100"
                   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="teamLevel">
-              <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
-                <el-option label="综合" value="admin"></el-option>
-                <el-option label="桌面" value="common3"></el-option>
-                <el-option label="专项" value="common2"></el-option>
+            <el-form-item label="演练方式" prop="drillWay">
+              <el-select v-model="ruleForm.drillWay" 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="telephone" >
+            <el-form-item label="应急预案" prop="planId" >
               <el-input
-                  v-model="ruleForm.teamLeader"
+                  v-model="ruleForm.planId"
                   placeholder="请选择"
                   class="input-with-select"
               >
@@ -56,38 +57,38 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="演练级别" prop="teamPhone">
-              <el-select v-model="ruleForm.teamLevel" class="w100" placeholder="请选择">
-                <el-option label="公司级" value="admin"></el-option>
-                <el-option label="分厂级" value="common"></el-option>
-                <el-option label="车间级" value="common1"></el-option>
+            <el-form-item label="演练级别" prop="drillLevel">
+              <el-select v-model="ruleForm.drillLevel" 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="teamPhone">
-              <el-date-picker v-model="datetime" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+            <el-form-item label="计划定制日期" prop="makingPlanDate">
+              <el-date-picker v-model="ruleForm.makingPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="计划演练日期" prop="teamPhone">
-              <el-date-picker v-model="drillDate" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+            <el-form-item label="计划演练日期" prop="drillPlanDate">
+              <el-date-picker v-model="ruleForm.drillPlanDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="修改时间" prop="teamPhone">
-              <el-date-picker v-model="editDate" type="datetime" placeholder="选择日期时间" style="width: 100%" />
+            <el-form-item label="修改时间" prop="updateDate">
+              <el-date-picker v-model="ruleForm.updateDate" value-format="YYYY-MM-DD HH:mm:ss" type="datetime" placeholder="选择日期时间" style="width: 100%" />
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="计划定制人" prop="teamPhone">
-              <el-input v-model="ruleForm.planCustomizer" disabled placeholder="请填写演练地点"></el-input>
+            <el-form-item label="计划定制人" prop="makingUserUid">
+              <el-input v-model="ruleForm.makingUserUid" 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="telephone">
+            <el-form-item label="制定部门" prop="makingDepartmentId">
               <el-tree-select
-                  v-model="ruleForm.responsibleDepartment"
+                  v-model="ruleForm.makingDepartmentId"
                   :data="data" class="w100"
                   placeholder="请选择"/>
             </el-form-item>
@@ -106,9 +107,9 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-            <el-form-item label="演练目的" prop="telephone">
+            <el-form-item label="演练目的" prop="purpose">
               <el-input
-                  v-model="ruleForm.teamLeader"
+                  v-model="ruleForm.purpose"
                   placeholder="请填写演练目的"
                   class="input-with-select textarea"
                   type="textarea"
@@ -130,19 +131,19 @@
             </el-form-item>
           </el-col>
           <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 label="保险措施" prop="insuranceMeasures">
+              <el-input v-model="ruleForm.insuranceMeasures" 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="teamName">
-              <el-input v-model="ruleForm.teamName" placeholder="请填写演练名称"></el-input>
+            <el-form-item label="演练经费" prop="drillExpense">
+              <el-input v-model="ruleForm.drillExpense" 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="telephone">
+            <el-form-item label="备注信息" prop="remark">
               <el-input
-                  v-model="ruleForm.teamLeader"
+                  v-model="ruleForm.remark"
                   placeholder="请填写备注信息"
                   class="input-with-select textarea"
                   type="textarea"
@@ -172,8 +173,8 @@
       </el-form>
       <template #footer>
 				<span class="dialog-footer">
-					<el-button @click="onCancel" size="default">关闭</el-button>
-          <el-button size="default" type="primary" @click="submitForm(ruleFormRef)">确定</el-button>
+					<el-button @click="resetForm(ruleFormRef)" size="default">关闭</el-button>
+          <el-button size="default" v-if="disabled == true ? false : true" type="primary" @click="submitForm(titles, ruleFormRef)">确定</el-button>
 				</span>
       </template>
     </el-dialog>
@@ -183,7 +184,8 @@
 </template>
 
 <script lang="ts">
-import { reactive,
+import {
+  // reactive,
   ref,
   defineComponent
 } from 'vue';
@@ -191,15 +193,15 @@
 import type {
   UploadUserFile,
   FormInstance,
-  // FormRules,
 } from 'element-plus'
-
+import { ElMessage } from 'element-plus';
 import {
   Search,
   FullScreen
 } from '@element-plus/icons-vue'
 import UserCheckbox from "/@/components/userCheckbox/index.vue"
 import RegionsDialog from "/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/regionsDialog.vue"
+import {releaseDrillPlanApi} from "/@/api/releaseDrillPlan";
 
 export default defineComponent({
   name: 'openAdd',
@@ -207,31 +209,59 @@
     RegionsDialog,
     UserCheckbox,
   },
-  setup() {
+  setup(props, { emit }) {
     const isShowDialog = ref(false)
 
     const ruleFormRef = ref<FormInstance>()
     //定义表单
-    const ruleForm = reactive({
-        teamName: '', // 队伍名称
-        planCustomizer: '胡海涛', //计划定制人
-        teamLeader: '', //队伍负责人
-        department: [], // 负责人部门
-        phone: '', // 负责人手机
-        telephone: '', // 固定电话
+    const ruleForm = ref ({
+      makingPlanDate: '', // 计划制定日期
+      drillPlanDate: '', //计划演练日期
+      makingUserUid: '', //计划制定人ID
+      makingDepartmentId: '', // 计划制定部门ID
+      planId: '', // 应急预案ID
+      departmentId: '', // 主办部门ID
+      drillExpense: '', // 演练经费
+      drillLevel: '', //演练级别
+      drillAddress: '', //演练地点
+      drillName: '', // 演练名称
+      drillWay: '', // 演练方式
+      insuranceMeasures: '', // 保险措施
+      remark: '', // 备注
+      purpose: '', // 演练目的
+      fileList: [
+        {
+          fileName: 'name',
+          fileUrl: 'url',
+        }
+      ],
+      userList: [
+        {
+          userUid: '',
+          type: 1
+        },
+        {
+          userUid: '',
+          type: 2
+        }
+      ]
     });
+    const titles = ref();
+    const disabled = ref();
     // 打开弹窗
-    const openDialog = () => {
-      // state.ruleForm = row;
+    const openDialog = (title: string, id: number, type: boolean) => {
       isShowDialog.value = true;
-    };
-    // 关闭弹窗
-    const closeDialog = () => {
-      isShowDialog.value = false;
-    };
-    // 取消
-    const onCancel = () => {
-      closeDialog();
+      titles.value = title;
+      disabled.value = type;
+      if (title == '查看应急演练计划发布' || title == '修改应急演练计划发布') {
+        releaseDrillPlanApi()
+            .seeReleaseDrillPlan(id)
+            .then((res) => {
+              if (res.data.code == 200) {
+                ruleForm.value = res.data.data;
+              }
+            });
+      }
     };
     //日期选择器
     const value1 = ref('')
@@ -245,11 +275,11 @@
         label: 'Level one 1',
         children: [
           {
-            value: '1-1',
+            value: '11',
             label: 'Level two 1-1',
             children: [
               {
-                value: '1-1-1',
+                value: '111',
                 label: 'Level three 1-1-1',
               },
             ],
@@ -261,21 +291,21 @@
         label: 'Level one 2',
         children: [
           {
-            value: '2-1',
+            value: '22',
             label: 'Level two 2-1',
             children: [
               {
-                value: '2-1-1',
+                value: '222',
                 label: 'Level three 2-1-1',
               },
             ],
           },
           {
-            value: '2-2',
+            value: '223',
             label: 'Level two 2-2',
             children: [
               {
-                value: '2-2-1',
+                value: '2233',
                 label: 'Level three 2-2-1',
               },
             ],
@@ -287,21 +317,21 @@
         label: 'Level one 3',
         children: [
           {
-            value: '3-1',
+            value: '33',
             label: 'Level two 3-1',
             children: [
               {
-                value: '3-1-1',
+                value: '3333',
                 label: 'Level three 3-1-1',
               },
             ],
           },
           {
-            value: '3-2',
+            value: '3334',
             label: 'Level two 3-2',
             children: [
               {
-                value: '3-2-1',
+                value: '333',
                 label: 'Level three 3-2-1',
               },
             ],
@@ -317,23 +347,23 @@
         label: '广汇能源综合物流发展有限责任公司',
         children: [
           {
-            value: '1-1',
+            value: '11',
             label: '经营班子',
             children: [],
           },
         ],
       },
       {
-        value: '2',
+        value: '12',
         label: '生产运行部',
         children: [
           {
-            value: '2-1',
+            value: '21',
             label: '灌装一班',
             children: []
           },
           {
-            value: '2-2',
+            value: '22',
             label: '工艺四班',
             children: [],
           },
@@ -344,12 +374,12 @@
         label: '设备部',
         children: [
           {
-            value: '3-1',
+            value: '31',
             label: '仪表班',
             children: [],
           },
           {
-            value: '3-2',
+            value: '32',
             label: '机修班',
             children: [],
           },
@@ -358,16 +388,106 @@
     ]
 
     // 表单提交验证必填项
-    const submitForm = async (formEl: FormInstance | undefined) => {
-      if (!formEl) return
-      await formEl.validate((valid, fields) => {
-        if (valid) {
-          console.log('submit!')
-        } else {
-          console.log('error submit!', fields)
-        }
-      })
+    const submitForm = async (title: string, formEl: FormInstance | undefined) => {
+      if (title == '新建应急演练计划发布') {
+        if (!formEl) return;
+        await formEl.validate((valid, fields) => {
+          if (valid) {
+            isShowDialog.value = false;
+            releaseDrillPlanApi()
+                .addReleaseDrillPlan(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;
+            releaseDrillPlanApi()
+                .editReleaseDrillPlan(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 = {
+          makingPlanDate: '', // 计划制定日期
+          drillPlanDate: '', //计划演练日期
+          makingUserUid: '', //计划制定人ID
+          makingDepartmentId: '', // 计划制定部门ID
+          planId: '', // 应急预案ID
+          departmentId: '', // 主办部门ID
+          drillExpense: '', // 演练经费
+          drillLevel: '', //演练级别
+          drillAddress: '', //演练地点
+          drillName: '', // 演练名称
+          drillWay: '', // 演练方式
+          insuranceMeasures: '', // 保险措施
+          remark: '', // 备注
+          purpose: '', // 演练目的
+          fileList: [
+            {
+              fileName: 'name',
+              fileUrl: 'url',
+            }
+          ],
+          userList: [
+            {
+              userUid: '',
+              type: 1
+            },
+            {
+              userUid: '',
+              type: 2
+            }
+          ]
+        };
+      }
     }
+    const resetForm = (formEl: FormInstance | undefined) => {
+      isShowDialog.value = false;
+      if (!formEl) return;
+      formEl.resetFields();
+    };
     // 应急队伍弹窗
     const Shows=ref()
     const daiInpt=()=>{
@@ -380,10 +500,6 @@
     };
     // 计划定制日期
     const datetime = ref('')
-    // 计划演练日期
-    const drillDate = ref('')
-    // 修改时间
-    const editDate = ref('')
     //全屏
     const full = ref(false);
     const toggleFullscreen = () => {
@@ -395,9 +511,7 @@
     };
     return {
       openDialog,
-      closeDialog,
       isShowDialog,
-      onCancel,
       fileList,
       responsibleDepartment,
       data,
@@ -410,15 +524,16 @@
       Shows,
       ruleFormRef,
       submitForm,
-      // rules,
       openUser,
       userRef,
       datetime,
-      drillDate,
-      editDate,
       toggleFullscreen,
       FullScreen,
       full,
+      titles,
+      disabled,
+      resetForm,
+      emit,
     };
   },
 });
diff --git a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue
index f468732..d7f0a15 100644
--- a/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue
+++ b/src/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/index.vue
@@ -3,12 +3,12 @@
     <el-card shadow="hover">
       <div class="button_Line">
         <div class="button_Left">
-          <el-button size="default" type="primary"  @click="onOpenAdd('新建')">
+          <el-button size="default" type="primary"  @click="onOpenAdd">
             <el-icon>
               <Plus />
             </el-icon>新建
           </el-button>
-          <el-button size="default" type="danger" plain disabled>
+          <el-button size="default" type="danger" plain :disabled="danger" @click="onDeleteAll">
             <el-icon>
               <Delete />
             </el-icon>删除
@@ -36,17 +36,18 @@
           :data="tableData"
           style="width: 100%"
           ref="multipleTableRef"
+          @selection-change="handleSelectionChange"
       >
         <el-table-column
             type="selection"
             width="55"
         />
-        <el-table-column prop="name" label="演练名称" show-overflow-tooltip sortable></el-table-column>
-        <el-table-column prop="place" label="演练地点" show-overflow-tooltip sortable></el-table-column>
-        <el-table-column prop="mode" label="演练方式" show-overflow-tooltip sortable></el-table-column>
-        <el-table-column prop="level" label="演练级别" show-overflow-tooltip sortable></el-table-column>
-        <el-table-column prop="date" label="计划演练日期" show-overflow-tooltip sortable></el-table-column>
-        <el-table-column prop="editDate" label="修改时间" show-overflow-tooltip sortable></el-table-column>
+        <el-table-column prop="drillName" label="演练名称" show-overflow-tooltip sortable></el-table-column>
+        <el-table-column prop="drillAddress" label="演练地点" show-overflow-tooltip sortable></el-table-column>
+        <el-table-column prop="drillWay" label="演练方式" show-overflow-tooltip sortable></el-table-column>
+        <el-table-column prop="drillLevel" label="演练级别" show-overflow-tooltip sortable></el-table-column>
+        <el-table-column prop="drillPlanDate" label="计划演练日期" show-overflow-tooltip sortable></el-table-column>
+        <el-table-column prop="gmtModitify" label="修改时间" show-overflow-tooltip sortable></el-table-column>
         <el-table-column label="操作" width="260" align="center">
           <template #default="scope">
             <el-button size="small" text type="primary" @click="releaseOfDrillPlan(0)">
@@ -54,17 +55,17 @@
                 <VideoPlay />
               </el-icon>启动
             </el-button>
-            <el-button size="small" text type="primary" @click="onOpenSee(scope.row)">
+            <el-button size="small" text type="primary" @click="onEdit('详情',scope.row.id)">
               <el-icon style="margin-right: 5px;">
                 <View />
               </el-icon>查看
             </el-button>
-            <el-button size="small" text type="primary" @click="onflowChart(scope.row)">
+            <el-button size="small" text type="primary" @click="onEdit('修改',scope.row.id)">
               <el-icon style="margin-right: 5px;">
                 <EditPen />
               </el-icon>修改
             </el-button>
-            <el-button size="small" text type="primary" @click="onRowDel(scope.row)">
+            <el-button size="small" text type="primary" @click="onRowDel(scope.row.id)">
               <el-icon>
                 <Delete />
               </el-icon>删除
@@ -74,23 +75,20 @@
       </el-table>
       <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"
-            :small="small"
-            :disabled="disabled"
-            :background="background"
             layout="total, sizes, prev, pager, next, jumper"
-            :total="40"
+            :total="total"
             @size-change="handleSizeChange"
             @current-change="handleCurrentChange"
         />
       </div>
     </el-card>
-    <OpenAdd ref="addRef" />
-    <OpenSee ref="seeRef" />
-    <FlowChart ref="flowRef"></FlowChart>
+    <OpenAdd ref="addRef" @myAdd="onMyAdd"/>
+<!--    <FlowChart ref="flowRef"></FlowChart>-->
     <upData ref="upShow"></upData>
   </div>
 </template>
@@ -98,8 +96,8 @@
 <script lang="ts">
 import {
   // toRefs,
-  // reactive,
-  // onMounted,
+  reactive,
+  onMounted,
   ref,
   defineComponent
 } from 'vue';
@@ -120,41 +118,14 @@
 } from '@element-plus/icons-vue'
 import {useRouter} from "vue-router"
 import OpenAdd from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openAdd.vue';
-import OpenSee from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/openSee.vue';
-import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue';
+// import FlowChart from '/@/views/contingencyManagement/emergencyDrill/releaseOfDrillPlan/component/flowChart.vue';
 import UpData from '/@/views/contingencyManagement/panManagement/component/upData.vue';
-
-// 定义表格数据类型
-interface User {
-  name: string
-  place: string
-  mode: string
-  level: string
-  phone: string;
-  date: string;
-  editDate: string
-}
-
-// 定义接口来定义对象的类型
-interface TableDataRow {
-  // userName: string;
-  // userNickname: string;
-  // roleSign: string;
-  // department: string[];
-  // phone: string;
-  // email: string;
-  // sex: string;
-  // password: string;
-  // overdueTime: Date;
-  // // describe: string;
-  // createTime: string;
-}
+import { releaseDrillPlanApi } from '/@/api/releaseDrillPlan';
 
 export default defineComponent({
   name: 'systemUser',
   components: {
     OpenAdd,
-    OpenSee,
     EditPen,
     Plus,
     View,
@@ -164,101 +135,161 @@
     Refresh,
     VideoPlay,
     UpData,
-    FlowChart,
+    // FlowChart,
   },
   setup() {
-    // 选择框
-    // const value = ref('');
-    // const options =
-    //   {
-    //     value: 'Option1',
-    //     label: 'Option1',
-    //   };
-    const multipleTableRef = ref<InstanceType<typeof ElTable>>()
-    const multipleSelection = ref<User[]>([])
-
+    // 列表参数
+    const listQuery = reactive({
+      pageIndex: 1,
+      pageSize: 10,
+      searchParams: {
+      },
+    });
+    // 定义表格数据
+    const tableData = ref([]);
+    // 列表数据请求
+    const listApi = async () => {
+      let res = await releaseDrillPlanApi().getReleaseDrillPlanList(listQuery);
+      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,
+          message: res.data.msg,
+          type: 'error',
+        });
+      }
+    };
+    onMounted(() => {
+      listApi();
+    });
     // 上传
     const upShow=ref()
     const upButton=()=>{
       upShow.value.openDialog()
     }
-    // 定义表格数据
-    const tableData: User[] = [
-      {
-        name: '应急救援组',
-        place: '公司',
-        mode: '实施抢险抢险的应急方案和措施实施 ;',
-        level: '051383830321',
-        phone: '13603812900',
-        date: '2022-06-22 16:31:59',
-        editDate: '2022-06-22 16:31:59'
-      },
-      {
-        name: '应急救援组',
-        place: '公司',
-        mode: '实施抢险抢险的应急方案和措施实施 ;',
-        level: '051383830321',
-        phone: '13603812900',
-        date: '2022-06-22 16:31:59',
-        editDate: '2022-06-22 16:31:59'
-      },
-      {
-        name: '应急救援组',
-        place: '公司',
-        mode: '实施抢险抢险的应急方案和措施实施 ;',
-        level: '051383830321',
-        phone: '13603812900',
-        date: '2022-06-22 16:31:59',
-        editDate: '2022-06-22 16:31:59'
-      },
-      {
-        name: '应急救援组',
-        place: '公司',
-        mode: '实施抢险抢险的应急方案和措施实施 ;',
-        level: '051383830321',
-        phone: '13603812900',
-        date: '2022-06-22 16:31:59',
-        editDate: '2022-06-22 16:31:59'
-      }
-    ]
-    // 打开新增用户弹窗
+
+    // 打开新增弹窗
     const addRef = ref();
     const onOpenAdd = () => {
-      addRef.value.openDialog();
+      addRef.value.openDialog('新建应急演练计划发布',false);
     };
-    // 打开查看用户弹窗
-    const seeRef = ref();
-    const onOpenSee = (row: TableDataRow) => {
-      seeRef.value.openDialog(row);
+    // 新增后刷新
+    const onMyAdd = (e: boolean) => {
+      if (e) {
+        listApi();
+      } else {
+        listApi();
+      }
     };
     // 打开修改用户弹窗
-    const flowRef = ref();
-    const onflowChart = (row: TableDataRow) => {
-      flowRef.value.openDialog(row);
+    const onEdit = (val: string, row: object) => {
+      if (val == '详情') {
+        addRef.value.openDialog('查看应急演练计划发布',row,true);
+      } else {
+        addRef.value.openDialog('修改应急演练计划发布',row,false);
+      }
     };
-    // 删除用户
-    const onRowDel = (row: TableDataRow) => {
-      ElMessageBox.confirm(`此操作将永久删除账户名称:“${row}”,是否继续?`, '提示', {
+    // 打开修改用户弹窗
+    // const flowRef = ref();
+    // const onflowChart = (row: TableDataRow) => {
+    //   flowRef.value.openDialog(row);
+    // };
+    // 删除
+    const onRowDel = (data: any) => {
+      ElMessageBox.confirm('确定删除所选项吗?', '提示',{
         confirmButtonText: '确认',
+        cancelButtonText: '取消',
+        type: 'warning',
+      }).then(() => {
+        releaseDrillPlanApi()
+            .deleteReleaseDrillPlan(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(() => {});
+    };
+    // 多选删除
+    const onDeleteAll = () => {
+      ElMessageBox.confirm('确定删除所选项吗?', '提示', {
+        confirmButtonText: '确定',
         cancelButtonText: '取消',
         type: 'warning',
       })
           .then(() => {
-            ElMessage.success('删除成功');
+            releaseDrillPlanApi()
+                .deleteReleaseDrillPlan(deletAll.value)
+                .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(() => {});
     };
     // 分页
-    const pageIndex = ref(4);
-    const pageSize = ref(10);
+    const pageIndex = ref();
+    const pageSize = ref();
+    const total = ref();
     // 分页改变
     const handleSizeChange = (val: number) => {
-      console.log(`${val} items per page`);
+      listQuery.pageSize = val;
+      listApi();
     };
     // 分页未改变
     const handleCurrentChange = (val: number) => {
-      console.log(`current page: ${val}`);
+      listQuery.pageIndex = val;
+      listApi();
     };
+    const danger = ref(true);
+    const deletAll = ref();
+    const handleSelectionChange = (val: any) => {
+      let valId = JSON.parse(JSON.stringify(val));
+      let arr = [];
+      for (let i = 0; i < valId.length; i++) {
+        arr.push(valId[i].id);
+      }
+      deletAll.value = arr.toString();
+      // console.log(deletAll.value);
+      if (val.length == 1) {
+        danger.value = false;
+      }  else if (val.length == 0) {
+        danger.value = true;
+      } else {
+        danger.value = false;
+      }
+    };
+
     // 启动跳转
     const router=useRouter()
     const releaseOfDrillPlan=(data:string)=>{
@@ -270,25 +301,30 @@
       })
     }
     return {
-      multipleSelection,
-      multipleTableRef,
       upButton,
       upShow,
       tableData,
-      onOpenSee,  //查看
-      onflowChart,
-      flowRef,
-      seeRef,
+      // onflowChart,
+      // flowRef,
       onOpenAdd,  //新增
       addRef,
       onRowDel,
       View ,
       pageIndex,
+      listQuery,
       pageSize,
       handleSizeChange,
       handleCurrentChange,
       router,
       releaseOfDrillPlan,
+      listApi,
+      danger,
+      deletAll,
+      handleSelectionChange,
+      onMyAdd,
+      onDeleteAll,
+      onEdit,
+      total,
     };
   },
 });

--
Gitblit v1.9.2