From 1e07cfd8ac6c3e31e94c0ea98dcff61db51e49d1 Mon Sep 17 00:00:00 2001 From: wl <173@qq.com> Date: 星期一, 09 一月 2023 16:54:39 +0800 Subject: [PATCH] fix: 单选框展示 --- src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 496 ++++++++++++++++++++++++++++++++++-------------------- 1 files changed, 308 insertions(+), 188 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 c58bc5a..deb2a40 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -6,114 +6,126 @@ <div class="input-header__tip">濉啓浜嬩欢鍩虹淇℃伅</div> </div> <div class="input-form"> - <el-form ref="user" label-width="100px" autoComplete="on" :model="vio" :rules="createRoleRules" + <el-form ref="user" label-width="120px" autoComplete="on" :model="vio" :rules="createRoleRules" label-position="right"> - <!-- 闂绫诲瀷 --> - <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="璇烽�夋嫨澶х被鍚嶇О"> - <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" :value="item.id"> - </el-option> - </el-select> - </el-form-item> - <!-- 灏忕被鍚嶇О --> - <el-form-item class="optionItems" label="灏忕被鍚嶇О:" prop="typeId"> - <el-select v-model="vio.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О"> - <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" :value="item.id" - :disabled="item.disabled"> - </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" - :disabled="item.disabled"> - </el-option> - </el-select> - </el-form-item> + <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" label="妗堢敱:" prop="actionCause"> - <el-input v-model="vio.actionCause" placeholder="璇疯緭鍏ユ鐢�"></el-input> - </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> --> - <!-- 鎵�灞炶閬� --> - <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.name" :value="item.id" - :disabled="item.disabled"> + <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="communityId"> - <el-select v-model="vio.communityId" placeholder="璇烽�夋嫨鎵�灞炵ぞ鍖�"> - <el-option v-for="item in communityList" :key="item.id" :label="item.name" :value="item.id" - :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> - <!-- 鏄惁鍏宠仈鍟嗛摵 --> - <el-form-item class="optionItems" label="鏄惁鍏宠仈鍟嗛摵:" prop="linkShop"> - <el-radio-group v-model="vio.linkShop"> - <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 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-select v-model="vio.shopName" :disabled="vio.linkShop === 0" placeholder="璇峰~鍐欏叧鑱斿晢閾哄悕绉�"> + <el-option v-for="store in storeList" :key="store.id" :value="store.id" :label="store.storeName"></el-option> + </el-select> + </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" maxlength="200" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" v-model="vio.description"></el-input> + <el-input type="textarea" :rows="5" maxlength="200" placeholder="璇疯緭鍏ュ唴瀹�200瀛椾互鍐�" + v-model="vio.description"> + </el-input> </el-form-item> - <!-- 鎶ヨ鏃堕棿 --> - <el-form-item class="optionItems" label="鎶ヨ鏃堕棿:" prop="alarmTime"> - <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="閫夋嫨鎶ヨ鏃堕棿"> - </el-date-picker> + <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="not-need"> - <div class="not-need__header"> - 濉啓鍙嶆槧浜轰俊鎭� - </div> - <div class="not-need-item"> - <label>鍙嶆槧浜�:</label> - <el-input v-model="vio.informant"></el-input> - </div> - <div class="not-need-item"> - <label>鑱旂郴鏂瑰紡:</label> - <el-input v-model="vio.informantPhoneCode"></el-input> - </div> - <div class="not-need-item"> - <label>韬唤璇佸彿:</label> - <el-input v-model="vio.informantIdCard"></el-input> - </div> </div> <div class="input-footer"> <el-button type="primary" class="confirm" @click="handleSubmit">纭畾</el-button> @@ -127,6 +139,10 @@ </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" +import { getStoreInfoList } from "@/api/operate/storeManagement"; export default { components: { MyMap @@ -195,11 +211,49 @@ 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: '',//闂鎻忚堪 @@ -212,19 +266,14 @@ streetId: '',//鎵�灞炶閬� typeId: '',//灏忕被 gradeId: '',//妗堜欢绛夌骇 - alarmTime: '' + alarmTime: '', + limitTime: '',//璋冨害鏃堕檺 }, createRoleRules: { //妗堢敱 actionCause: [ { required: true, trigger: 'blur', validator: checkCause, - } - ], - //杞︾墝鍙� - carNumber: [ - { - required: false, } ], //澶х被 @@ -245,11 +294,27 @@ required: true, trigger: 'blur', validator: checkDesc } ], - // informant:"澶ц嫃鎵�",//鍙嶆槧浜� - // informantIdCard:"51102519910082831",//韬唤璇佸彿鐮� - // informantPhoneCode:"17844631885",//鍙嶆槧浜鸿仈绯绘柟寮� + 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:"",//鍏宠仈鍟嗛摵鍚嶇О + shopName: [ + { + required: false, trigger: 'blur', validator: checkLink + } + ], //浜嬪彂鍦扮偣 site: [ { @@ -278,6 +343,11 @@ { required: true, trigger: 'change', validator: checkDate } + ], + limitTime: [ + { + required: true, trigger: 'change', validator: checkLimit + } ] }, @@ -294,63 +364,99 @@ value: 2. } ], - streetList:[], - communityList:[], + streetList: [], + communityList: [], + anYouList: [], + storeList: [] } }, created() { - const { getBigKind, getEventLevel, getSmallKind,getStreetList } = this; - console.log(this.mytype); + const { setBigKindList, getStreetList, getEventLevel } = this; this.vio.category = this.mytype + 1; - getBigKind(); - getSmallKind(); + setBigKindList(); + getStreetList(0); getEventLevel(); - getStreetList(); + this.getShopList(); }, methods: { handleStop() { this.refresh(); }, - // 鑾峰彇澶х被鍒楄〃 - getBigKind() { - this.$axios({ - method: 'get', - url: 'sccg/violations/query/type_first' - }).then(res => { - this.bigKindList = res.data; - // console.log(res); + // 璁剧疆澶х被 + 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; + } + }) + }, + // 鏌ヨ澶х被鍒楄〃 + async getBigKind() { + let arr = []; + await this.$axios({ + method: 'get', + url: "sccg/violations/query/type_second", + }) + .then(res => { + arr = res.data; + }) + return arr }, // 鑾峰彇灏忕被鍒楄〃 - getSmallKind() { - this.$axios({ + async getSmallKind() { + let arr = []; + await this.$axios({ method: 'get', - url: 'sccg/violations/query/type_second' + url: "sccg/violations/query/type_third", }) .then(res => { - this.smallKindList = res.data; + arr = res.data; }) + return arr }, // 鑾峰彇妗堜欢绛夌骇鍒楄〃 - getEventLevel() { - this.$axios({ + async getEventLevel() { + this.eventLevelList = await getTypeList(1, '02'); + }, + // 鏌ヨ鎵�灞炴鐢� + async getAnYouList() { + let arr = []; + await this.$axios({ method: 'get', - url: 'sccg/violations/query/event_type' + url: 'sccg/violations/query/type_four' }) .then(res => { - this.eventLevelList = res.data; + arr = res.data; }) + return arr; }, // 鎻愪氦娉ㄥ唽淇℃伅 handleSubmit() { this.$refs.user.validate((valid) => { if (valid) { const { vio } = this; - console.log(vio); this.$axios({ method: 'post', url: 'sccg/base_case/addition_violation', - data: vio + data: { + ...vio, + alarmTime: parseTime(vio.alarmTime), + limitTime:parseTime(vio.limitTime), + } }) .then(res => { if (res.code === 200) { @@ -373,32 +479,67 @@ }) }, // 杩斿洖 - handleBack(){ - this.$emit('changeDialog',{flag:false}) + handleBack() { + this.$emit('changeDialog', { flag: false }) }, // 鑾峰彇琛楅亾淇℃伅 - getStreetList(){ - this.$axios({ + async getStreetList(id) { + let arr + await this.$axios({ method:'get', - url:'sccg/dict/query_Street_type' - }) - .then(res=>{ - this.streetList = res.data; - }) - }, - // 琛楅亾鏇存敼 - handleStreet(id){ - console.log(id); - this.$axios({ - method:'get', - url:'sccg/dict/query_social_type?id='+id + url:`sccg/sccg_region/getChildren/${id}`, }) .then(res=>{ - this.communityList = res.data; + if(res.code === 200){ + arr = res.data; + } }) - } + this.streetList = arr; + }, + // 琛楅亾鏇存敼 + handleStreet(id) { + this.vio.communityId = ''; + 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; + } + }, + + getShopList() { + getStoreInfoList({ current: 1, size: 100 }) + .then(({ list }) => { + this.storeList = list; + }) + .catch(err => { + this.$message.error(err) + }) + } }, - props: ['mytype', 'changeDialog','refresh'] + props: ['mytype', 'changeDialog', 'refresh'] } </script> <style lang="scss" scoped> @@ -407,7 +548,7 @@ padding: 20px 10px 50px; .input-area { - flex: 1; + flex: 3; padding: 10px 20px; .input-header { @@ -424,21 +565,26 @@ } } + .user-item { + display: flex; + justify-content: space-between; + } + .input-form { .el-form { - &::v-deep .el-form-item__label { - color: #4b9bb7; - } + // &::v-deep .el-form-item__label { + // color: #4b9bb7; + // } - &::v-deep .el-input__inner { - background-color: #09152f; - border: 1px solid #17324c; - } + // &::v-deep .el-input__inner { + // // background-color: #09152f; + // border: 1px solid #17324c; + // } - &::v-deep .el-textarea__inner { - background-color: #09152f; - border: 1px solid #17324c; - } + // &::v-deep .el-textarea__inner { + // // background-color: #09152f; + // border: 1px solid #17324c; + // } } } @@ -449,38 +595,12 @@ } .map-area { - flex: 1; + flex: 2; } - .not-need { - color: #4b9bb7; - - .not-need__header { - line-height: 40px; - } - - .not-need-item { - line-height: 40px; - margin-bottom: 22px; - display: flex; - - label { - width: 100px; - padding-right: 12px; - text-align: right; - } - - .not-need__inner { - flex: 1; - line-height: 40px; - padding: 0 15px; - border-radius: 4px; - color: #fff; - // outline: #409eff solid 1px; - outline: none; - background-color: #09152f; - border: 1px solid #17324c; - } + .anyou { + :deep(.el-select) { + display: block; } } -- Gitblit v1.8.0