From 3d17b311e7e7e642bb812494ecaa24aaeb382bdd Mon Sep 17 00:00:00 2001
From: 13937891274 <kxc0822>
Date: 星期三, 20 七月 2022 17:57:20 +0800
Subject: [PATCH] 应急队伍一览对接

---
 src/views/contingencyManagement/contingency/component/openAdd.vue |  203 +++++++++++++++++++++++++++++++++-----------------
 1 files changed, 135 insertions(+), 68 deletions(-)

diff --git a/src/views/contingencyManagement/contingency/component/openAdd.vue b/src/views/contingencyManagement/contingency/component/openAdd.vue
index 3ee7941..7a3e369 100644
--- a/src/views/contingencyManagement/contingency/component/openAdd.vue
+++ b/src/views/contingencyManagement/contingency/component/openAdd.vue
@@ -1,7 +1,7 @@
 <template>
   <div class="system-edit-user-container">
     <el-dialog
-        title="新建应急队伍管理"
+        :title="title"
         v-model="isShowDialog"
         width="769px"
         draggable
@@ -31,9 +31,9 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="队伍负责人" prop="teamLeader">
+            <el-form-item label="队伍负责人" prop="principalUid">
               <el-input
-                  v-model="ruleForm.teamLeader"
+                  v-model="ruleForm.principalUid"
                   placeholder="请选择"
                   class="input-with-select"
               >
@@ -44,28 +44,28 @@
             </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-form-item label="负责人部门" prop="principalDepartmentId">
               <el-tree-select
-                  v-model="ruleForm.responsibleDepartment"
+                  v-model="ruleForm.principalDepartmentId"
                   :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="teamPhone">
-              <el-input v-model="ruleForm.teamPhone" placeholder="请填写负责人手机"></el-input>
+            <el-form-item label="负责人手机" prop="principalPhone">
+              <el-input v-model="ruleForm.principalPhone" placeholder="请填写负责人手机"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="固定电话" prop="telephone">
-              <el-input v-model="ruleForm.telephone" placeholder="请填写固定电话"></el-input>
+            <el-form-item label="固定电话" prop="telephoneNumber">
+              <el-input v-model="ruleForm.telephoneNumber" placeholder="请填写固定电话"></el-input>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-            <el-form-item label="队伍描述">
+            <el-form-item label="队伍描述" prop="teamDesc">
               <el-input
                   class="textarea"
-                  v-model="ruleForm.describe"
+                  v-model="ruleForm.teamDesc"
                   type="textarea"
                   maxlength="150"
                   placeholder="请填写队伍描述"
@@ -73,7 +73,7 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="24" :md="24" :lg="24" :xl="24" class="mb20">
-            <el-form-item label="相关附件">
+            <el-form-item label="相关附件" prop="attachments">
               <el-upload
                   v-model:file-list="fileList"
                   class="upload-demo"
@@ -121,27 +121,29 @@
         </el-row>
       </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>
-				</span>
+    <span class="dialog-footer">
+     <el-button @click="isShowDialog = !isShowDialog"  size="default">关闭</el-button>
+          <el-button size="default" type="primary"  @click="onSubmit">确定</el-button>
+    </span>
       </template>
     </el-dialog>
-        <AddEmergencyPersonnel ref="addRef" />
-        <UserSelections ref="userRef"/>
+    <AddEmergencyPersonnel ref="addRef" />
+    <UserSelections ref="userRef"/>
   </div>
 </template>
 
 <script lang="ts">
-import { reactive,
+import {
+  reactive,
   ref,
-  defineComponent
+  defineComponent,
+  toRefs,
 } from 'vue';
-
+import { ElMessage } from 'element-plus';
 import type {
   UploadUserFile,
   TabsPaneContext,
-  FormInstance,
+  // FormInstance,
   FormRules,
 } from 'element-plus'
 
@@ -151,6 +153,7 @@
 } from '@element-plus/icons-vue'
 import AddEmergencyPersonnel from "/@/views/contingencyManagement/contingency/component/addEmergencyPersonnel.vue";
 import UserSelections from "/@/components/userSelections/index.vue"
+import {contingencyApi} from "/@/api/contingency";
 // 定义表格数据类型
 interface User {
   personnelName: string
@@ -158,43 +161,79 @@
   phone: string;
   position: string;
 }
+
+
+
+
+// 定义接口来定义对象的类型
+interface MenuDataTree {
+  id: number;
+  label: string;
+  children?: MenuDataTree[];
+}
+interface RoleState {
+  title:string,
+  // buttonName:string,
+  isShowDialog: boolean;
+  ruleForm: {
+    teamName: string;
+    teamLevel: string;
+    principalUid: number;
+    principalDepartmentId: number;
+    principalPhone: string;
+    telephoneNumber: string;
+    teamDesc: string;
+  };
+  menuData: Array<MenuDataTree>;
+}
 export default defineComponent({
   name: 'openAdd',
   components: {
     AddEmergencyPersonnel,
     UserSelections,
   },
-  setup() {
-    const isShowDialog = ref(false)
-
-    const ruleFormRef = ref<FormInstance>()
-    //定义表单
-    const ruleForm = reactive({
+  setup(prop,context) {
+    const state = reactive<RoleState>({
+      isShowDialog: false,
+      title:'',
+      // buttonName:'',
+      ruleForm: {
         teamName: '', // 队伍名称
-        teamLeader: '', //队伍负责人
-        department: [], // 负责人部门
-        phone: '', // 负责人手机
-        telephone: '', // 固定电话
-        describe: '', // 队伍描述
+        teamLevel: '', // 队伍级别
+        principalUid: 1, // 队伍负责人
+        principalDepartmentId: 2,  //负责人部门
+        principalPhone: '', // 负责人手机
+        telephoneNumber: '', // 固定电话
+        teamDesc: '',  //队伍描述
+      },
+      menuData: [],
     });
     // 打开弹窗
-    const openDialog = () => {
-      // state.ruleForm = row;
-      isShowDialog.value = true;
-    };
-    // 关闭弹窗
-    const closeDialog = () => {
-      isShowDialog.value = false;
-    };
-    // 取消
-    const onCancel = () => {
-      closeDialog();
+    const openDialog = (type: string, value: any) => {
+      state.isShowDialog = true;
+      if(type === '新建'){
+        state.title = '新建应急队伍管理'
+        // state.buttonName = '新增'
+        state.ruleForm = {
+          teamName: '', // 队伍名称
+          teamLevel: '', // 队伍级别
+          principalUid: 1, // 队伍负责人
+          principalDepartmentId: 2,  //负责人部门
+          principalPhone: '', // 负责人手机
+          telephoneNumber: '', // 固定电话
+          teamDesc: '',  //队伍描述
+        }
+      }else{
+        state.title = '修改应急队伍管理'
+        // state.buttonName = '确定'
+        state.ruleForm = JSON.parse(JSON.stringify(value))
+      }
     };
     // 上传附件
     const fileList = ref<UploadUserFile[]>([])
 
     //定义树形下拉框
-    const responsibleDepartment = ref()
+    const principalDepartmentId = ref()
     const data = [
       {
         value: '1',
@@ -277,28 +316,28 @@
           trigger: 'change',
         },
       ],
-      teamLeader: [
+      principalUid: [
         {
           required: true,
           message: '队伍负责人不能为空',
           trigger: 'change',
         },
       ],
-      responsibleDepartment: [
+      principalDepartmentId: [
         {
           required: true,
           message: '负责人部门不能为空',
           trigger: 'change',
         },
       ],
-      teamPhone: [
+      principalPhone: [
         {
           required: true,
           message: '负责人手机不能为空',
           trigger: 'change',
         },
       ],
-      telephone: [
+      telephoneNumber: [
         {
           required: true,
           message: '固定电话不能为空',
@@ -306,17 +345,6 @@
         },
       ],
     })
-    // 表单提交验证必填项
-    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 full = ref(false);
     const toggleFullscreen = () => {
@@ -326,22 +354,59 @@
         full.value = false;
       }
     };
+    // 新增
+    const onSubmit = async () => {
+      if(state.title === '新建应急队伍管理'){
+        let res = await contingencyApi().addEmergencyTeam(state.ruleForm)
+        if(res.data.code === '200'){
+          ElMessage({
+            type:'success',
+            message:'队伍新增成功',
+            // duration:2000
+          })
+          state.isShowDialog = false
+          context.emit('refreshRoleList')
+        }else{
+          ElMessage({
+            type:'warning',
+            message:res.data.msg
+          })
+        }
+      }
+    else{
+        let res = await contingencyApi().editEmergencyTeam(state.ruleForm)
+        if(res.data.code === '200'){
+          ElMessage({
+            type:'success',
+            message:'队伍修改成功',
+            // duration:2000
+          })
+          state.isShowDialog = false
+          context.emit('refreshRoleList')
+        }else{
+          ElMessage({
+            type:'warning',
+            message:res.data.msg
+          })
+        }
+      }
+    };
     return {
       openDialog,
-      closeDialog,
-      isShowDialog,
-      onCancel,
+      // closeDialog,
+      // isShowDialog,
+      // onCancel,
       fileList,
-      responsibleDepartment,
+      principalDepartmentId,
       data,
       activeName,
       handleClick,
       tableData,
       multipleSelection,
       Search,
-      ruleForm,
-      ruleFormRef,
-      submitForm,
+      onSubmit,
+      // ruleForm,
+      // ruleFormRef,
       rules,
       addRef,
       userRef,
@@ -350,6 +415,7 @@
       toggleFullscreen,
       FullScreen,
       full,
+      ...toRefs(state),
     };
   },
 });
@@ -364,4 +430,5 @@
 ::v-deep .el-table__cell {
   font-weight: 400;
 }
-</style>
\ No newline at end of file
+</style>
+

--
Gitblit v1.9.2