From d22f9b9278303f340e2f8efd6f5a98f0b614c05c Mon Sep 17 00:00:00 2001
From: zhanghua <314079846@qq.com>
Date: 星期一, 17 十月 2022 18:03:36 +0800
Subject: [PATCH] 部门功能修改

---
 src/components/dispatch/index.vue |  129 ++++++++++++++++++++++++++++++++----------
 1 files changed, 97 insertions(+), 32 deletions(-)

diff --git a/src/components/dispatch/index.vue b/src/components/dispatch/index.vue
index 66d3df2..2d1673e 100644
--- a/src/components/dispatch/index.vue
+++ b/src/components/dispatch/index.vue
@@ -15,15 +15,15 @@
             <!-- 閫夋嫨鎵ф硶杞� -->
             <el-form-item label="閫夋嫨鎵ф硶杞�:" prop="enforcementCar">
                 <el-select v-model="dispatch.enforcementCar" placeholder="璇烽�夋嫨">
-                    <el-option v-for="item in carOptions" :key="item.value" :label="item.label" :value="item.value">
+                    <el-option v-for="item in carOptions" :key="item.id" :label="item.carNumber" :value="item.id">
                     </el-option>
                 </el-select>
             </el-form-item>
             <!-- 閫夋嫨浜哄憳 -->
             <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">
@@ -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,39 +120,52 @@
             if (value) {
                 callback();
             } else {
-                callback(new Error('涓槦涓嶈兘涓虹┖'))
+                callback(new Error('澶勭疆鏃ユ湡涓嶈兘涓虹┖'))
             }
         }
         const checkPerson = (rule, value, callback) => {
             if (value) {
                 callback();
             } else {
-                callback(new Error('鎵ф硶浜哄憳涓嶈兘涓虹┖'))
+                callback()
             }
         }
         const checkNumber = (rule, value, callback) => {
             if (value) {
                 callback();
             } else {
-                callback(new Error('鎵ф硶浜哄憳缂栧彿涓嶈兘涓虹┖'))
+                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: true, trigger: 'blur', validator: checkPhone
+                        required: false, trigger: 'blur', validator: checkPhone
                     }
                 ],
                 dispatchOpinion: [
@@ -159,8 +181,13 @@
                     { required: true, trigger: 'change', validator: checkPerson }
                 ],
                 lawEnforcerName: [
-                    { required: true, trigger: 'change', validator: checkNumber }
+                    { required: false, trigger: 'change', validator: checkNumber }
                 ],
+                disposeDate: [
+                    {
+                        required: true, trigger: 'false', validator: checkTeam
+                    }
+                ]
             },
             carOptions: [
                 {
@@ -232,8 +259,8 @@
                 url: `sccg/car_Manage/query_enforce?current=1&size=1000`
             })
                 .then(res => {
-                    this.carOptions = res.data.orders;
-                    console.log(res);
+                    this.carOptions = res.data.records;
+                    console.log(res, this.carOptions);
                 })
         },
         // 鑾峰彇娓e湡杞﹁締
@@ -243,7 +270,7 @@
                 url: `sccg/car_Manage/query_slag?current=1&size=1000`
             })
                 .then(res => {
-                    this.carOptions = res.data.orders;
+                    this.carOptions = res.data.records;
                     console.log(res);
                 })
         },
@@ -259,6 +286,7 @@
         },
         // 鑾峰彇涓槦
         async getTeamList(id) {
+            console.log(id);
             await this.$axios({
                 method: 'get',
                 url: `sccg/depart/query_father_children?fatherId=${id}`
@@ -272,46 +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);
-            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){
-            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=>{
-                console.log(res);
-            })
+                .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