From 0d7d6fc9a5c40ccc90190b0f24039ec1362f120f Mon Sep 17 00:00:00 2001
From: “dzb” <2632970487@qq.com>
Date: 星期一, 17 十月 2022 11:33:10 +0800
Subject: [PATCH] 新增设备管理、完善消息新增,修改bug

---
 src/components/dispatch/index.vue |  115 +++++++++++++++++++++++++++++++++++++++++++--------------
 1 files changed, 87 insertions(+), 28 deletions(-)

diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue
index 5e8c919..2d1673e 100644
--- a/src/components/dispatch/index.vue
+++ b/src/components/dispatch/index.vue
@@ -22,8 +22,8 @@
             <!-- 閫夋嫨浜哄憳 -->
             <div class="form-person">
                 <!-- 閮ㄩ棬 -->
-                <el-form-item label="閫夋嫨浜哄憳:" prop="dispatchOpinion">
-                    <el-select v-model="dispatch.dispatchOpinion" placeholder="璇烽�夋嫨閮ㄩ棬" @change="handleTopChange">
+                <el-form-item label="閫夋嫨浜哄憳:" prop="createUser">
+                    <el-select v-model="dispatch.createUser" placeholder="璇烽�夋嫨閮ㄩ棬" @change="handleTopChange">
                         <el-option v-for="item in departOptions" :key="item.id" :label="item.departName"
                             :value="item.id">
                         </el-option>
@@ -32,7 +32,7 @@
                 <!-- 涓槦 -->
                 <el-form-item prop="enforcementTeam" class="person-item">
                     <el-select v-model="dispatch.enforcementTeam" placeholder="閫夋嫨涓槦"
-                        :disabled="squadronOptions.length!==0?false:true" @change="handleMidChange">
+                        :disabled="squadronOptions.length!==0 && squadronOptions?false:true" @change="handleMidChange">
                         <el-option v-for="item in squadronOptions" :key="item.id" :label="item.departName"
                             :value="item.id">
                         </el-option>
@@ -41,7 +41,7 @@
                 <el-form-item prop='lawEnforcer' class="person-item">
                     <!-- 浜哄憳 -->
                     <el-select v-model="dispatch.lawEnforcer" placeholder="璇烽�夋嫨浜哄憳"
-                        :disabled="personOptions.length !== 0 ? false:true" @change="handlePerChange">
+                        :disabled="personOptions.length !== 0 && personOptions? false:true" @change="handlePerChange">
                         <el-option v-for="item in personOptions" :key="item.id" :label="item.username" :value="item.id">
                         </el-option>
                     </el-select>
@@ -50,13 +50,22 @@
             <div class="form-footer">
                 <!-- 鎵ф硶浜哄憳缂栧彿 -->
                 <el-form-item label="鎵ф硶浜哄憳缂栧彿:" prop="lawEnforcerName">
-                    <el-input v-model="dispatch.lawEnforcerName"></el-input>
+                    <el-input v-model="dispatch.lawEnforcerName" disabled></el-input>
                 </el-form-item>
                 <!-- 鎵ф硶浜哄憳鑱旂郴鏂瑰紡 -->
                 <el-form-item label="鑱旂郴鏂瑰紡:" prop="contactWay">
-                    <el-input v-model="dispatch.contactWay"></el-input>
+                    <el-input v-model="dispatch.contactWay" disabled></el-input>
                 </el-form-item>
                 <el-button type="primary">鍙戦�佺煭淇�</el-button>
+            </div>
+            <div class="form-time">
+                <el-form-item label="娲鹃仯鎰忚" prop="dispatchOpinion">
+                    <el-input v-model="dispatch.dispatchOpinion" placeholder="璇疯緭鍏ユ淳閬f剰瑙�"></el-input>
+                </el-form-item>
+                <el-form-item label="澶勭疆鏃ユ湡" prop="disposeDate">
+                    <el-date-picker v-model="dispatch.disposeDate" type="datetime" placeholder="閫夋嫨鏃ユ湡鏃堕棿">
+                    </el-date-picker>
+                </el-form-item>
             </div>
         </el-form>
         <div class="map">
@@ -74,7 +83,7 @@
     components: {
         MyMap
     },
-    props: ['id', 'changeDialog', 'refresh', 'mytype'], 
+    props: ['id', 'changeDialog', 'refresh', 'mytype'],
     created() {
         // 鍒ゆ柇杞﹁締绫诲瀷
         this.mytype === 1 ? this.getLawCarList() : this.getSoilCarList();
@@ -90,14 +99,14 @@
                     callback();
                 }
             } else {
-                callback(new Error('鑱旂郴鏂瑰紡涓嶈兘涓虹┖'))
+                callback()
             }
         }
         const checkOpinion = (rule, value, callback) => {
             if (value) {
                 callback();
             } else {
-                callback(new Error('閮ㄩ棬涓嶈兘涓虹┖'))
+                callback(new Error('娲鹃仯鎰忚涓嶈兘涓虹┖'))
             }
         }
         const checkDistance = (rule, value, callback) => {
@@ -111,7 +120,7 @@
             if (value) {
                 callback();
             } else {
-                callback(new Error('涓槦涓嶈兘涓虹┖'))
+                callback(new Error('澶勭疆鏃ユ湡涓嶈兘涓虹┖'))
             }
         }
         const checkPerson = (rule, value, callback) => {
@@ -128,19 +137,32 @@
                 callback()
             }
         }
+        const checkDepart = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('璇烽�夋嫨閮ㄩ棬'))
+            }
+        }
         return {
             dispatch: {
                 baseCaseId: 0,//妗堜欢id
                 contactWay: "",//鑱旂郴鏂瑰紡
-                dispatchOpinion: "",//閮ㄩ棬
+                dispatchOpinion: "",//澶勭疆鎰忚
                 disposeDate: "",//澶勭疆鏃ユ湡
                 distance: 0,//璺濈
                 enforcementCar: '',//鎵ф硶杞�
                 enforcementTeam: "",//鎵ф硶涓槦
                 lawEnforcer: '',//鎵ф硶浜哄憳
-                lawEnforcerName: ""//鎵ф硶缂栧彿
+                lawEnforcerName: "",//鎵ф硶缂栧彿,
+                createUser: null,
             },
             rules: {
+                createUser: [
+                    {
+                        required: true, trigger: 'change', validator: checkDepart
+                    }
+                ],
                 contactWay: [
                     {
                         required: false, trigger: 'blur', validator: checkPhone
@@ -161,6 +183,11 @@
                 lawEnforcerName: [
                     { required: false, trigger: 'change', validator: checkNumber }
                 ],
+                disposeDate: [
+                    {
+                        required: true, trigger: 'false', validator: checkTeam
+                    }
+                ]
             },
             carOptions: [
                 {
@@ -233,7 +260,7 @@
             })
                 .then(res => {
                     this.carOptions = res.data.records;
-                    console.log(res,this.carOptions);
+                    console.log(res, this.carOptions);
                 })
         },
         // 鑾峰彇娓e湡杞﹁締
@@ -259,6 +286,7 @@
         },
         // 鑾峰彇涓槦
         async getTeamList(id) {
+            console.log(id);
             await this.$axios({
                 method: 'get',
                 url: `sccg/depart/query_father_children?fatherId=${id}`
@@ -272,52 +300,83 @@
         },
         // 鑾峰彇閮ㄩ棬涓嬬殑鐢ㄦ埛
         async getDepartUserList(id) {
+            console.log(id);
             await this.$axios({
                 method: 'get',
                 url: `sccg/admin/getDepartUser/${id}`,
             })
                 .then(res => {
-                    this.personOptions = res.data;
+                    console.log(res);
+                    if (res.code === 200) {
+                        this.personOptions = res.data;
+                    } else {
+                        this.personOptions = [];
+                    }
+                    if(this.personOptions.length === 0){
+                        this.$message({
+                            type: 'warning',
+                            message: '璇ヤ腑闃熶笅娌℃湁浜哄憳'
+                        })
+                    }
                 })
                 .catch(err => {
                     this.$message({
-                    type: 'error',
-                    message: '璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�'
-                })
+                        type: 'error',
+                        message: '璇ラ儴闂ㄤ汉鍛樹笉瓒筹紝璇锋崲涓儴闂�'
+                    })
                 })
         },
         // 閮ㄩ棬鏇存敼
         async handleTopChange(id) {
             this.dispatch.lawEnforcer = '';
             this.dispatch.enforcementTeam = '';
+            this.dispatch.contactWay = '';
+            this.dispatch.lawEnforcerName = '';
             await this.getTeamList(id);
-            if(this.squadronOptions.length===0){
-                await this.getDepartUserList(id);
-            }
+            // if (this.squadronOptions.length === 0) {
+            //     await this.getDepartUserList(id);
+            // }
         },
         // 涓槦鏇存敼
         async handleMidChange(id) {
             this.dispatch.lawEnforcer = '';
+            this.dispatch.contactWay = '';
+            this.dispatch.lawEnforcerName = '';
             await this.getDepartUserList(id);
         },
         // 浜哄憳鏇存敼
-        async handlePerChange(id){
-            let obj =  await this.getLawUser(id);
+        async handlePerChange(id) {
+            let obj = await this.getLawUser(id);
             this.dispatch.lawEnforcerName = obj.nickName;
             this.dispatch.contactWay = obj.mobile;
         },
         // 鑾峰彇鎵ф硶浜哄憳淇℃伅
-        async getLawUser(id){
+        async getLawUser(id) {
             let obj = {}
             await this.$axios({
-                method:'get',
-                url:`sccg/admin/${id}`
+                method: 'get',
+                url: `sccg/admin/${id}`
             })
-            .then(res=>{
-                obj = res.data;
-            })
+                .then(res => {
+                    obj = res.data;
+                })
             return obj;
         }
+    },
+    watch: {
+        'squadronOptions.length': {
+            handler(newval, oldval) {
+                console.log(newval);
+                if (newval === 0) {
+                    console.log(1);
+                    this.$message({
+                        type: 'warning',
+                        message: '璇ラ儴闂ㄤ笅娌℃湁涓槦'
+                    })
+                }
+            },
+            deep: true
+        },
     }
 }
 </script>

--
Gitblit v1.8.0