From eda46bf83619297600436e5015fd8977e9974219 Mon Sep 17 00:00:00 2001
From: luobisheng <727299681@qq.com>
Date: 星期五, 04 十一月 2022 15:50:31 +0800
Subject: [PATCH] Merge branch 'master' of http://42.193.1.25:9521/r/sccg_ui

---
 src/views/operate/disposal/casepool/pool/createUser/vio/index.vue |  628 ++++++++++++++++++++++++++++++++++++++++++++++++++++++++
 1 files changed, 626 insertions(+), 2 deletions(-)

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 d0ef7c6..3471e50 100644
--- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
+++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue
@@ -1,3 +1,627 @@
 <template>
-    <div>1</div>
-</template>
\ No newline at end of file
+    <div class="vio">
+        <div class="input-area">
+            <div class="input-header">
+                <div class="input-header__title">鍩虹淇℃伅</div>
+                <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div>
+            </div>
+            <div class="input-form">
+                <el-form ref="user" label-width="120px" autoComplete="on" :model="vio" :rules="createRoleRules"
+                    label-position="right">
+                    <div class="user-item">
+                        <!-- 闂绫诲瀷 -->
+                        <el-form-item class="optionItem" label="闂绫诲瀷:" prop="category">
+                            <el-select v-model="vio.category" placeholder="杩濊" disabled>
+                                <el-option v-for="item in typeList" :key="item.label" :label="item.label"
+                                    :value="item.value">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <!-- 澶х被鍚嶇О -->
+                        <el-form-item class="optionItems" label="澶х被鍚嶇О:" prop="categoryId">
+                            <el-select v-model="vio.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О" @change="handleBigKindChange">
+                                <el-option v-for="item in bigKindList" :key="item.id" :label="item.name"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <div class="user-item">
+                        <!-- 灏忕被鍚嶇О -->
+                        <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId">
+                            <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О" @change="handleSmallKindChange">
+                                <el-option v-for="item in smallKindList" :key="item.id" :label="item.name"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <!-- 浜嬩欢绛夌骇 -->
+                        <el-form-item class="optionItems" label="浜嬩欢绛夌骇:" prop="gradeId">
+                            <el-select v-model="vio.gradeId" placeholder="璇烽�夋嫨妗堜欢绛夌骇">
+                                <el-option v-for="item in eventLevelList" :key="item.id" :label="item.name"
+                                    :value="item.id">
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <!-- 妗堢敱 -->
+                    <el-form-item class="optionItem anyou" label="妗堢敱:" prop="actionCause">
+                        <el-select v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�" filterable @blur="selectBlur">
+                            <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name">
+                            </el-option>
+                        </el-select>
+                    </el-form-item>
+                    <!-- 鎵�灞炲尯鍘� -->
+                    <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status">
+                        <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炲尯鍘�">
+                            <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"
+                                :disabled="item.disabled">
+                            </el-option>
+                        </el-select>
+                    </el-form-item> -->
+                    <div class="user-item">
+                        <!-- 鎵�灞炶閬� -->
+                        <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId">
+                            <el-select v-model="vio.streetId" placeholder="璇烽�夋嫨鎵�灞炶閬�" @change="handleStreet">
+                                <el-option v-for="item in streetList" :key="item.id" :label="item.regionName" :value="item.id"
+                                    >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                        <!-- 鎵�灞炵ぞ鍖� -->
+                        <el-form-item class="optionItems" label="鎵�灞炵ぞ鍖�:" prop="communityId">
+                            <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�">
+                                <el-option v-for="item in communityList" :key="item.id" :label="item.regionName"
+                                    :value="item.id" >
+                                </el-option>
+                            </el-select>
+                        </el-form-item>
+                    </div>
+                    <!-- 浜嬪彂鍦扮偣 -->
+                    <el-form-item class="optionItems" label="浜嬪彂鍦扮偣:" prop="site">
+                        <el-input placeholder="璇疯緭鍏ヤ簨鍙戝湴璇︾粏浣嶇疆" v-model="vio.site"></el-input>
+                    </el-form-item>
+                    <div class="user-item">
+                        <!-- 鏄惁鍏宠仈鍟嗛摵 -->
+                        <el-form-item class="optionItems" label="鏄惁鍏宠仈鍟嗛摵:" prop="linkShop">
+                            <el-radio-group v-model="vio.linkShop" @change="handleLinkShop">
+                                <el-radio :label="1">鏄�</el-radio>
+                                <el-radio :label="0">鍚�</el-radio>
+                            </el-radio-group>
+                        </el-form-item>
+                        <!-- 鍏宠仈鍟嗛摵鍚嶇О -->
+                        <el-form-item class="optionItems" label="鍏宠仈鍟嗛摵鍚嶇О:" prop="shopName">
+                            <el-input placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�" v-model="vio.shopName"
+                                :disabled="vio.linkShop === 1 ?false : true"></el-input>
+                        </el-form-item>
+                    </div>
+                    <!-- 濉啓杞︾墝鍙� -->
+                    <el-form-item class="optionItems" label="濉啓杞︾墝鍙�:" prop="carNumber">
+                        <el-input placeholder="璇峰~鍐欒溅鐗屽彿" v-model="vio.carNumber"></el-input>
+                    </el-form-item>
+                    <!-- 闂鎻忚堪 -->
+                    <el-form-item class="optionItems" label="闂鎻忚堪:" prop="description">
+                        <el-input type="textarea" :rows="5" maxlength="200" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�"
+                            v-model="vio.description">
+                        </el-input>
+                    </el-form-item>
+                    <div class="user-item">
+                        <!-- 鎶ヨ鏃堕棿 -->
+                        <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime">
+                            <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿">
+                            </el-date-picker>
+                        </el-form-item>
+                        <!-- 璋冨害鏃堕檺 -->
+                        <el-form-item class="optionItems" label="璋冨害鏃堕檺:" prop="limitTime">
+                            <el-date-picker v-model="vio.limitTime" type="datetime" placeholder="閫夋嫨璋冨害鏃堕檺">
+                            </el-date-picker>
+                        </el-form-item>
+                    </div>
+                    <!-- 濉啓鍙嶆槧浜轰俊鎭� -->
+                    <el-form-item class="optionItems" label="濉啓鍙嶆槧浜轰俊鎭�">
+                    </el-form-item>
+                    <!-- 鍙嶆槧浜烘儏鍐� -->
+                    <div class="user-item">
+                        <el-form-item class="optionItems" label="鍙嶆槧浜�:" prop="informant">
+                            <el-input v-model="vio.informant"></el-input>
+                        </el-form-item>
+                        <el-form-item class="optionItems" label="鑱旂郴鏂瑰紡:" prop="informantPhoneCode">
+                            <el-input v-model="vio.informantPhoneCode"></el-input>
+                        </el-form-item>
+                    </div>
+                    <el-form-item class="optionItems" label="韬唤璇佸彿:" prop="informantIdCard">
+                        <el-input v-model="vio.informantIdCard"></el-input>
+                    </el-form-item>
+                </el-form>
+            </div>
+            <div class="input-footer">
+                <el-button type="primary" class="confirm" @click="handleSubmit">纭畾</el-button>
+                <el-button class="back" @click="handleBack">杩斿洖</el-button>
+            </div>
+        </div>
+        <div class="map-area">
+            <!-- <MyMap /> -->
+        </div>
+    </div>
+</template>
+<script>
+import MyMap from '@/components/map'
+import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate'
+import { getTypeList } from '@/utils/helper'
+import { parseTime } from "@/utils/index"
+export default {
+    components: {
+        MyMap
+    },
+    data() {
+        const checkCause = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('妗堢敱涓嶈兘涓虹┖'))
+            }
+        }
+        const checkCategory = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('澶х被鍚嶇О涓嶈兘涓虹┖'))
+            }
+        }
+        const checkCommunity = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('鎵�灞炵ぞ鍖轰笉鑳戒负绌�'));
+            }
+        }
+        const checkDesc = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('闂鎻忚堪涓嶈兘涓虹┖'))
+            }
+        }
+        const checkSite = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('浜嬪彂鍦扮偣涓嶈兘涓虹┖'))
+            }
+        }
+        const checkStreet = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('鎵�灞炶閬撲笉鑳戒负绌�'))
+            }
+        }
+        const checkType = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('灏忕被涓嶈兘涓虹┖'))
+            }
+        }
+        const checkGrade = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('浜嬩欢绛夌骇涓嶈兘涓虹┖'))
+            }
+        }
+        const checkDate = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('鎶ヨ鏃堕棿涓嶈兘涓虹┖'))
+            }
+        }
+        const checkCarNumber = (rule, value, callback) => {
+            if (value) {
+                if (validateCarNum(value)) {
+                    callback();
+                } else {
+                    callback(new Error('璇疯緭鍏ユ纭殑杞︾墝鍙�'));
+                }
+            } else {
+                callback(new Error("杞︾墝鍙蜂笉鑳戒负绌�"))
+            }
+        }
+        const checkName = (rule, value, callback) => {
+            if (value) {
+                validateName(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑濮撳悕'))
+            } else {
+                callback()
+            }
+        }
+        const checkCardId = (rule, value, callback) => {
+            if (value) {
+                validateCardId(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑韬唤璇佸彿鐮�'))
+            } else {
+                callback()
+            }
+        }
+        const checkPhone = (rule, value, callback) => {
+            if (value) {
+                validatePhone(value) ? callback() : callback(new Error('璇疯緭鍏ユ纭殑鎵嬫満鍙�'));
+            } else {
+                callback()
+            }
+        }
+        const checkLink = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                if (this.vio.linkShop === 1) {
+                    callback(new Error('鍏宠仈鍟嗛摵鍚嶅瓧涓嶈兘涓虹┖'));
+                } else {
+                    callback();
+                }
+            }
+        }
+        const checkLimit = (rule, value, callback) => {
+            if (value) {
+                callback();
+            } else {
+                callback(new Error('璋冨害鏃堕檺鏃堕棿涓嶈兘涓虹┖'))
+            }
+        }
+        return {
+            vio: {
+                actionCause: "",//妗堢敱
+                carNumber: "",//杞︾墝鍙�
+                // category:1,//1:杩濊2:杩濆缓
+                categoryId: '',//澶х被
+                communityId: '',//鎵�灞炵ぞ鍖�
+                description: '',//闂鎻忚堪
+                informant: '',//鍙嶆槧浜�
+                informantIdCard: '',//韬唤璇佸彿鐮�
+                informantPhoneCode: "",//鍙嶆槧浜鸿仈绯绘柟寮�
+                linkShop: 0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
+                shopName: "",//鍏宠仈鍟嗛摵鍚嶇О
+                site: '',//浜嬪彂鍦扮偣
+                streetId: '',//鎵�灞炶閬�
+                typeId: '',//灏忕被
+                gradeId: '',//妗堜欢绛夌骇
+                alarmTime: '',
+                limitTime: '',//璋冨害鏃堕檺
+            },
+            createRoleRules: {
+                //妗堢敱
+                actionCause: [
+                    {
+                        required: true, trigger: 'blur', validator: checkCause,
+                    }
+                ],
+                // //杞︾墝鍙�
+                // carNumber: [
+                //     {
+                //         required: true, trigger: 'blur', validator: checkCarNumber
+                //     }
+                // ],
+                //澶х被
+                categoryId: [
+                    {
+                        required: true, trigger: 'change', validator: checkCategory
+                    }
+                ],
+                //鎵�灞炵ぞ鍖�
+                communityId: [
+                    {
+                        required: true, trigger: 'change', validator: checkCommunity
+                    }
+                ],
+                //闂鎻忚堪
+                description: [
+                    {
+                        required: true, trigger: 'blur', validator: checkDesc
+                    }
+                ],
+                informant: [
+                    {
+                        required: false, trigger: 'blur', validator: checkName
+                    }
+                ],
+                informantIdCard: [
+                    {
+                        required: false, trigger: 'blur', validator: checkCardId
+                    }
+                ],
+                informantPhoneCode: [
+                    {
+                        required: false, trigger: 'blur', validator: checkPhone
+                    }
+                ],
+                // linkShop:0,//鏄惁鍏宠仈鍟嗛摵(0鍚�1鏄�)
+                shopName: [
+                    {
+                        required: false, trigger: 'blur', validator: checkLink
+                    }
+                ],
+                //浜嬪彂鍦扮偣
+                site: [
+                    {
+                        required: true, trigger: 'blur', validator: checkSite
+                    }
+                ],
+                //鎵�灞炶閬�
+                streetId: [
+                    {
+                        required: true, trigger: 'change', validator: checkStreet
+                    }
+                ],
+                //灏忕被
+                typeId: [
+                    {
+                        required: true, trigger: 'change', validator: checkType
+                    }
+                ],
+                //妗堜欢绛夌骇
+                gradeId: [
+                    {
+                        required: true, trigger: 'change', validator: checkGrade
+                    }
+                ],
+                alarmTime: [
+                    {
+                        required: true, trigger: 'change', validator: checkDate
+                    }
+                ],
+                limitTime: [
+                    {
+                        required: true, trigger: 'change', validator: checkLimit
+                    }
+                ]
+
+            },
+            bigKindList: [],
+            smallKindList: [],
+            eventLevelList: [],
+            typeList: [
+                {
+                    label: '杩濊',
+                    value: 1.
+                },
+                {
+                    label: '杩濆缓',
+                    value: 2.
+                }
+            ],
+            streetList: [],
+            communityList: [],
+            anYouList: [],
+        }
+    },
+    created() {
+        const { setBigKindList, getStreetList, getEventLevel } = this;
+        console.log(this.mytype);
+        this.vio.category = this.mytype + 1;
+        setBigKindList();
+        getStreetList(0);
+        getEventLevel();
+    },
+    methods: {
+        handleStop() {
+            this.refresh();
+        },
+        // 璁剧疆澶х被
+        async setBigKindList() {
+            this.bigKindList = await this.getBigKind();
+        },
+        // 璁剧疆灏忕被
+        async setSmallKindList(id) {
+            let arr = await this.getSmallKind();
+            this.smallKindList = arr.filter(item => {
+                if (item.parentId === id) {
+                    return item;
+                }
+            })
+        },
+        // 璁剧疆妗堢敱
+        async setAnYouList(id) {
+            let arr = await this.getAnYouList();
+            this.anYouList = arr.filter(item => {
+                if (item.parentId === id) {
+                    return item;
+                }
+            })
+            console.log(this.anYouList);
+        },
+        // 鏌ヨ澶х被鍒楄〃
+        async getBigKind() {
+            let arr = [];
+            await this.$axios({
+                method: 'get',
+                url: "sccg/violations/query/type_second",
+            })
+                .then(res => {
+                    arr = res.data;
+                })
+            return arr
+        },
+        // 鑾峰彇灏忕被鍒楄〃
+        async getSmallKind() {
+            let arr = [];
+            await this.$axios({
+                method: 'get',
+                url: "sccg/violations/query/type_third",
+            })
+                .then(res => {
+                    arr = res.data;
+                })
+            return arr
+        },
+        // 鑾峰彇妗堜欢绛夌骇鍒楄〃
+        async getEventLevel() {
+            this.eventLevelList = await getTypeList(1, '02');
+        },
+        // 鏌ヨ鎵�灞炴鐢�
+        async getAnYouList() {
+            let arr = [];
+            await this.$axios({
+                method: 'get',
+                url: 'sccg/violations/query/type_four'
+            })
+                .then(res => {
+                    arr = res.data;
+                    console.log(res);
+                })
+            return arr;
+        },
+        // 鎻愪氦娉ㄥ唽淇℃伅
+        handleSubmit() {
+            this.$refs.user.validate((valid) => {
+                if (valid) {
+                    const { vio } = this;
+                    this.$axios({
+                        method: 'post',
+                        url: 'sccg/base_case/addition_violation',
+                        data: {
+                            ...vio,
+                            alarmTime: parseTime(vio.alarmTime),
+                            limitTime:parseTime(vio.limitTime),
+                        }
+                    })
+                        .then(res => {
+                            console.log(res);
+                            if (res.code === 200) {
+                                this.$message({
+                                    type: 'success',
+                                    message: res.message
+                                })
+                                this.$emit('changeDialog', { flag: false });
+                                this.refresh();
+                            } else {
+                                this.$message({
+                                    type: 'warning',
+                                    message: res.message,
+                                })
+                            }
+                        })
+                } else {
+                    return false;
+                }
+            })
+        },
+        // 杩斿洖
+        handleBack() {
+            this.$emit('changeDialog', { flag: false })
+        },
+        // 鑾峰彇琛楅亾淇℃伅
+        async getStreetList(id) {
+            let arr
+            await this.$axios({
+                method:'get',
+                url:`sccg/sccg_region/getChildren/${id}`,
+            })
+            .then(res=>{
+                if(res.code === 200){
+                    arr = res.data;
+                }
+            })
+            this.streetList = arr;
+        },
+        // 琛楅亾鏇存敼
+        handleStreet(id) {
+            console.log(id);
+            this.vio.communityId = '';
+            // this.communityList = getTypeList(1,'11')
+            this.$axios({
+                method: 'get',
+                url: `sccg/sccg_region/getChildren/${id}`
+            })
+                .then(res => {
+                    this.communityList = res.data;
+                })
+        },
+        // 鍏宠仈鍟嗛摵
+        handleLinkShop(value) {
+            value === 0 ? this.vio.shopName = '' : '';
+        },
+        // 澶х被閫変腑
+        handleBigKindChange(id) {
+            this.vio.actionCause = '';
+            this.vio.typeId = '';
+            this.setSmallKindList(id);
+        },
+        // 灏忕被閫変腑
+        handleSmallKindChange(id) {
+            this.vio.actionCause = '';
+            this.setAnYouList(id);
+        },
+        // 妗堢敱杈撳叆
+        selectBlur(e) {
+            if (e.target.value) {
+                this.vio.actionCause = e.target.value;
+                console.log(e.target.value);
+            }
+        }
+    },
+    props: ['mytype', 'changeDialog', 'refresh']
+}
+</script>
+<style lang="scss" scoped>
+.vio {
+    display: flex;
+    padding: 20px 10px 50px;
+
+    .input-area {
+        flex: 3;
+        padding: 10px 20px;
+
+        .input-header {
+            color: #4b9bb7;
+
+            .input-header__title {
+                line-height: 60px;
+                font-weight: 650;
+                font-size: 20px;
+            }
+
+            .input-header__tip {
+                line-height: 40px;
+            }
+        }
+
+        .user-item {
+            display: flex;
+            justify-content: space-between;
+        }
+
+        .input-form {
+            .el-form {
+                &::v-deep .el-form-item__label {
+                    color: #4b9bb7;
+                }
+
+                &::v-deep .el-input__inner {
+                    background-color: #09152f;
+                    border: 1px solid #17324c;
+                }
+
+                &::v-deep .el-textarea__inner {
+                    background-color: #09152f;
+                    border: 1px solid #17324c;
+                }
+            }
+        }
+
+        .input-footer {
+            display: flex;
+            justify-content: center;
+        }
+    }
+
+    .map-area {
+        flex: 2;
+    }
+
+    .anyou {
+        :deep(.el-select) {
+            display: block;
+        }
+    }
+
+}
+</style>
\ No newline at end of file

--
Gitblit v1.8.0