From 73b48dd59a2d47b365b87784371c4ef57dde659b Mon Sep 17 00:00:00 2001
From: Oliver <1070107765@qq.com>
Date: 星期四, 22 十二月 2022 11:17:47 +0800
Subject: [PATCH] 首页新增
---
src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 474 +++++++++++++++++++++++++++++++++++++----------------------
1 files changed, 297 insertions(+), 177 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..46aa84e 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 {
@@ -422,6 +563,11 @@
.input-header__tip {
line-height: 40px;
}
+ }
+
+ .user-item {
+ display: flex;
+ justify-content: space-between;
}
.input-form {
@@ -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