From 53ed3f94c44709c5d571d580dccd8149f020ffb7 Mon Sep 17 00:00:00 2001
From: 13937891274 <kxc0822>
Date: 星期五, 22 七月 2022 11:00:42 +0800
Subject: [PATCH] 应急预案一览对接

---
 src/views/contingencyManagement/contingency/component/openSee.vue |  246 ++++++++++++++++++++++++++++++-------------------
 1 files changed, 151 insertions(+), 95 deletions(-)

diff --git a/src/views/contingencyManagement/contingency/component/openSee.vue b/src/views/contingencyManagement/contingency/component/openSee.vue
index abfd5e9..066f66d 100644
--- a/src/views/contingencyManagement/contingency/component/openSee.vue
+++ b/src/views/contingencyManagement/contingency/component/openSee.vue
@@ -1,22 +1,27 @@
 <template>
   <div class="system-edit-user-container">
     <el-dialog
-        title="查看应急队伍管理"
+        :title="title"
         v-model="isShowDialog"
         width="769px"
         draggable
         :fullscreen="full"
     >
       <el-button @click="toggleFullscreen" size="small" class="pot" :icon="FullScreen"></el-button>
-      <el-form :model="ruleForm" size="default" label-width="90px">
+      <el-form
+          :model="ruleForm"
+          size="default"
+          :rules="rules"
+          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="队伍名称">
+            <el-form-item label="队伍名称" prop="teamName">
               <el-input v-model="ruleForm.teamName" :disabled="true"></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="队伍级别">
+            <el-form-item label="队伍级别" prop="teamLevel">
               <el-select v-model="ruleForm.teamLevel" :disabled="true" class="w100">
                 <el-option label="公司" value="admin"></el-option>
                 <el-option label="分厂-车间" value="common"></el-option>
@@ -25,9 +30,9 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="队伍负责人">
+            <el-form-item label="队伍负责人" prop="principalUid">
               <el-input
-                  v-model="ruleForm.teamLeader"
+                  v-model="ruleForm.principalUid"
                   placeholder="Please input"
                   class="input-with-select"
                   :disabled="true"
@@ -39,27 +44,27 @@
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="负责人部门">
-              <el-tree-select v-model="ruleForm.responsibleDepartment" :data="data"  :disabled="true" class="w100"/>
+            <el-form-item label="负责人部门" prop="principalDepartmentId">
+              <el-tree-select v-model="ruleForm.principalDepartmentId" :data="data"  :disabled="true" class="w100"/>
             </el-form-item>
           </el-col>
           <el-col :xs="24" :sm="12" :md="12" :lg="12" :xl="12" class="mb20">
-            <el-form-item label="负责人手机">
-              <el-input v-model="ruleForm.teamPhone" :disabled="true"></el-input>
+            <el-form-item label="负责人手机" prop="principalPhone">
+              <el-input v-model="ruleForm.principalPhone" :disabled="true"></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="固定电话">
-              <el-input v-model="ruleForm.telephone" :disabled="true"></el-input>
+            <el-form-item label="固定电话" prop="telephoneNumber">
+              <el-input v-model="ruleForm.telephoneNumber" :disabled="true"></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-input class="textarea" v-model="ruleForm.describe" type="textarea" :disabled="true" maxlength="150"></el-input>
+            <el-form-item label="队伍描述" prop="teamDesc">
+              <el-input class="textarea" v-model="ruleForm.teamDesc" type="textarea" :disabled="true" maxlength="150"></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="fileList">
               <el-upload
                   v-model:file-list="fileList"
                   class="upload-demo"
@@ -121,6 +126,7 @@
 import type {
   UploadUserFile,
   TabsPaneContext,
+  FormRules,
 } from 'element-plus'
 import {
   Search,
@@ -128,29 +134,12 @@
 } from '@element-plus/icons-vue'
 // import AddTeamLeader from '/@/views/contingency/component/addEmergencyPersonnel.vue';
 // 定义接口来定义对象的类型
-interface DeptData {
-  deptName: string;
-  createTime: string;
-  status: boolean;
-  sort: number | string;
-  describe: string;
+interface MenuDataTree {
   id: number;
-  children?: DeptData[];
+  label: string;
+  children?: MenuDataTree[];
 }
-interface RuleFormRow {
-  teamName: string;
-  teamLevel: string;
-  teamLeader: string;
-  department: any;
-  phone: string;
-  telephone: string;
-  describe: string;
-}
-interface UserState {
-  isShowDialog: boolean;
-  ruleForm: RuleFormRow;
-  deptData: Array<DeptData>;
-}
+
 // 定义表格数据类型
 interface User {
   personnelName: string
@@ -158,39 +147,66 @@
   phone: string;
   position: string;
 }
-// // 定义表格数据类型
-// interface Team {
-//   personnelName: string
-//   teamLevel: string
-//   teamDescription: string
-//   teamPhone: string
-//   phone: string;
-//   describe: string;
-//   responsibleDepartment: string
-// }
+
+interface RoleState {
+  title:string,
+  // buttonName:string,
+  isShowDialog: boolean;
+  ruleForm: {
+    teamName: string;
+    teamLevel: string;
+    principalUid: number;
+    principalDepartmentId: number;
+    principalPhone: string;
+    telephoneNumber: string;
+    teamDesc: string;
+    fileList: string,
+  };
+  menuData: Array<MenuDataTree>;
+}
 export default defineComponent({
   name: 'openSee',
   components: {
     // Search,
   },
   setup() {
-    const state = reactive<UserState>({
+    const state = reactive<RoleState>({
       isShowDialog: false,
+      title:'',
+      // buttonName:'',
       ruleForm: {
         teamName: '', // 队伍名称
         teamLevel: '', // 队伍级别
-        teamLeader: '', //队伍负责人
-        department: [], // 负责人部门
-        phone: '', // 负责人手机
-        telephone: '', // 固定电话
-        describe: '', // 队伍描述
+        principalUid: 1, // 队伍负责人
+        principalDepartmentId: 2,  //负责人部门
+        principalPhone: '', // 负责人手机
+        telephoneNumber: '', // 固定电话
+        teamDesc: '',  //队伍描述
+        fileList: [],
       },
-      deptData: [], // 部门数据
+      menuData: [],
     });
     // 打开弹窗
-    const openDialog = (row: RuleFormRow) => {
-      state.ruleForm = row;
+    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: '',  //队伍描述
+          fileList: [],
+        }
+      }else{
+        // state.title = '修改应急队伍管理'
+        // // state.buttonName = '确定'
+        // state.ruleForm = JSON.parse(JSON.stringify(value))
+      }
     };
     // 关闭弹窗
     const closeDialog = () => {
@@ -200,39 +216,39 @@
     const onCancel = () => {
       closeDialog();
     };
-    // 初始化部门数据
-    const initTableData = () => {
-      state.deptData.push({
-        deptName: 'vueNextAdmin',
-        createTime: new Date().toLocaleString(),
-        status: true,
-        sort: Math.random(),
-        describe: '顶级部门',
-        id: Math.random(),
-        children: [
-          {
-            deptName: 'IT外包服务',
-            createTime: new Date().toLocaleString(),
-            status: true,
-            sort: Math.random(),
-            describe: '总部',
-            id: Math.random(),
-          },
-          {
-            deptName: '资本控股',
-            createTime: new Date().toLocaleString(),
-            status: true,
-            sort: Math.random(),
-            describe: '分部',
-            id: Math.random(),
-          },
-        ],
-      });
-    };
-    // 页面加载时
-    onMounted(() => {
-      initTableData();
-    });
+    // // 初始化部门数据
+    // const initTableData = () => {
+    //   state.deptData.push({
+    //     deptName: 'vueNextAdmin',
+    //     createTime: new Date().toLocaleString(),
+    //     status: true,
+    //     sort: Math.random(),
+    //     describe: '顶级部门',
+    //     id: Math.random(),
+    //     children: [
+    //       {
+    //         deptName: 'IT外包服务',
+    //         createTime: new Date().toLocaleString(),
+    //         status: true,
+    //         sort: Math.random(),
+    //         describe: '总部',
+    //         id: Math.random(),
+    //       },
+    //       {
+    //         deptName: '资本控股',
+    //         createTime: new Date().toLocaleString(),
+    //         status: true,
+    //         sort: Math.random(),
+    //         describe: '分部',
+    //         id: Math.random(),
+    //       },
+    //     ],
+    //   });
+    // };
+    // // 页面加载时
+    // onMounted(() => {
+    //   initTableData();
+    // });
     // 上传附件
     const fileList = ref<UploadUserFile[]>([])
 
@@ -319,16 +335,55 @@
       }
     ]
 
-    // //添加队伍负责人
-    // const addRef = ref();
-    // //添加队伍负责人弹窗
-    // const onAddTeamLeader = () => {
-    //   addRef.value.openDialog();
-    // };
+    // 必填项提示
+    const rules = reactive<FormRules>({
+      teamName: [
+        {
+          required: true,
+          message: '队伍名称不能为空',
+          trigger: 'change',
+        },
+      ],
+      teamLevel: [
+        {
+          required: true,
+          message: '队伍级别不能为空',
+          trigger: 'change',
+        },
+      ],
+      principalUid: [
+        {
+          required: true,
+          message: '队伍负责人不能为空',
+          trigger: 'change',
+        },
+      ],
+      principalDepartmentId: [
+        {
+          required: true,
+          message: '负责人部门不能为空',
+          trigger: 'change',
+        },
+      ],
+      principalPhone: [
+        {
+          required: true,
+          message: '负责人手机不能为空',
+          trigger: 'change',
+        },
+      ],
+      telephoneNumber: [
+        {
+          required: true,
+          message: '固定电话不能为空',
+          trigger: 'change',
+        },
+      ],
+    })
     //全屏
     const full = ref(false);
     const toggleFullscreen = () => {
-      if (full.value == false) {
+      if(full.value == false) {
         full.value = true;
       } else {
         full.value = false;
@@ -352,6 +407,7 @@
       toggleFullscreen,
       FullScreen,
       full,
+      rules,
     };
   },
 });

--
Gitblit v1.9.2