From 0426c72922004cbaa47fafbb0ee6eb5d9386a063 Mon Sep 17 00:00:00 2001
From: luobisheng <727299681@qq.com>
Date: 星期三, 07 十二月 2022 15:50:11 +0800
Subject: [PATCH] 预警研判增加调度弹窗

---
 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue |    2 
 src/views/intelligentPatrol/studyJudge/index.vue                  |   83 +++++++++++++++++++--------
 src/components/dispatch/index.vue                                 |   93 ++++++++-----------------------
 3 files changed, 83 insertions(+), 95 deletions(-)

diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue
index 2089ae8..9f284e1 100644
--- a/src/components/dispatch/index.vue
+++ b/src/components/dispatch/index.vue
@@ -47,9 +47,7 @@
           <el-select
             v-model="dispatch.enforcementTeam"
             placeholder="閫夋嫨涓槦"
-            :disabled="
-              squadronOptions.length !== 0 && squadronOptions ? false : true
-            "
+            :disabled="!(squadronOptions.length !== 0 && squadronOptions)"
             @change="handleMidChange"
           >
             <el-option
@@ -66,9 +64,7 @@
           <el-select
             v-model="dispatch.lawEnforcer"
             placeholder="璇烽�夋嫨浜哄憳"
-            :disabled="
-              personOptions.length !== 0 && personOptions ? false : true
-            "
+            :disabled="!(personOptions.length !== 0 && personOptions)"
             @change="handlePerChange"
           >
             <el-option
@@ -121,15 +117,15 @@
 </template>
 <script>
 import MyMap from "@/components/map";
-import { parseTime } from "@/utils/index";
 export default {
   components: {
     MyMap,
   },
-  props: ["id", "changeDialog", "refresh", "mytype"],
+  props: ["id", "changeDialog", "refresh", "mytype", "isGetData"],
   created() {
     // 鍒ゆ柇杞﹁締绫诲瀷
     this.mytype === 1 ? this.getLawCarList() : this.getSoilCarList();
+    this.isGetDispatchData = this.isGetData ? this.isGetData : false;
     this.getDepartList();
   },
   data() {
@@ -150,13 +146,6 @@
         callback();
       } else {
         callback(new Error("娲鹃仯鎰忚涓嶈兘涓虹┖"));
-      }
-    };
-    const checkDistance = (rule, value, callback) => {
-      if (value) {
-        callback();
-      } else {
-        callback(new Error("璺濈涓嶈兘涓虹┖"));
       }
     };
     const checkTeam = (rule, value, callback) => {
@@ -218,12 +207,6 @@
         dispatchOpinion: [
           { required: true, trigger: "change", validator: checkOpinion },
         ],
-        // distance: [
-        //   { required: true, trigger: "change", validator: checkDistance },
-        // ],
-        // enforcementTeam: [
-        //     { required: true, trigger: 'change', validator: checkTeam }
-        // ],
         lawEnforcer: [
           { required: true, trigger: "change", validator: checkPerson },
         ],
@@ -238,57 +221,38 @@
           },
         ],
       },
-      carOptions: [
-        {
-          label: "杞﹁締涓�",
-          value: 1,
-        },
-        {
-          label: "杞﹁締浜�",
-          value: 2,
-        },
-      ],
+      carOptions: [],
       departOptions: [],
-      carOptions: [
-        {
-          label: "杞﹁締涓�",
-          value: 1,
-        },
-        {
-          label: "杞﹁締浜�",
-          value: 2,
-        },
-      ],
       squadronOptions: [],
       personOptions: [],
+      isGetDispatchData: true
     };
   },
   methods: {
     // 鎵ц璋冨害
     handleDispatch() {
-      console.log(this.dispatch);
       this.$refs.form.validate((valid) => {
-        console.log(valid);
         if (valid) {
-          const { dispatch, id } = this;
-          // dispatch.disposeDate = new Date();
-          console.log(id);
-          dispatch.baseCaseId = id;
-          console.log(dispatch);
-          this.$axios({
-            method: "post",
-            url: `sccg/dispatch_handle/dispatch`,
-            data: dispatch,
-          }).then((res) => {
-            this.$message({
-              type: res.code === 200 ? "success" : "error",
-              message: res.code === 200 ? "璋冨害鎴愬姛" : res.message,
+          if (this.isGetDispatchData) {
+            this.$emit('getDispatchData', this.dispatch);
+          } else {
+            const { dispatch, id } = this;
+            dispatch.baseCaseId = id;
+            this.$axios({
+              method: "post",
+              url: `sccg/dispatch_handle/dispatch`,
+              data: dispatch,
+            }).then((res) => {
+              this.$message({
+                type: res.code === 200 ? "success" : "error",
+                message: res.code === 200 ? "璋冨害鎴愬姛" : res.message,
+              });
+              this.refresh();
             });
-            this.$emit("changeDialog", { flag: false });
-            this.refresh();
-          });
+          }
+          this.$emit("changeDialog", { flag: false });
         } else {
-          return false;
+          this.$message.warning('璇锋鏌ュ繀濉」');
         }
       });
     },
@@ -303,7 +267,6 @@
         url: `sccg/car_Manage/query_enforce?current=1&size=1000`,
       }).then((res) => {
         this.carOptions = res.data.records;
-        console.log(res, this.carOptions);
       });
     },
     // 鑾峰彇娓e湡杞﹁締
@@ -326,7 +289,6 @@
     },
     // 鑾峰彇涓槦
     async getTeamList(id) {
-      console.log(id);
       await this.$axios({
         method: "get",
         url: `sccg/depart/query_father_children?fatherId=${id}`,
@@ -335,12 +297,10 @@
           this.squadronOptions = res.data;
         })
         .catch((err) => {
-          console.log(err);
         });
     },
     // 鑾峰彇閮ㄩ棬涓嬬殑鐢ㄦ埛
     async getDepartUserList(id) {
-      console.log(id);
       await this.$axios({
         method: "get",
         url: `sccg/admin/getDepartUser/${id}`,
@@ -372,9 +332,6 @@
       this.dispatch.contactWay = "";
       this.dispatch.lawEnforcerName = "";
       await this.getTeamList(id);
-      // if (this.squadronOptions.length === 0) {
-      //     await this.getDepartUserList(id);
-      // }
     },
     // 涓槦鏇存敼
     async handleMidChange(id) {
@@ -404,9 +361,7 @@
   watch: {
     "squadronOptions.length": {
       handler(newval, oldval) {
-        console.log(newval);
         if (newval === 0) {
-          console.log(1);
           this.$message({
             type: "warning",
             message: "璇ラ儴闂ㄤ笅娌℃湁涓槦",
diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue
index 921fa55..f0c9402 100644
--- a/src/views/intelligentPatrol/studyJudge/index.vue
+++ b/src/views/intelligentPatrol/studyJudge/index.vue
@@ -31,7 +31,7 @@
               <span>鎶ヨ璁板綍</span>
               <span>涔卞仠涔辨斁杩濇硶鍗犻亾</span>
             </div>
-            <el-form ref="currentEvent" label-width="120px" :model="currentEvent" :rules="rules">
+            <el-form ref="currentEvent" label-width="120px" :model="eventInfoData" :rules="rules">
               <el-form-item label="浜嬩欢缂栧彿:">
                 <span>{{ currentEvent.code }}</span>
               </el-form-item>
@@ -48,33 +48,33 @@
                 <span>{{ currentEvent.conntinueTime }}</span>
               </el-form-item>
               <el-form-item label="鍏宠仈搴楅摵" prop="store">
-                <el-select v-model="currentEvent.store" @change="selectStoreChange" placeholder="璇烽�夋嫨鍏宠仈搴楅摵">
+                <el-select v-model="eventInfoData.store" @change="selectStoreChange" placeholder="璇烽�夋嫨鍏宠仈搴楅摵">
                   <el-option v-for="store in storeList" :value="store.id" :label="store.storeName" :key="store.id" />
                 </el-select>
               </el-form-item>
-              <el-form-item v-if="currentEvent.store" label="搴楅摵寰楀垎:">
-                <span>{{ selectStoreChange(currentEvent.store).storeScore }}</span>
+              <el-form-item v-if="eventInfoData.store" label="搴楅摵寰楀垎:">
+                <span>{{ selectStoreChange(eventInfoData.store).storeScore }}</span>
               </el-form-item>
               <el-form-item label="澶勭悊鎰忚:" prop="advice">
-                <el-radio-group v-model="currentEvent.advice">
+                <el-radio-group v-model="eventInfoData.advice">
                   <el-radio :label="item.id" v-for="item in adviceList" :key="item.id">{{ item.label }}</el-radio>
                 </el-radio-group>
               </el-form-item>
               <el-form-item label="澶х被鍚嶇О:" prop="categoryId">
-                <el-select v-model="currentEvent.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О" @change="categoryChange">
+                <el-select v-model="eventInfoData.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О" @change="categoryChange">
                   <el-option v-for="category in categoryOptions" :key="category.id" :value="category.id" :label="category.name" />
                 </el-select>
               </el-form-item>
               <el-form-item label="灏忕被鍚嶇О:" prop="typeId">
-                <el-select v-model="currentEvent.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О">
+                <el-select v-model="eventInfoData.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О">
                   <el-option v-for="type in typeOptions" :key="type.id" :value="type.id" :label="type.name" />
                 </el-select>
               </el-form-item>
               <el-form-item label="杞︾墝鍙�:" prop="carNumber">
-                <el-input v-model="currentEvent.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿鐮�"></el-input>
+                <el-input v-model="eventInfoData.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿鐮�"></el-input>
               </el-form-item>
               <el-form-item label="澶囨敞:" prop="description">
-                <el-input type="textarea" :rows="5" v-model="currentEvent.description"></el-input>
+                <el-input type="textarea" :rows="5" v-model="eventInfoData.description"></el-input>
               </el-form-item>
               <el-form-item>
                 <el-button :disabled="currentPage === 1" @click="pageChange('prev')">涓婁竴鏉�</el-button>
@@ -86,6 +86,9 @@
         </div>
       </div>
     </div>
+    <el-dialog :visible="isShowDialog" title="璋冨害淇℃伅">
+      <MyDispatch v-if="isShowDialog" :mytype="1" @confirmInspection="handleConfirm" :isGetData="true" @changeDialog="closeDialog"></MyDispatch>
+    </el-dialog>
   </div>
 </template>
 
@@ -95,10 +98,13 @@
 import { getStoreInfoList } from "@/api/operate/storeManagement";
 import { FILE_ORIGINAL_URL } from "@/utils";
 import { validateCarNum } from "@/utils/validate";
+import MyDispatch from '@/components/dispatch';
 
 export default {
+  components: { MyDispatch },
   created() {
     this.getInspectionData();
+    this.initEventParams();
     basecase.getInspectionCountData()
         .then(res => {
           this.countData = res;
@@ -145,11 +151,11 @@
       currentEvent: {},
       adviceList: [
         {
-          id: 1,
+          id: 2,
           label: '涓婃姤',
         },
         {
-          id: 2,
+          id: 6,
           label: '璋冨害',
         },
         {
@@ -161,6 +167,7 @@
           label: '鏆備笉澶勭悊',
         },
       ],
+      eventInfoData: null,
       rules:{
         advice:[
           {
@@ -184,7 +191,8 @@
       categoryOptions: [],
       typeOptions: [],
       storeList: [],
-      typeList: []
+      typeList: [],
+      isShowDialog: false
     }
   },
   methods:{
@@ -213,30 +221,57 @@
     handleConfirm(){
       this.$refs.currentEvent.validate((flag)=>{
         if(flag){
-          this.currentEvent.linkShop = 0;
-          if (this.currentEvent.store) {
-            const selectedStore = this.selectStoreChange(this.currentEvent.store);
-            this.currentEvent.shopName = selectedStore.storeName;
-            this.currentEvent.linkShop = 1;
+          this.eventInfoData.baseId = this.currentEvent.code;
+
+          // 璋冨害
+          if (this.eventInfoData.advice === 6) {
+            this.isShowDialog = true;
+          } else {
+            this.confirmInspection();
           }
-          basecase.confirmInspection(this.currentEvent)
-              .then(() => {
-                this.$message.success('鎿嶄綔鎴愬姛');
-                this.getInspectionData();
-              })
-              .catch(err => this.$message.error(err))
         } else {
           this.$message.warning('璇锋鏌ュ繀濉」');
         }
       })
     },
 
+    initEventParams() {
+      this.eventInfoData = {
+        baseId: null,
+        store: null,
+        advice: null,
+        categoryId: null,
+        typeId: null,
+        carNumber: null,
+        description: null,
+        linkShop: 0,
+        shopName: null
+      }
+    },
+
     categoryChange(id) {
       this.typeOptions = this.typeList.filter(type => type.parentId === id);
     },
 
+    confirmInspection(data) {
+      basecase.confirmInspection({ ...this.eventInfoData, ...data })
+          .then(() => {
+            this.$message.success('鎿嶄綔鎴愬姛');
+            this.getInspectionData();
+            this.initEventParams();
+          })
+          .catch(err => this.$message.error(err))
+    },
+
+    closeDialog() {
+      this.isShowDialog = false;
+    },
+
     selectStoreChange(id) {
-      return this.storeList.find(store => store.id === id);
+      const selectedStore = this.storeList.find(store => store.id === id);
+      this.eventInfoData.shopName = selectedStore.storeName;
+      this.eventInfoData.linkShop = 1;
+      return selectedStore;
     }
   }
 }
diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
index 7ce923f..982f8cb 100644
--- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
+++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -387,7 +387,6 @@
     },
     created() {
         const { setBigKindList, getStreetList, getEventLevel } = this;
-        console.log(this.mytype);
         this.vio.category = this.mytype + 1;
         setBigKindList();
         getStreetList(0);
@@ -544,7 +543,6 @@
         selectBlur(e) {
             if (e.target.value) {
                 this.vio.actionCause = e.target.value;
-                console.log(e.target.value);
             }
         }
     },

--
Gitblit v1.8.0