| | |
| | | <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-select v-model="vio.actionCause" placeholder="请输入案由"> |
| | | <el-option v-for="item in anYouList" :key="item.id" :label="item.name" |
| | | :value="item.id" > |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-input v-model="vio.actionCause" placeholder="请输入案由"></el-input> --> |
| | | </el-form-item> |
| | | <!-- 所属区县 --> |
| | | <!-- <el-form-item class="optionItems" label="所属区县:" prop="status"> |
| | |
| | | </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-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.name" :value="item.id" |
| | | :disabled="item.disabled"> |
| | | </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> |
| | | <!-- 事发地点 --> |
| | | <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-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" 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> |
| | | </el-form-item> |
| | | <!-- 填写反映人信息 --> |
| | | <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> |
| | |
| | | </template> |
| | | <script> |
| | | import MyMap from '@/components/map' |
| | | import { validateName, validatePhone, validateCarNum } from '@/utils/validate' |
| | | export default { |
| | | components: { |
| | | MyMap |
| | |
| | | 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) { |
| | | callback(); |
| | | } 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(); |
| | | } |
| | | } |
| | | } |
| | | return { |
| | | vio: { |
| | | actionCause: "",//案由 |
| | |
| | | //车牌号 |
| | | carNumber: [ |
| | | { |
| | | required: false, |
| | | required: true, trigger: 'blur', validator: checkCarNumber |
| | | } |
| | | ], |
| | | //大类 |
| | |
| | | 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: [ |
| | | { |
| | |
| | | value: 2. |
| | | } |
| | | ], |
| | | streetList:[], |
| | | communityList:[], |
| | | streetList: [], |
| | | communityList: [], |
| | | anYouList:[], |
| | | } |
| | | }, |
| | | created() { |
| | | const { getBigKind, getEventLevel, getSmallKind,getStreetList } = this; |
| | | const { setBigKindList,getStreetList,getEventLevel } = this; |
| | | console.log(this.mytype); |
| | | this.vio.category = this.mytype + 1; |
| | | getBigKind(); |
| | | getSmallKind(); |
| | | getEventLevel(); |
| | | setBigKindList(); |
| | | getStreetList(); |
| | | getEventLevel(); |
| | | }, |
| | | 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; |
| | | } |
| | | }) |
| | | }, |
| | | // 获取小类列表 |
| | | getSmallKind() { |
| | | this.$axios({ |
| | | // 设置案由 |
| | | 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' |
| | | url: "sccg/violations/query/type_second", |
| | | }) |
| | | .then(res => { |
| | | this.smallKindList = res.data; |
| | | 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 |
| | | }, |
| | | // 获取案件等级列表 |
| | | getEventLevel() { |
| | |
| | | .then(res => { |
| | | this.eventLevelList = res.data; |
| | | }) |
| | | }, |
| | | // 查询所属案由 |
| | | 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() { |
| | |
| | | }) |
| | | }, |
| | | // 返回 |
| | | handleBack(){ |
| | | this.$emit('changeDialog',{flag:false}) |
| | | handleBack() { |
| | | this.$emit('changeDialog', { flag: false }) |
| | | }, |
| | | // 获取街道信息 |
| | | getStreetList(){ |
| | | getStreetList() { |
| | | this.$axios({ |
| | | method:'get', |
| | | url:'sccg/dict/query_Street_type' |
| | | method: 'get', |
| | | url: 'sccg/dict/query_Street_type' |
| | | }) |
| | | .then(res=>{ |
| | | this.streetList = res.data; |
| | | }) |
| | | .then(res => { |
| | | this.streetList = res.data; |
| | | }) |
| | | }, |
| | | // 街道更改 |
| | | handleStreet(id){ |
| | | handleStreet(id) { |
| | | console.log(id); |
| | | this.vio.communityId = ''; |
| | | this.$axios({ |
| | | method:'get', |
| | | url:'sccg/dict/query_social_type?id='+id |
| | | method: 'get', |
| | | url: 'sccg/dict/query_social_type?id=' + id |
| | | }) |
| | | .then(res=>{ |
| | | this.communityList = res.data; |
| | | }) |
| | | } |
| | | .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); |
| | | } |
| | | }, |
| | | props: ['mytype', 'changeDialog','refresh'] |
| | | props: ['mytype', 'changeDialog', 'refresh'] |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | .input-header__tip { |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | |
| | | .user-item { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .input-form { |
| | |
| | | line-height: 40px; |
| | | } |
| | | |
| | | .my-sp-item { |
| | | display: flex; |
| | | |
| | | .not-item-left, |
| | | .not-item-right { |
| | | display: flex; |
| | | |
| | | .el-input { |
| | | flex: 1; |
| | | } |
| | | } |
| | | } |
| | | |
| | | .not-need-item { |
| | | line-height: 40px; |
| | | margin-bottom: 22px; |
| | |
| | | text-align: right; |
| | | } |
| | | |
| | | .el-input { |
| | | flex: 1; |
| | | } |
| | | |
| | | .not-need__inner { |
| | | flex: 1; |
| | | line-height: 40px; |