| | |
| | | <label class="data-title"> |
| | | 大类名称: |
| | | </label> |
| | | <span class="data-detail">{{baseCase.category}}</span> |
| | | <span class="data-detail">{{baseCase.violations.categoryId}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | <label class="data-title"> |
| | | 小类名称: |
| | | </label> |
| | | <!-- <span class="data-detail">{{baseCase.violations}}</span> --> |
| | | <span class="data-detail">{{baseCase.violations.typeId}}</span> |
| | | </div> |
| | | <div class="data-item__right"> |
| | | <label class="data-title"> |
| | | 事件等级: |
| | | </label> |
| | | <span class="data-detail">xxx</span> |
| | | <span class="data-detail">{{baseCase.violations.gradeId}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | <label class="data-title"> |
| | | 案由: |
| | | </label> |
| | | <span class="data-detail">xxx</span> |
| | | <span class="data-detail">{{baseCase.violations.actionCause}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | <label class="data-title"> |
| | | 所属社区: |
| | | </label> |
| | | <span class="data-detail">xxx</span> |
| | | <span class="data-detail">{{baseCase.communityId}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | <label class="data-title"> |
| | | 关联商铺名称: |
| | | </label> |
| | | <span class="data-detail">xxx</span> |
| | | <span class="data-detail">{{baseCase.violations.shopName}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | <label class="data-title"> |
| | | 问题描述: |
| | | </label> |
| | | <span class="data-detail">xxx</span> |
| | | <span class="data-detail">{{baseCase.violations.description}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-user"> |
| | |
| | | <label class="data-title"> |
| | | 反映人: |
| | | </label> |
| | | <span class="data-detail">{{baseCase.createUser}}</span> |
| | | <span class="data-detail">{{baseCase.violations.informant}}</span> |
| | | </div> |
| | | <div class="data-item__right"> |
| | | <label class="data-title"> |
| | | 联系方式: |
| | | </label> |
| | | <span class="data-detail">12345678901</span> |
| | | <span class="data-detail">{{baseCase.violations.informantPhoneCode}}</span> |
| | | </div> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | <label class="data-title"> |
| | | 身份证号: |
| | | </label> |
| | | <span class="data-detail">123456789987654321</span> |
| | | <span class="data-detail">{{baseCase.violations.informantIdCard}}</span> |
| | | </div> |
| | | </div> |
| | | </div> |
| | |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('执法人员不能为空')) |
| | | callback() |
| | | } |
| | | } |
| | | const checkNumber = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('执法人员编号不能为空')) |
| | | callback() |
| | | } |
| | | } |
| | | return { |
| | |
| | | rules: { |
| | | contactWay: [ |
| | | { |
| | | required: true, trigger: 'blur', validator: checkPhone |
| | | required: false, trigger: 'blur', validator: checkPhone |
| | | } |
| | | ], |
| | | dispatchOpinion: [ |
| | |
| | | { required: true, trigger: 'change', validator: checkPerson } |
| | | ], |
| | | lawEnforcerName: [ |
| | | { required: true, trigger: 'change', validator: checkNumber } |
| | | { required: false, trigger: 'change', validator: checkNumber } |
| | | ], |
| | | }, |
| | | carOptions: [ |
| | |
| | | this.dispatch.lawEnforcer = ''; |
| | | this.dispatch.enforcementTeam = ''; |
| | | await this.getTeamList(id); |
| | | await this.getDepartUserList(id); |
| | | if(this.squadronOptions.length===0){ |
| | | await this.getDepartUserList(id); |
| | | } |
| | | }, |
| | | // 中队更改 |
| | | async handleMidChange(id) { |
| | |
| | | <span class="data-detail">违建</span> |
| | | </el-form-item> |
| | | <el-form-item label="违建类别:"> |
| | | <span class="data-detail">xxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.categoryId}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="当事人姓名:"> |
| | | <span class="data-detail">xxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.partyName}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="当事人身份证号:"> |
| | | <span class="data-detail">xxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.partyIdCard}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="当事人联系电话:"> |
| | | <span class="data-detail">xxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.partyPhone}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="违建地点:"> |
| | | <span class="data-detail">xxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.site}}</span> |
| | | </el-form-item> |
| | | <el-form-item label="所属社区:"> |
| | | <span class="data-detail">xxxxx</span> |
| | | <span class="data-detail">{{baseCase.communityId}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="身份证正反面照片:"> |
| | | <img src="" alt=""> |
| | | <img :src="baseCase.illegalBuilding.positive" alt=""> |
| | | </el-form-item> |
| | | <el-form-item> |
| | | <img src="" alt=""> |
| | | <el-form-item label-width="0px"> |
| | | <img :src="baseCase.illegalBuilding.negative" alt=""> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="违建具体位置:"> |
| | | <span class="data-detail">xxxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.position}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="违法建设长、宽、高:"> |
| | | <span class="data-detail">xxxxxxx xxxxx xxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.buildingLength+'m'+" "+baseCase.illegalBuilding.buildingWidth+'m'+" "+baseCase.illegalBuilding.buildingHigh+'m' }}</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="违法建设面积:"> |
| | | <span class="data-detail">xxxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.buildingArea}}㎡</span> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="data-item"> |
| | | <el-form-item label="违法建筑材料:"> |
| | | <span class="data-detail">xxxxxxx</span> |
| | | <span class="data-detail">{{baseCase.illegalBuilding.materials}}</span> |
| | | </el-form-item> |
| | | </div> |
| | | </el-form> |
| | |
| | | color: #4b9bb7; |
| | | flex: 4; |
| | | padding: 0 30px 0 20px; |
| | | |
| | | img{ |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | .data-item { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | line-height: 40px; |
| | | line-height: 20px; |
| | | } |
| | | |
| | | border: 1px solid #17324c; |
| | |
| | | // console.log(this.handlePassVo.workflowConfigSteps[0].name); |
| | | // console.log(mylist); |
| | | console.log(mystate); |
| | | if(mystate===0){ |
| | | this.active = -1; |
| | | }else if(mystate ===6){ |
| | | if(mystate ===6){ |
| | | this.active = 1; |
| | | }else if(mystate===7){ |
| | | this.active = 2; |
| | |
| | | this.active = 3; |
| | | }else if(mystate ===9){ |
| | | this.active = 4; |
| | | }else{ |
| | | this.active = -1; |
| | | } |
| | | this.list = mylist; |
| | | }, |
| | |
| | | import { hash } from "immutable"; |
| | | |
| | | import myrequest from './request' |
| | | // 深拷贝 |
| | | function deepClone(obj) { |
| | | export function deepClone(obj) { |
| | | let objClone = Array.isArray(obj) ? [] : {}; |
| | | if (obj && typeof obj === 'object' && obj != null) { |
| | | for (let key in obj) { |
| | |
| | | return objClone; |
| | | } |
| | | // 计算限制时间 |
| | | function computeTime(time2) { |
| | | export function computeTime(time2) { |
| | | const t1 = new Date(); |
| | | const t2 = new Date(time2); |
| | | return filterTime(t2.getTime() - t1.getTime()); |
| | | } |
| | | // 获取字典表 |
| | | export async function getTypeList(level,code){ |
| | | let arr; |
| | | await myrequest({ |
| | | method:'get', |
| | | url:`sccg/dict/query_type?level=${level}&typeCode=${code}` |
| | | }) |
| | | .then(res=>{ |
| | | arr = res.data; |
| | | }) |
| | | return arr; |
| | | } |
| | | function filterTime(time) { |
| | | if (time < 0) { |
| | |
| | | } |
| | | return str + '分钟' |
| | | } |
| | | export { deepClone, computeTime }; |
| | |
| | | ) |
| | | // 响应 |
| | | api.interceptors.response.use( |
| | | function (response) { |
| | | if (response.data.code === 401) { |
| | | function handleResponseSuccess(response) { |
| | | const result = response.data; |
| | | if (response.status === 200 && result.code === 200) { |
| | | return result; |
| | | } else if (result.code=== 401) { |
| | | console.log(result); |
| | | tip.Message({ |
| | | type: 'warning', |
| | | message: '登录身份已过期', |
| | | }) |
| | | router.push('/login'); |
| | | return; |
| | | }else if(result.code === 500){ |
| | | tip.Message({ |
| | | type: 'error', |
| | | message: '网络请求出错', |
| | | }) |
| | | return; |
| | | } |
| | | return response.data; |
| | | }, |
| | | function (error) { |
| | | console.log(error); |
| | |
| | | }) |
| | | return; |
| | | } |
| | | const {code,status} = error.response.data; |
| | | if (error.code === 'ERR_NETWORK') { |
| | | console.log(1); |
| | | tip.Message({ |
| | | type: 'error', |
| | | message: '服务器故障' |
| | | }) |
| | | return; |
| | | } |
| | | if (code === 401) { |
| | | console.log(2); |
| | | tip.Message({ |
| | | type: 'warning', |
| | | message: '登录身份已过期', |
| | | }) |
| | | router.push('/login'); |
| | | return; |
| | | } |
| | | if (status === 500) { |
| | | console.log(3); |
| | | tip.Message({ |
| | | type: 'error', |
| | | message: '网络请求出错' |
| | | }) |
| | | return; |
| | | } |
| | | } |
| | | ); |
| | | ) |
| | | export default api; |
| | |
| | | const regExp = /(^[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼使领A-Z]{1}[A-Z]{1}[A-Z0-9]{4}[A-Z0-9挂学警港澳]{1}$)/; |
| | | return regExp.test(str); |
| | | } |
| | | // 校验数字 |
| | | export function validateNum(str){ |
| | | const rep = /^[0-9]+(.[0-9]{1,3})?$/; |
| | | return rep.test(str); |
| | | } |
| | | // 验证身份证号 |
| | | export function validateCardId(str){ |
| | | const rep=/^\d{15}|\d{}18$/ |
| | | return rep.test(str); |
| | | } |
| | | |
| | |
| | | @selection-change="tableChange"> |
| | | <el-table-column type="selection" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="事件编号" min-width="10"> |
| | | <el-table-column prop="code" label="事件编号" min-width="18"> |
| | | <template slot-scope="scope"> |
| | | <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="10"> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="7"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="category" label="大类名称" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'category' :'category'" |
| | | :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'"> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="小类名称" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" |
| | | min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="actionCause" label="案由" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" |
| | | :label="mystatus===1 ? '案由' : '所属社区'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="site" label="报警点位" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" |
| | | :min-width="mystatus===1?'10' :'20' "> |
| | | <template slot-scope="scope"> |
| | | <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ |
| | | scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div> |
| | | <div v-else>{{scope.row.site}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="streetId" label="所属区域" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" |
| | | :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15"> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1"> |
| | | <template slot-scope="scope"> |
| | | <span>{{filterTime(scope.row.alarmTime)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="continueTime" label="持续时间" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" |
| | | :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="operation" label="操作" min-width="20"> |
| | | <template slot-scope="scope"> |
| | | <div class="btn"> |
| | | <span>调度</span> |
| | | <span class="line">|</span> |
| | | <span @click="opernDialog(scope.row)">上传处置结果</span> |
| | | <div class="operation"> |
| | | <div class="btn"> |
| | | <span>调度</span> |
| | | <span class="line">|</span> |
| | | <span @click="opernDialog(scope.row)">上传处置结果</span> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <!-- 详情页展示 --> |
| | | <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView" |
| | | :before-close="handleClose"> |
| | | <MyDetail :info=info></MyDetail> |
| | | <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail> |
| | | <MyIllDetail :info=info v-else></MyIllDetail> |
| | | </el-dialog> |
| | | <!-- 上传页面 --> |
| | | <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果" |
| | | v-if="dialogUpload" :before-close="handleClose"> |
| | | <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果" v-if="dialogUpload" |
| | | :before-close="handleClose"> |
| | | <uploadVio v-if="mystatus === 1" :caseId="caseId" @closeDialog="closeDialog"></uploadVio> |
| | | <uploadIll v-else :caseId="caseId" @closeDialog="closeDialog"></uploadIll> |
| | | </el-dialog> |
| | |
| | | import uploadVio from './updateUser/uploadResult/vio' |
| | | import uploadIll from "./updateUser/uploadResult/ill" |
| | | import MyDetail from '@/components/detail' |
| | | import MyIllDetail from '@/components/illdetail' |
| | | import helper from '@/utils/mydate' |
| | | export default { |
| | | components: { |
| | | // updateUser, |
| | | uploadVio,uploadIll,MyDetail |
| | | uploadVio, uploadIll, MyDetail,MyIllDetail |
| | | }, |
| | | data() { |
| | | return { |
| | | tableData: [], |
| | | context: "", |
| | | dialogUpload:false, |
| | | dialogUpload: false, |
| | | // dialogUpdate: false, |
| | | dialogView:false, |
| | | dialogView: false, |
| | | info: {}, |
| | | totalNum: null, |
| | | pageSize: 10, |
| | |
| | | all: false, |
| | | unsame: false, |
| | | myIdx: 0, |
| | | preMyIdx:0, |
| | | preMyIdx: 0, |
| | | options: [ |
| | | { |
| | | value: 0, |
| | |
| | | checked: false, |
| | | }, |
| | | ], |
| | | statusArr:[], |
| | | mystatus:1, |
| | | caseId:'', |
| | | statusArr: [], |
| | | mystatus: 1, |
| | | caseId: '', |
| | | } |
| | | }, |
| | | created() { |
| | |
| | | this.getUserList(); |
| | | }, |
| | | // 批量删除 |
| | | mulDelete(idArr){ |
| | | mulDelete(idArr) { |
| | | console.log(idArr); |
| | | this.$axios({ |
| | | method:'delete', |
| | | url:'sccg/violations/batch_delete?ids='+idArr, |
| | | }).then(res=>{ |
| | | method: 'delete', |
| | | url: 'sccg/violations/batch_delete?ids=' + idArr, |
| | | }).then(res => { |
| | | this.getUserList(); |
| | | this.$message({ |
| | | message:res.message, |
| | | type:res.code === 200 ? 'success' : 'warning' |
| | | message: res.message, |
| | | type: res.code === 200 ? 'success' : 'warning' |
| | | }) |
| | | }) |
| | | }, |
| | |
| | | }) |
| | | .catch(_ => { }); |
| | | }, |
| | | async JumpView(data){ |
| | | async JumpView(data) { |
| | | await this.getEventInfo(data.code); |
| | | }, |
| | | // 获取案件信息 |
| | | getEventInfo(code){ |
| | | this.$axios({ |
| | | method:'get', |
| | | url:`sccg/base_case/baseCaseDetail/${code}` |
| | | async getEventInfo(code) { |
| | | await this.$axios({ |
| | | method: 'get', |
| | | url: `sccg/base_case/baseCaseDetail/${code}` |
| | | }) |
| | | .then(res=>{ |
| | | this.info = res.data; |
| | | this.dialogView = true; |
| | | }) |
| | | .then(res => { |
| | | this.info = res.data; |
| | | this.dialogView = true; |
| | | }) |
| | | }, |
| | | opernDialog(data){ |
| | | opernDialog(data) { |
| | | this.dialogUpload = true; |
| | | this.caseId = data.id; |
| | | // console.log(data); |
| | | }, |
| | | // 关闭上传界面 |
| | | closeDialog({flag}){ |
| | | closeDialog({ flag }) { |
| | | this.dialogUpload = flag; |
| | | this.getUserList(); |
| | | }, |
| | | // 处理时间 |
| | | filterTime(time){ |
| | | filterTime(time) { |
| | | return helper(time); |
| | | } |
| | | } |
| | |
| | | text-align: left; |
| | | margin: 10px 20px; |
| | | color: #4b9bb7; |
| | | |
| | | header { |
| | | background-color: #09152f; |
| | | border: 1pox solid #fff; |
| | |
| | | } |
| | | } |
| | | } |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | |
| | | main { |
| | | background-color: #09152f; |
| | | margin-top: 20px; |
| | | padding-bottom: 50px; |
| | | border: 1pox solid #fff; |
| | | .btn span:hover{ |
| | | |
| | | .btn span:hover { |
| | | cursor: pointer; |
| | | } |
| | | |
| | | .type-nav { |
| | | display: flex; |
| | | line-height: 40px; |
| | |
| | | width: 50px !important; |
| | | } |
| | | } |
| | | .line{ |
| | | |
| | | .line { |
| | | padding: 0 5px; |
| | | } |
| | | |
| | | &::v-deep .el-dialog__header, |
| | | &::v-deep .el-dialog__body { |
| | | background-color: #06122c; |
| | |
| | | <!-- 现场情况照片 --> |
| | | <el-form-item label="现场情况照片:" prop="situationPic"> |
| | | <div class="upImg"> |
| | | <div class="img-list"> |
| | | <img :src="item" alt="" v-for="(item,index) in arrive.situationPic" :key="index"> |
| | | <div class="img-list" v-if="arrive.situationPic.length!==0"> |
| | | <div class="img" v-for="(item,index) in arrive.situationPic" :key="index"> |
| | | <img :src="item" alt=""> |
| | | <i class="el-icon-close myicon" @click="handleRemove(index)"></i> |
| | | </div> |
| | | </div> |
| | | <div class="upload" v-if="arrive.situationPic.length<4"> |
| | | <el-upload :file-list="fileList" class="upload-demo" |
| | | action="http://42.193.1.25:8082/sccg/file/medias" multiple :show-file-list="false" |
| | | :limit="4" :on-success="handleSuccess" :headers="getToken()"> |
| | | :limit="50" :on-success="handleSuccess" list-type="picture" :headers="getToken()"> |
| | | <i class="el-icon-plus"></i> |
| | | </el-upload> |
| | | </div> |
| | |
| | | } |
| | | } |
| | | const checkSitPic = (rule, value, callback) => { |
| | | if (value) { |
| | | if (value.length !== 0) { |
| | | callback() |
| | | } else { |
| | | callback(); |
| | | callback(new Error('请上传现场情况照片')); |
| | | } |
| | | } |
| | | return { |
| | |
| | | { trigger: 'blur', validator: checkReplay } |
| | | ], |
| | | situationPic: [ |
| | | { trigger: 'change', validator: checkSitPic } |
| | | { trigger: 'blur', validator: checkSitPic } |
| | | ], |
| | | }, |
| | | fileList: [], |
| | |
| | | handleSuccess(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | console.log(res); |
| | | console.log(this.fileList); |
| | | if (this.arrive.situationPic.length < 4) { |
| | | this.arrive.situationPic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | } |
| | | }, |
| | | // 获取arrive对象 |
| | | backData(){ |
| | | backData() { |
| | | const { arrive } = this; |
| | | this.$emit('getArrive',{arrive}); |
| | | this.$emit('getArrive', { arrive }); |
| | | }, |
| | | // 删除图片 |
| | | handleRemove(index) { |
| | | this.arrive.situationPic.splice(index,1); |
| | | } |
| | | }, |
| | | watch: { |
| | | 'arrive.situationPic.length': { |
| | | handler(newLen, oldLen) { |
| | | if (newLen !== 0) { |
| | | this.$refs.arriveForm.validateField('situationPic'); |
| | | } |
| | | }, |
| | | deep: true, |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .arrive-title{ |
| | | .arrive-title { |
| | | line-height: 60px; |
| | | font-weight: 650; |
| | | font-size: 20px; |
| | |
| | | } |
| | | |
| | | .img-list { |
| | | height: 80px; |
| | | height: 60px; |
| | | position: relative; |
| | | |
| | | display: flex; |
| | | img { |
| | | width: 60px; |
| | | height: 60px; |
| | | } |
| | | .img{ |
| | | height: 60px; |
| | | position: relative; |
| | | } |
| | | .myicon { |
| | | position: absolute; |
| | | top: 0px; |
| | | right: 0px; |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | <!-- 文书照片上传 --> |
| | | <el-form-item label="文书照片上传:" prop="writPic"> |
| | | <div class="upImg"> |
| | | <div class="img-list"> |
| | | <img :src="item" alt="" v-for="(item,index) in book.writPic" :key="index"> |
| | | <div class="img-list" v-if="book.writPic.length!==0"> |
| | | <div class="img" v-for="(item,index) in book.writPic" :key="index"> |
| | | <img :src="item" alt=""> |
| | | <i class="el-icon-close myicon" @click="handleRemove(index,1)"></i> |
| | | </div> |
| | | </div> |
| | | <div class="upload" v-if="book.writPic.length<4"> |
| | | <el-upload :file-list="fileList" class="upload-demo" |
| | |
| | | <!-- 整改前照片 --> |
| | | <el-form-item label="整改前照片:" prop="originalPic"> |
| | | <div class="upImg"> |
| | | <div class="img-list"> |
| | | <img :src="item" alt="" v-for="(item,index) in book.originalPic" :key="index"> |
| | | <div class="img-list" v-if="book.originalPic.length!==0"> |
| | | <div class="img" v-for="(item,index) in book.originalPic" :key="index"> |
| | | <img :src="item" alt=""> |
| | | <i class="el-icon-close myicon" @click="handleRemove(index,2)"></i> |
| | | </div> |
| | | </div> |
| | | <div class="upload" v-if="book.originalPic.length<4"> |
| | | <el-upload :file-list="fileList" class="upload-demo" |
| | |
| | | <!-- 整改后照片 --> |
| | | <el-form-item label="整改后照片:" prop="rectifiedPic"> |
| | | <div class="upImg"> |
| | | <div class="img-list"> |
| | | <img :src="item" alt="" v-for="(item,index) in book.rectifiedPic" :key="index"> |
| | | <div class="img-list" v-if="book.rectifiedPic.length!==0"> |
| | | <div class="img" v-for="(item,index) in book.rectifiedPic" :key="index"> |
| | | <img :src="item" alt=""> |
| | | <i class="el-icon-close myicon" @click="handleRemove(index,3)"></i> |
| | | </div> |
| | | </div> |
| | | <div class="upload" v-if="book.rectifiedPic.length<4"> |
| | | <el-upload :file-list="fileList" class="upload-demo" |
| | |
| | | <!-- 其他照片 --> |
| | | <el-form-item label="其他:" prop="otherPic"> |
| | | <div class="upImg"> |
| | | <div class="img-list"> |
| | | <img :src="item" alt="" v-for="(item,index) in book.otherPic" :key="index"> |
| | | <div class="img-list" v-if="book.otherPic.length!==0"> |
| | | <div class="img" v-for="(item,index) in book.otherPic" :key="index"> |
| | | <img :src="item" alt=""> |
| | | <i class="el-icon-close myicon" @click="handleRemove(index,4)"></i> |
| | | </div> |
| | | </div> |
| | | <div class="upload" v-if="book.otherPic.length<4"> |
| | | <el-upload :file-list="fileList" class="upload-demo" |
| | |
| | | callback(new Error('发放内容不能为空')); |
| | | } |
| | | } |
| | | const checkRectPic = (rule, value, callback) => { |
| | | if (value.length!==0) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('整改后照片不能为空')); |
| | | } |
| | | } |
| | | const checkWritPic = (rule, value, callback) => { |
| | | if (value.length!==0) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('文书照片不能为空')); |
| | | } |
| | | } |
| | | const checkOrgPic = (rule, value, callback) => { |
| | | if (value.length !==0) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('整改前照片不能为空')); |
| | | } |
| | | } |
| | | return { |
| | | book: { |
| | | writPic: [], |
| | |
| | | bookRules: { |
| | | writType: [ |
| | | { |
| | | trigger: 'blur', validator: checkKind |
| | | trigger: 'change', validator: checkKind |
| | | } |
| | | ], |
| | | idwritCode: [ |
| | | writCode: [ |
| | | { |
| | | trigger: 'blur', validator: checkId |
| | | } |
| | |
| | | noremark: [ |
| | | { |
| | | trigger: 'blur', validator: checkNote |
| | | } |
| | | ], |
| | | writPic: [{ |
| | | trigger: 'blur', validator: checkWritPic |
| | | }], |
| | | rectifiedPic: [ |
| | | { |
| | | trigger: 'blur', validator: checkRectPic |
| | | } |
| | | ], |
| | | originalPic: [ |
| | | { |
| | | trigger: 'blur', validator: checkOrgPic |
| | | } |
| | | ], |
| | | }, |
| | |
| | | return { Authorization: tokenHead + token } |
| | | } |
| | | }, |
| | | // 删除图片 |
| | | handleRemove(index, flag) { |
| | | if (flag === 1) { |
| | | this.book.writPic.splice(index, 1); |
| | | } else if (flag === 2) { |
| | | this.book.originalPic.splice(index, 1); |
| | | } else if (flag === 3) { |
| | | this.book.rectifiedPic.splice(index, 1); |
| | | } else { |
| | | this.book.otherPic.splice(index, 1); |
| | | } |
| | | |
| | | } |
| | | }, |
| | | watch: { |
| | | 'book.writPic.length': { |
| | | handler(newLen, oldLen) { |
| | | if (newLen !== 0) { |
| | | this.$refs.bookForm.validateField('writPic'); |
| | | } |
| | | }, |
| | | deep: true, |
| | | }, |
| | | 'book.rectifiedPic.length': { |
| | | handler(newLen, oldLen) { |
| | | if (newLen !== 0) { |
| | | this.$refs.bookForm.validateField('rectifiedPic'); |
| | | } |
| | | }, |
| | | deep: true, |
| | | }, |
| | | 'book.originalPic.length': { |
| | | handler(newLen, oldLen) { |
| | | if (newLen !== 0) { |
| | | this.$refs.bookForm.validateField('originalPic'); |
| | | } |
| | | }, |
| | | deep: true, |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | |
| | | } |
| | | |
| | | .img-list { |
| | | height: 80px; |
| | | height: 60px; |
| | | position: relative; |
| | | display: flex; |
| | | |
| | | img { |
| | | width: 60px; |
| | | height: 60px; |
| | | } |
| | | |
| | | .img { |
| | | height: 60px; |
| | | position: relative; |
| | | } |
| | | |
| | | .myicon { |
| | | position: absolute; |
| | | top: 0px; |
| | | right: 0px; |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | | |
| | |
| | | <div class="evidence-title">调查取证</div> |
| | | <div class="evidence-form"> |
| | | <el-form ref="evidenceForm" label-width="160px" :model="evidence" :rules="evidenceRules" autoComplete="on"> |
| | | <!-- 承办队员 --> |
| | | <el-form-item label="承办队员:" prop="undertaker"> |
| | | <el-input v-model="evidence.undertaker" placeholder="请输入姓名"></el-input> |
| | | </el-form-item> |
| | | <!-- 协办队员 --> |
| | | <el-form-item label="协办队员:" prop="assistant"> |
| | | <el-input v-model="evidence.assistant" placeholder="请输入姓名"></el-input> |
| | | </el-form-item> |
| | | <div class="evidence-item"> |
| | | <!-- 承办队员 --> |
| | | <el-form-item label="承办队员:" prop="undertaker"> |
| | | <el-input v-model="evidence.undertaker" placeholder="请输入姓名"></el-input> |
| | | </el-form-item> |
| | | <!-- 协办队员 --> |
| | | <el-form-item label="协办队员:" label-width="100px" prop="assistant"> |
| | | <el-input v-model="evidence.assistant" placeholder="请输入姓名"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 时间 --> |
| | | <el-form-item label="时间:" prop="investigationTime"> |
| | | <el-date-picker v-model="evidence.investigationTime" type="datetime" placeholder="选择时间"> |
| | |
| | | </el-form-item> |
| | | <!-- 当事人信息 --> |
| | | <el-form-item label="当事人信息:" prop="userInfo"> |
| | | <el-input suffix-icon="el-icon-s-order" @focus="openDialog"></el-input> |
| | | <el-input suffix-icon="el-icon-s-order" v-model="evidence.userInfo" @focus="openDialog"></el-input> |
| | | </el-form-item> |
| | | <!-- 情况描述 --> |
| | | <el-form-item label="情况描述:" prop="description"> |
| | |
| | | v-model="evidence.description" placeholder="请输入情况描述,限制200字以内"></el-input> |
| | | </el-form-item> |
| | | <!-- 照片附件 --> |
| | | <el-form-item label="照片附件:" prop="photo"> |
| | | <el-form-item label="照片附件:" prop="pic"> |
| | | <div class="upImg"> |
| | | <div class="img-list"> |
| | | <img :src="item" alt="" v-for="(item,index) in evidence.pic" :key="index"> |
| | | <div class="img-list" v-if="evidence.pic.length!==0"> |
| | | <div class="img" v-for="(item,index) in evidence.pic" :key="index"> |
| | | <img :src="item" alt=""> |
| | | <i class="el-icon-close myicon" @click="handleRemove(index)"></i> |
| | | </div> |
| | | </div> |
| | | <div class="upload" v-if="evidence.pic.length<4"> |
| | | <el-upload :file-list="fileList" class="upload-demo" |
| | |
| | | <div class="user-item"> |
| | | <el-form-item label="证件类型:" prop="certificateType"> |
| | | <el-select v-model="user.certificateType" placeholder="请选择"> |
| | | <el-option v-for="item in cardOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | <el-option v-for="item in cardOptions" :key="item.id" :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <!-- 文化程度 --> |
| | | <el-form-item label="文化程度:" prop="educationDegree"> |
| | | <el-select v-model="user.educationDegree" placeholder="请选择"> |
| | | <el-option v-for="item in degreeOptions" :key="item.value" :label="item.label" |
| | | :value="item.value"> |
| | | <el-option v-for="item in degreeOptions" :key="item.id" :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | |
| | | <div class="user-item"> |
| | | <!-- 民族 --> |
| | | <el-form-item label="民族:" prop="nation"> |
| | | <el-input v-model="user.nation"></el-input> |
| | | <!-- <el-select v-model="user.nation" placeholder="请选择民族"> --> |
| | | <el-select v-model="user.nation" placeholder="请选择"> |
| | | <el-option v-for="item in nationOptions" :key="item.id" :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | <!-- <el-input v-model="user.nation"></el-input> --> |
| | | </el-form-item> |
| | | <!-- 籍贯 --> |
| | | <el-form-item label="籍贯:" prop="nativePlace"> |
| | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import { getTypeList } from '@/utils/helper' |
| | | import {validateName,validatePhone,validateCardId} from '@/utils/validate' |
| | | export default { |
| | | data() { |
| | | const checkName = (rule, value, callback) => { |
| | |
| | | } |
| | | } |
| | | const checkPic = (rule, value, callback) => { |
| | | if (value) { |
| | | if (value.length !== 0) { |
| | | callback() |
| | | } else { |
| | | callback(); |
| | | callback(new Error('请上传照片附件')); |
| | | } |
| | | } |
| | | const checkIll = (rule, value, callback) => { |
| | |
| | | } |
| | | const checkName3 = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | validateName(value) ? callback() : callback(new Error('请输入正确的姓名')) |
| | | } else { |
| | | callback(new Error('当事人姓名不能为空')); |
| | | } |
| | | } |
| | | const checkPhone = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | validatePhone(value) ? callback() : callback(new Error('请输入正确的手机号码')) |
| | | } else { |
| | | callback(new Error('手机号码不能为空')); |
| | | } |
| | |
| | | } |
| | | const checkCode = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | validateCardId(value) ? callback() : callback(new Error('请输入正确的证件号码')) |
| | | } else { |
| | | callback(new Error('证件号码不能为空')); |
| | | } |
| | |
| | | callback(new Error('文化程度不能为空')); |
| | | } |
| | | } |
| | | const checkCareer = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('职业不能为空')); |
| | | } |
| | | } |
| | | const checkWork = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('工作单位及职务不能为空')); |
| | | } |
| | | } |
| | | // const checkCareer = (rule, value, callback) => { |
| | | // if (value) { |
| | | // callback() |
| | | // } else { |
| | | // callback(); |
| | | // } |
| | | // } |
| | | // const checkWork = (rule, value, callback) => { |
| | | // if (value) { |
| | | // callback() |
| | | // } else { |
| | | // callback(new Error('工作单位及职务不能为空')); |
| | | // } |
| | | // } |
| | | const checkNation = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | |
| | | callback(new Error('民族不能为空')); |
| | | } |
| | | } |
| | | const checkNaP = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('籍贯不能为空')); |
| | | } |
| | | } |
| | | // const checkNaP = (rule, value, callback) => { |
| | | // if (value) { |
| | | // callback() |
| | | // } else { |
| | | // callback(new Error('籍贯不能为空')); |
| | | // } |
| | | // } |
| | | const checkLiveAdd = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | |
| | | callback(new Error('现住址不能为空')); |
| | | } |
| | | } |
| | | const checkRegAdd = (rule, value, callback) => { |
| | | if (value) { |
| | | callback() |
| | | } else { |
| | | callback(new Error('户籍所在地不能为空')); |
| | | } |
| | | } |
| | | // const checkRegAdd = (rule, value, callback) => { |
| | | // if (value) { |
| | | // callback() |
| | | // } else { |
| | | // callback(new Error('户籍所在地不能为空')); |
| | | // } |
| | | // } |
| | | const checkFlag = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | |
| | | return { |
| | | evidence: { |
| | | pic: [], |
| | | userInfo: false, |
| | | userInfo: '', |
| | | }, |
| | | evidenceRules: { |
| | | userInfo: [ |
| | |
| | | illegalType: '', |
| | | name: '', |
| | | phoneCode: '', |
| | | certificateType: '', |
| | | certificateType: 703, |
| | | certificateCode: '', |
| | | educationDegree: '', |
| | | career: '', |
| | |
| | | ], |
| | | name: [ |
| | | { |
| | | trigger: 'blur', validator: checkName3 |
| | | required:true,trigger: 'blur', validator: checkName3 |
| | | } |
| | | ], |
| | | phoneCode: [ |
| | | { |
| | | trigger: 'blur', validator: checkPhone |
| | | required:true,trigger: 'blur', validator: checkPhone |
| | | } |
| | | ], |
| | | certificateType: [ |
| | |
| | | ], |
| | | certificateCode: [ |
| | | { |
| | | trigger: 'blur', validator: checkCode |
| | | required:true,trigger: 'blur', validator: checkCode |
| | | } |
| | | ], |
| | | educationDegree: [ |
| | |
| | | trigger: 'change', validator: checkWh |
| | | } |
| | | ], |
| | | career: [ |
| | | { |
| | | trigger: 'blur', validator: checkCareer |
| | | } |
| | | ], |
| | | work: [ |
| | | { |
| | | trigger: 'blur', validator: checkWork |
| | | } |
| | | ], |
| | | // career: [ |
| | | // { |
| | | // trigger: 'blur', validator: checkCareer |
| | | // } |
| | | // ], |
| | | // work: [ |
| | | // { |
| | | // trigger: 'blur', validator: checkWork |
| | | // } |
| | | // ], |
| | | nation: [ |
| | | { |
| | | trigger: 'blur', validator: checkNation |
| | | trigger: 'change', validator: checkNation |
| | | } |
| | | ], |
| | | nativePlace: [ |
| | | { |
| | | trigger: 'blur', validator: checkNaP |
| | | } |
| | | ], |
| | | // nativePlace: [ |
| | | // { |
| | | // trigger: 'blur', validator: checkNaP |
| | | // } |
| | | // ], |
| | | liveAddress: [ |
| | | { |
| | | trigger: 'blur', validator: checkLiveAdd |
| | | required:true,trigger: 'blur', validator: checkLiveAdd |
| | | } |
| | | ], |
| | | registerAddress: [ |
| | | { |
| | | trigger: 'blur', validator: checkRegAdd |
| | | } |
| | | ], |
| | | // registerAddress: [ |
| | | // { |
| | | // trigger: 'blur', validator: checkRegAdd |
| | | // } |
| | | // ], |
| | | }, |
| | | userFlag: false, |
| | | typeOptions: [ |
| | |
| | | value: 2 |
| | | } |
| | | ], |
| | | nationOptions: [], |
| | | cardOptions: [ |
| | | { |
| | | label: '身份证', |
| | |
| | | value: 2 |
| | | } |
| | | ], |
| | | degreeOptions:[ |
| | | degreeOptions: [ |
| | | { |
| | | label:'小学', |
| | | value:1 |
| | | label: '小学', |
| | | value: 1 |
| | | }, |
| | | { |
| | | label:'初中', |
| | | value:2 |
| | | label: '初中', |
| | | value: 2 |
| | | }, |
| | | { |
| | | label:'高中', |
| | | value:3 |
| | | label: '高中', |
| | | value: 3 |
| | | }, |
| | | { |
| | | label:'大学及以上', |
| | | value:4 |
| | | label: '大学及以上', |
| | | value: 4 |
| | | }, |
| | | ] |
| | | } |
| | | }, |
| | | created() { |
| | | this.getCardTypeList(); |
| | | this.getSchoolList(); |
| | | this.getNationList(); |
| | | console.log(this.mytype); |
| | | this.user.illegalType = JSON.parse(JSON.stringify(this.mytype)); |
| | | }, |
| | | methods: { |
| | | handleSuccess2(res, file, filelist) { |
| | |
| | | this.$refs.userForm.validate((valid) => { |
| | | console.log(valid); |
| | | if (valid) { |
| | | this.evidence.userInfo = true; |
| | | this.evidence.userInfo = this.user.name; |
| | | this.userFlag = false; |
| | | } else { |
| | | this.evidence.userInfo = false; |
| | |
| | | }) |
| | | }, |
| | | // 关闭当事人信息界面 |
| | | closeUserForm(){ |
| | | closeUserForm() { |
| | | this.userFlag = false; |
| | | }, |
| | | // 返回当前evidence和user对象 |
| | | backData(){ |
| | | const {user,evidence} = this; |
| | | this.$emit('getEvidence',{user,evidence}); |
| | | backData() { |
| | | const { user, evidence } = this; |
| | | this.$emit('getEvidence', { user, evidence }); |
| | | }, |
| | | // 删除图片 |
| | | handleRemove(index) { |
| | | this.evidence.pic.splice(index, 1); |
| | | }, |
| | | // 获取证件类型 |
| | | async getCardTypeList() { |
| | | this.cardOptions = await getTypeList(1, '03'); |
| | | }, |
| | | // 获取学历 |
| | | async getSchoolList() { |
| | | this.degreeOptions = await getTypeList(1, '04'); |
| | | }, |
| | | // 获取民族列表 |
| | | async getNationList() { |
| | | this.nationOptions = await getTypeList(1, '05'); |
| | | } |
| | | } |
| | | }, |
| | | watch: { |
| | | 'evidence.pic.length': { |
| | | handler(newLen, oldLen) { |
| | | if (newLen !== 0) { |
| | | this.$refs.evidenceForm.validate((valid) => { |
| | | if (valid) { |
| | | |
| | | } else { return false } |
| | | }) |
| | | } |
| | | }, |
| | | deep: true, |
| | | } |
| | | }, |
| | | props:['mytype'] |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .evidence { |
| | | line-height: 60px; |
| | | position: relative; |
| | | .evidence-item{ |
| | | display: flex; |
| | | } |
| | | .evidence-title { |
| | | line-height: 60px; |
| | | font-weight: 650; |
| | |
| | | } |
| | | |
| | | .img-list { |
| | | height: 80px; |
| | | height: 60px; |
| | | position: relative; |
| | | display: flex; |
| | | |
| | | img { |
| | | width: 60px; |
| | | height: 60px; |
| | | } |
| | | |
| | | .img { |
| | | height: 60px; |
| | | position: relative; |
| | | } |
| | | |
| | | .myicon { |
| | | position: absolute; |
| | | top: 0px; |
| | | right: 0px; |
| | | color: #4b9bb7; |
| | | } |
| | | } |
| | | } |
| | |
| | | background-color: #fbfdff; |
| | | border-radius: 4px; |
| | | } |
| | | .user-form{ |
| | | |
| | | .user-form { |
| | | position: absolute; |
| | | top: 0; |
| | | z-index: 3000; |
| | | background-color: #06122c; |
| | | .user-form-header{ |
| | | |
| | | .user-form-header { |
| | | background-color: #fff; |
| | | color: #4b9bb7; |
| | | display: flex; |
| | |
| | | align-items: center; |
| | | padding: 0 20px; |
| | | } |
| | | |
| | | padding-bottom: 60px; |
| | | } |
| | | |
| | | .user-form-content { |
| | | padding-top:20px; |
| | | padding-top: 20px; |
| | | |
| | | .user-item { |
| | | display: flex; |
| | | justify-content: flex-start; |
| | | |
| | | .el-input { |
| | | flex: 1; |
| | | } |
| | | |
| | | .el-select { |
| | | flex: 1; |
| | | |
| | | :deep(.el-input__inner){ |
| | | padding: 0px 15px; |
| | | } |
| | | } |
| | | } |
| | | |
| | | ::v-deep .el-textarea__inner { |
| | |
| | | <!-- 到达现场情况 --> |
| | | <MyArrive ref="arrive"></MyArrive> |
| | | <!-- 调查取证 --> |
| | | <MyEvidence ref="evidence"></MyEvidence> |
| | | <MyEvidence ref="evidence" :mytype="2"></MyEvidence> |
| | | <!-- 文种书类 --> |
| | | <MyBook ref="book"></MyBook> |
| | | <!-- <div class="result"> |
| | |
| | | illegalType: evidence.user.illegalType, |
| | | name: evidence.user.name, |
| | | phoneCode: evidence.user.phoneCode, |
| | | certificateType: `${evidence.user.certificateType}`, |
| | | certificateType: evidence.user.certificateType, |
| | | certificateCode: evidence.user.certificateCode, |
| | | educationDegree: `${evidence.user.educationDegree}`, |
| | | educationDegree: evidence.user.educationDegree, |
| | | career: evidence.user.career, |
| | | work: evidence.user.work, |
| | | nation: evidence.user.nation, |
| | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .ill { |
| | | padding: 20px 200px; |
| | | padding: 20px 200px 100px; |
| | | } |
| | | |
| | | .footer { |
| | |
| | | <!-- 到达现场情况 --> |
| | | <MyArrive ref="arrive"></MyArrive> |
| | | <!-- 调查取证 --> |
| | | <MyEvidence ref="evidence"></MyEvidence> |
| | | <MyEvidence ref="evidence" :mytype="1"></MyEvidence> |
| | | <!-- 底部按钮 --> |
| | | <div class="footer"> |
| | | <el-button @click="handleSubmit" type="primary">确定</el-button> |
| | |
| | | illegalType: evidence.user.illegalType, |
| | | name: evidence.user.name, |
| | | phoneCode: evidence.user.phoneCode, |
| | | certificateType: `${evidence.user.certificateType}`, |
| | | certificateType: evidence.user.certificateType, |
| | | certificateCode: evidence.user.certificateCode, |
| | | educationDegree: `${evidence.user.educationDegree}`, |
| | | educationDegree: evidence.user.educationDegree, |
| | | career: evidence.user.career, |
| | | work: evidence.user.work, |
| | | nation: evidence.user.nation, |
| | |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .vio { |
| | | padding: 20px 200px; |
| | | padding: 20px 200px 100px; |
| | | } |
| | | |
| | | .footer { |
| | |
| | | @selection-change="tableChange"> |
| | | <el-table-column type="selection" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="事件编号" min-width="10"> |
| | | <el-table-column prop="code" label="事件编号" min-width="18"> |
| | | <template slot-scope="scope"> |
| | | <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="10"> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="7"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="category" label="大类名称" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'"> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="小类名称" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="actionCause" label="案由" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '案由' : '所属社区'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="site" label="报警点位" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="mystatus===1?'10' :'20' "> |
| | | <template slot-scope="scope"> |
| | | <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div> |
| | | <div v-else>{{scope.row.site}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="streetId" label="所属区域" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="10"> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1"> |
| | | <template slot-scope="scope"> |
| | | <span>{{filterTime(scope.row.alarmTime)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="continueTime" label="持续时间" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="operation" label="操作" min-width="20"> |
| | | <template slot-scope="scope"> |
| | |
| | | <!-- 详情页展示 --> |
| | | <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView" |
| | | :before-close="handleClose"> |
| | | <MyDetail :info=info></MyDetail> |
| | | <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail> |
| | | <MyIllDetail :info=info v-else></MyIllDetail> |
| | | </el-dialog> |
| | | <!-- 上传页面 --> |
| | | <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果" |
| | |
| | | import uploadVio from './updateUser/uploadResult/vio' |
| | | import uploadIll from "./updateUser/uploadResult/ill" |
| | | import MyDetail from '@/components/detail' |
| | | import MyIllDetail from '@/components/illdetail' |
| | | import helper from '@/utils/mydate' |
| | | export default { |
| | | components: { |
| | | // updateUser, |
| | | uploadVio,uploadIll,MyDetail |
| | | uploadVio,uploadIll,MyDetail,MyIllDetail |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | ], |
| | | statusArr:[], |
| | | mystatus:0, |
| | | mystatus:1, |
| | | caseId:'', |
| | | } |
| | | }, |
| | |
| | | // 关闭上传界面 |
| | | closeDialog({flag}){ |
| | | this.dialogUpload = flag; |
| | | }, |
| | | filterTime(time){ |
| | | return helper(time); |
| | | } |
| | | } |
| | | } |
| | |
| | | @selection-change="tableChange"> |
| | | <el-table-column type="selection" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="事件编号" min-width="10"> |
| | | <el-table-column prop="code" label="事件编号" min-width="18"> |
| | | <template slot-scope="scope"> |
| | | <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="10"> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="7"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="category" label="大类名称" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'"> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="小类名称" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="actionCause" label="案由" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '案由' : '所属社区'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="site" label="报警点位" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="mystatus===1?'10' :'20' "> |
| | | <template slot-scope="scope"> |
| | | <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div> |
| | | <div v-else>{{scope.row.site}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="streetId" label="所属区域" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15"> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1"> |
| | | <template slot-scope="scope"> |
| | | <span>{{filterTime(scope.row.alarmTime)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="continueTime" label="持续时间" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'continueTime' :'materials'" :label="mystatus===1 ? '持续时间' : '违法建筑材料'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="operation" label="操作" min-width="20"> |
| | | <template slot-scope="scope"> |
| | |
| | | <!-- 详情页展示 --> |
| | | <el-dialog :visible.sync="dialogView" width="80%" title="基础信息(人工)" v-if="dialogView" |
| | | :before-close="handleClose"> |
| | | <MyDetail :info=info></MyDetail> |
| | | <MyDetail :info=info v-if="mystatus==1 ? true:false"></MyDetail> |
| | | <MyIllDetail :info=info v-else></MyIllDetail> |
| | | </el-dialog> |
| | | <!-- 上传页面 --> |
| | | <el-dialog :visible.sync="dialogUpload" width="60%" title="上传处置结果" |
| | |
| | | </div> |
| | | </template> |
| | | <script> |
| | | // import updateUser from "./updateUser" |
| | | import uploadVio from './updateUser/uploadResult/vio' |
| | | import uploadIll from "./updateUser/uploadResult/ill" |
| | | import MyDetail from '@/components/detail' |
| | | import helper from '@/utils/mydate' |
| | | import filterTime from '@/utils/mydate' |
| | | import MyIllDetail from '@/components/illdetail' |
| | | export default { |
| | | components: { |
| | | // updateUser, |
| | | uploadVio,uploadIll,MyDetail |
| | | uploadVio,uploadIll,MyDetail,MyIllDetail |
| | | }, |
| | | data() { |
| | | return { |
| | |
| | | }, |
| | | ], |
| | | statusArr:[], |
| | | mystatus:0, |
| | | mystatus:1, |
| | | caseId:'', |
| | | } |
| | | }, |
| | |
| | | <div class="input-form"> |
| | | <el-form ref="user" label-width="160px" autoComplete="on" :model="ill" :rules="createillRules" |
| | | label-position="right"> |
| | | <!-- 问题类型 |
| | | <el-form-item class="optionItem" label="问题类型:" prop="category"> |
| | | <el-select v-model="ill.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="categoryId"> |
| | | <el-select v-model="ill.categoryId" placeholder="请选择违建类别" size="small"> |
| | | <el-option v-for="item in bigKindList" :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="ill.type" placeholder="违建" disabled> |
| | | <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="categoryId"> |
| | | <el-select v-model="ill.categoryId" placeholder="请选择违建类别" size="small"> |
| | | <el-option v-for="item in bigKindList" :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="partyName"> |
| | | <el-input placeholder="请填写当事人姓名" v-model="ill.partyName"></el-input> |
| | | </el-form-item> |
| | | <!-- 当事人身份证号 --> |
| | | <el-form-item class="optionItems" label="当事人身份证号:" prop="partyIdCard"> |
| | | <el-input placeholder="请填写当事人身份证号" v-model="ill.partyIdCard"></el-input> |
| | | <el-input placeholder="请填写当事人身份证号" maxlength="18" v-model="ill.partyIdCard"></el-input> |
| | | </el-form-item> |
| | | <!-- 当事人联系电话 --> |
| | | <el-form-item class="optionItem" label="当事人联系电话:" prop="partyPhone"> |
| | | <el-input v-model="ill.partyPhone" placeholder="请填写当事人联系电话"></el-input> |
| | | <el-input v-model="ill.partyPhone" maxlength="11" placeholder="请填写当事人联系电话"></el-input> |
| | | </el-form-item> |
| | | <!-- 违建地点 --> |
| | | <el-form-item class="optionItems" label="违建地点:" prop="site"> |
| | | <el-input placeholder="请填写违建地点" v-model="ill.site"></el-input> |
| | | </el-form-item> |
| | | <!-- 所属社区 --> |
| | | <el-form-item class="optionItems" label="所属社区:" prop="communityId"> |
| | | <el-select v-model="ill.communityId" placeholder="请选择所属社区"> |
| | | <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 违建地点 --> |
| | | <el-form-item class="optionItems" label="违建地点:" prop="site"> |
| | | <el-input placeholder="请填写违建地点" v-model="ill.site"></el-input> |
| | | </el-form-item> |
| | | <!-- 所属社区 --> |
| | | <el-form-item class="optionItems" label="所属社区:" prop="communityId"> |
| | | <el-select v-model="ill.communityId" placeholder="请选择所属社区"> |
| | | <el-option v-for="item in typeList" :key="item.name" :label="item.name" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 身份证正反面照片 --> |
| | | <el-form-item class="optionItems" label="身份证正反面照片:" prop="positive"> |
| | | <template> |
| | |
| | | <el-form-item class="optionItems" label="违建具体位置:" prop="position"> |
| | | <el-input placeholder="请填写违建具体位置" v-model="ill.position"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItems" label="违法建设长、宽、高:" prop="buildingLength"> |
| | | <div class="area"> |
| | | <div class="area"> |
| | | <el-form-item class="optionItems" label="违法建设长、宽、高:" prop="buildingLength"> |
| | | <el-input placeholder="单位米" v-model="ill.buildingLength"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItems" label-width='0px' prop="buildingWidth"> |
| | | <el-input placeholder="单位米" v-model="ill.buildingWidth"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItems" label-width='0px' prop="buildingHigh"> |
| | | <el-input placeholder="单位米" v-model="ill.buildingHigh"></el-input> |
| | | </div> |
| | | </el-form-item> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item class="optionItems" label="违法建设面积:" prop="buildingArea"> |
| | | <el-input placeholder="请填写违法建设面积" v-model="ill.buildingArea"></el-input> |
| | | </el-form-item> |
| | |
| | | </div> |
| | | <div class="input-footer"> |
| | | <el-button type="primary" class="confirm" @click="handleUser">确定</el-button> |
| | | <el-button class="back">返回</el-button> |
| | | <el-button class="back" @click="handleBack">返回</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="map-area"> |
| | |
| | | </template> |
| | | <script> |
| | | import MyMap from '@/components/map' |
| | | import { validateName, validatePhone, validateCardId, validateNum } from '@/utils/validate' |
| | | export default { |
| | | components: { |
| | | MyMap |
| | |
| | | data() { |
| | | const checkArea = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设面积')) |
| | | } else { |
| | | callback(new Error('违法建设面积不能为空')) |
| | | } |
| | | } |
| | | const checkHigh = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设高度')) |
| | | } else { |
| | | callback(new Error('违法建设高度不能为空')); |
| | | |
| | |
| | | } |
| | | const checkWidth = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设宽度')) |
| | | } else { |
| | | callback(new Error('违法建设宽度不能为空')); |
| | | |
| | |
| | | } |
| | | const checkLength = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validateNum(value) ? callback() : callback(new Error('请输入正确的违法建设长度')) |
| | | } else { |
| | | callback(new Error('违法建设长度不能为空')); |
| | | |
| | |
| | | } |
| | | const checkIdCard = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validateCardId(value) ? callback() : callback(new Error('请输入正确的身份证号码')) |
| | | } else { |
| | | callback(new Error('当事人身份证号码不能为空')); |
| | | } |
| | | } |
| | | const checkName = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validateName(value) ? callback() : callback(new Error('请输入正确的当事人信息')) |
| | | } else { |
| | | callback(new Error('当事人姓名不能为空')); |
| | | } |
| | | } |
| | | const checkPhone = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | validatePhone(value) ? callback() : callback(new Error('请输入正确的手机号码')) |
| | | } else { |
| | | callback(new Error('当事人联系电话不能为空')); |
| | | } |
| | |
| | | } |
| | | return { |
| | | ill: { |
| | | buildingArea: 2.0, |
| | | buildingHigh: 2.0, |
| | | buildingLength: 2.0, |
| | | buildingWidth: 1.0, |
| | | buildingArea: '', |
| | | buildingHigh: '', |
| | | buildingLength: '', |
| | | buildingWidth: '', |
| | | // category: '', |
| | | categoryId: '', |
| | | communityId: '', |
| | | materials: "钢筋", |
| | | partyIdCard: "511025184612310213", |
| | | partyName: "单数大", |
| | | partyPhone: "17844631885", |
| | | position: "新地方新低点", |
| | | materials: "", |
| | | partyIdCard: "", |
| | | partyName: "", |
| | | partyPhone: "", |
| | | position: "", |
| | | positive: "", |
| | | negative: "", |
| | | site: "新地方", |
| | | site: "", |
| | | alarmTime: '', |
| | | }, |
| | | createillRules: { |
| | | buildingArea: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkArea |
| | | required: true, trigger: 'blur', validator: checkArea |
| | | } |
| | | ], |
| | | buildingHigh: [ |
| | |
| | | } |
| | | }, |
| | | created() { |
| | | const { getBigKind } = this; |
| | | const { getBigKind, getCommityList } = this; |
| | | // this.ill.category = this.mytype + 1; |
| | | getBigKind(); |
| | | getCommityList(); |
| | | }, |
| | | methods: { |
| | | handleUser() { |
| | |
| | | } |
| | | }) |
| | | }, |
| | | handleStop() { |
| | | this.refresh(); |
| | | }, |
| | | // 获取大类列表 |
| | | getBigKind() { |
| | | this.$axios({ |
| | |
| | | // console.log(res); |
| | | }) |
| | | }, |
| | | // 获取行政区域 |
| | | // 获取token |
| | | getToken() { |
| | | const token = sessionStorage.getItem('token'); |
| | |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | console.log(res); |
| | | this.ill.negative = baseUrl + res.data.url1; |
| | | }, |
| | | // 查询社区 |
| | | getCommityList() { |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: 'sccg/dict/query_type?level=1&typeCode=' + '10' |
| | | }) |
| | | .then(res => { |
| | | console.log(res); |
| | | }) |
| | | }, |
| | | handleBack(){ |
| | | this.$emit('changeDialog', { flag: false }); |
| | | } |
| | | }, |
| | | props: ['mytype', 'changeDialog','refresh'] |
| | | watch: { |
| | | 'ill.buildingLength': { |
| | | handler(newVal, oldVal) { |
| | | if (newVal) { |
| | | this.ill.buildingWidth !== '' && validateNum(newVal) && validateNum(this.ill.buildingWidth) ? this.ill.buildingArea = newVal * this.ill.buildingWidth : ''; |
| | | } |
| | | }, |
| | | deep: true, |
| | | }, |
| | | 'ill.buildingWidth': { |
| | | handler(newVal, oldVal) { |
| | | if (newVal) { |
| | | this.ill.buildingLength !== '' && validateNum(newVal) && validateNum(this.ill.buildingLength) ? this.ill.buildingArea = newVal * this.ill.buildingLength : ''; |
| | | } |
| | | }, |
| | | deep: true, |
| | | } |
| | | }, |
| | | props: ['mytype', 'changeDialog', 'refresh'] |
| | | } |
| | | </script> |
| | | <style lang="scss" scoped> |
| | |
| | | display: flex; |
| | | padding: 20px 50px; |
| | | |
| | | .user-item { |
| | | display: flex; |
| | | } |
| | | |
| | | .input-area { |
| | | flex: 1; |
| | | flex: 3; |
| | | padding: 10px 20px; |
| | | |
| | | .input-header { |
| | |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | .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-form { |
| | | |
| | | &::v-deep .el-input__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | |
| | | &::v-deep .el-textarea__inner { |
| | | background-color: #09152f; |
| | | border: 1px solid #17324c; |
| | | } |
| | | |
| | | |
| | | .upload-demo { |
| | | position: relative; |
| | | |
| | |
| | | } |
| | | |
| | | .map-area { |
| | | flex: 1; |
| | | flex: 2; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | methods: { |
| | | toShow(idx, lab) { |
| | | this.$confirm('您确定要去上报' + lab + '事件') |
| | | .then(_ => { |
| | | this.$emit('getPageProp',{flag:false,type:idx}); |
| | | }) |
| | | .catch(_ => { console.log('err') }); |
| | | this.$emit('getPageProp',{flag:false,type:idx}); |
| | | } |
| | | }, |
| | | props:['getPageProp'] |
| | |
| | | <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; |
| | |
| | | </el-dialog> |
| | | <!-- 事件登记 --> |
| | | <el-dialog :before-close="handleClose" :visible.sync="dialogNewAdd" |
| | | :title="newAddType === 0 ? '违规事件登记' : '违建事件登记' " width="60%" v-if="dialogNewAdd"> |
| | | :title="newAddType === 0 ? '违规事件登记' : '违建事件登记' " width="80%" v-if="dialogNewAdd"> |
| | | <!-- 违建登记 --> |
| | | <MyIll v-if="newAddType === 1" :refresh="getUserList" :mytype=newAddType |
| | | @changeDialog=changeDialog /> |
| | |
| | | @selection-change="tableChange"> |
| | | <el-table-column type="selection" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="事件编号" min-width="10"> |
| | | <el-table-column prop="code" label="事件编号" min-width="18"> |
| | | <template slot-scope="scope"> |
| | | <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="10"> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="7"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'category' :'category'" :label="mystatus===1 ? '大类名称' : '违建类别'" :min-width="mystatus===1?'10':'20'"> |
| | | </el-table-column> |
| | | <el-table-column :prop="mystatus === 1 ? 'type' :'site'" :label="mystatus===1 ? '小类名称' : '违建地点'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column :prop="mystatus === 1 ? 'actionCause' :'communityId'" :label="mystatus===1 ? '案由' : '所属社区'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'site' :''" :label="mystatus===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="mystatus===1?'10' :'20' "> |
| | | <template slot-scope="scope"> |
| | | <div v-if="mystatus ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div> |
| | | <div v-else>{{scope.row.site}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column :prop="mystatus === 1 ? 'streetId' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10"> |
| | | <el-table-column :prop="mystatus === 1 ? 'street' :'buildingArea'" :label="mystatus===1 ? '所属区域' : '违法建筑面积'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="mystatus===1"> |
| | | <template slot-scope="scope"> |
| | |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('审核意见不能为空')) |
| | | callback() |
| | | } |
| | | } |
| | | const checkFinal = (rule, value, callback) => { |
| | |
| | | // 提交审核意见 |
| | | handleSubmit() { |
| | | const { baseCase } = this; |
| | | this.$refs.viewForm.validate((valid) => { |
| | | this.$refs.opinionForm.validate((valid) => { |
| | | if (valid) { |
| | | this.$axios({ |
| | | method: 'put', |
| | |
| | | handleSubmit(mystatus) { |
| | | // this.getUserLoginInfo(); |
| | | const { baseCase } = this; |
| | | this.$axios({ |
| | | method: 'post', |
| | | url: 'sccg/check_handle/check', |
| | | data: { |
| | | baseCaseId: baseCase.id, |
| | | checkOpinion: baseCase.auditOpinion, |
| | | currentUser: baseCase.createUser, |
| | | status: mystatus, |
| | | this.$refs.viewForm.validate((valid) => { |
| | | if (valid) { |
| | | this.$axios({ |
| | | method: 'post', |
| | | url: 'sccg/check_handle/check', |
| | | data: { |
| | | baseCaseId: baseCase.id, |
| | | checkOpinion: baseCase.auditOpinion, |
| | | currentUser: baseCase.createUser, |
| | | status: mystatus, |
| | | } |
| | | }) |
| | | .then(res => { |
| | | console.log(res); |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: mystatus === 0 ? '驳回成功' : '审核通过' |
| | | }) |
| | | this.$emit('closeDialog', { flag: false }); |
| | | } |
| | | |
| | | }) |
| | | .catch(err => { console.log(err) }); |
| | | }else{ |
| | | return false; |
| | | } |
| | | }) |
| | | .then(res => { |
| | | console.log(res); |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: mystatus === 0 ? '驳回成功' : '审核通过' |
| | | }) |
| | | this.$emit('closeDialog', { flag: false }); |
| | | } |
| | | |
| | | }) |
| | | .catch(err => { console.log(err) }); |
| | | }, |
| | | // 获取当前用户登录信息 |
| | | getUserLoginInfo() { |
| | |
| | | @selection-change="tableChange"> |
| | | <el-table-column type="selection" min-width="5"> |
| | | </el-table-column> |
| | | <el-table-column prop="code" label="事件编号" min-width="10"> |
| | | <el-table-column prop="code" label="事件编号" min-width="18"> |
| | | <template slot-scope="scope"> |
| | | <el-link @click="JumpView(scope.row)">{{scope.row.code}}</el-link> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="10"> |
| | | <el-table-column prop="eventSource" label="问题来源" min-width="7"> |
| | | <template slot-scope="scope"> |
| | | <span>{{scope.row.eventSource === 2 ? '人工上报' : '视频上传'}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="category" label="大类名称" min-width="10"> |
| | | <el-table-column :prop="myproblem === 1 ? 'category' :'category'" :label="myproblem===1 ? '大类名称' : '违建类别'" :min-width="myproblem===1?'10':'20'"> |
| | | </el-table-column> |
| | | <el-table-column prop="type" label="小类名称" min-width="10"> |
| | | <el-table-column :prop="myproblem === 1 ? 'type' :'site'" :label="myproblem===1 ? '小类名称' : '违建地点'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="actionCause" label="案由" min-width="10"> |
| | | <el-table-column :prop="myproblem === 1 ? 'actionCause' :'communityId'" :label="myproblem===1 ? '案由' : '所属社区'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="site" label="报警点位" min-width="10"> |
| | | <el-table-column :prop="myproblem === 1 ? 'site' :''" :label="myproblem===1 ? '报警点位' : '违法建筑长、宽、高'" :min-width="myproblem===1?'10' :'20' "> |
| | | <template slot-scope="scope"> |
| | | <div v-if="myproblem ===2"><span>{{scope.row.buildingLength+'米'+'、'+ scope.row.buildingWidth+'米'+'、'+scope.row.buildingHigh+'米'}}</span></div> |
| | | <div v-else>{{scope.row.site}}</div> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="streetId" label="所属区域" min-width="10"> |
| | | <el-table-column :prop="myproblem === 1 ? 'street' :'buildingArea'" :label="myproblem===1 ? '所属区域' : '违法建筑面积'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15"> |
| | | <el-table-column prop="alarmTime" label="报警时间" min-width="15" v-if="myproblem===1"> |
| | | <template slot-scope="scope"> |
| | | <span>{{filterTime(scope.row.alarmTime)}}</span> |
| | | </template> |
| | | </el-table-column> |
| | | <el-table-column prop="continueTime" label="持续时间" min-width="10"> |
| | | <el-table-column :prop="myproblem === 1 ? 'continueTime' :'materials'" :label="myproblem===1 ? '持续时间' : '违法建筑材料'" min-width="10"> |
| | | </el-table-column> |
| | | <el-table-column prop="operation" label="操作" min-width="20"> |
| | | <template slot-scope="scope"> |
| | | <div class="btn"> |
| | | <span @click="handleExamine(scope.row)" v-if="instatus===7 ? true : false">审核</span> |
| | | <!-- v-if="instatus===7 ? true : false" --> |
| | | <span @click="handleExamine(scope.row)" v-if="instatus===7">审核</span> |
| | | <!-- <span class="line" v-if="instatus===7 ? true : false">|</span> --> |
| | | <span @click="handleClosure(scope.row)" v-if="instatus===8">结案</span> |
| | | </div> |
| | |
| | | </el-table-column> |
| | | <el-table-column prop="status" label="启用" min-width="5"> |
| | | <template slot-scope="scope"> |
| | | <el-switch class="switchStyle" v-model="scope.row.status" active-text="开" inactive-text="关" |
| | | active-color="#3fef9a" inactive-color="#000212" @change="handleChangeStatus(scope.row)"> |
| | | <!-- active-text="开" inactive-text="关" --> |
| | | <el-switch class="switchStyle" v-model="scope.row.status" |
| | | active-color="#3fef9a" inactive-color="#000212" disabled> |
| | | </el-switch> |
| | | </template> |
| | | </el-table-column> |
| | |
| | | <!-- <span>删除</span> --> |
| | | <span @click="handleUpdate(scope.row)">权限设置</span> |
| | | <span class="line">|</span> |
| | | <span @click="handleStop(scope.row)">停用</span> |
| | | <span @click="handleChangeStatus(scope.row)">{{scope.row.status === true ?'停用':'启用' }}</span> |
| | | <span class="line">|</span> |
| | | <span @click="handleDelete([scope.row.id])">删除</span> |
| | | </div> |
| | |
| | | // 修改用户状态 |
| | | handleChangeStatus(obj) { |
| | | let { id, status } = obj; |
| | | status == true ? status = 1 : status = 0; |
| | | console.log(id, status); |
| | | status == true ? status = 0 : status = 1; |
| | | this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => { |
| | | console.log(res); |
| | | if(res.code ===200){ |
| | | this.search(); |
| | | } |
| | | }) |
| | | }, |
| | | handleStop(obj) { |
| | | // let { id, status } = obj; |
| | | // status == true ? status = 1 : status = 0; |
| | | // console.log(id, status); |
| | | // this.$axios.post(`/sccg/role/updateStatus/` + id + '?status=' + status).then(res => { |
| | | // this.getUserList(); |
| | | // }) |
| | | }, |
| | | // 获取用户列表 |
| | | getUserList() { |
| | |
| | | .then(_ => { |
| | | this.dialogUpdate = false; |
| | | this.dialogCreate = false; |
| | | this.updateFlag = false; |
| | | done(); |
| | | }) |
| | | .catch(_ => { }); |
| | |
| | | :default-checked-keys="checkedIds" default-expand-all node-key="id"> |
| | | </el-tree> |
| | | </div> |
| | | <div class="my-tree__bottom"></div> |
| | | <div class="my-tree__right"></div> |
| | | <!-- <div class="my-tree__bottom"></div> --> |
| | | <!-- <div class="my-tree__right"></div> --> |
| | | </div> |
| | | <div class="selection"> |
| | | <el-button class="cancel" @click="resetRole">取消</el-button> |
| | |
| | | border-radius: 4px; |
| | | |
| | | .my-tree__wrap { |
| | | overflow: scroll; |
| | | overflow-y: scroll; |
| | | height: 200px; |
| | | } |
| | | |
| | |
| | | <el-form-item class="optionItem" label="角色名称:" prop="name"> |
| | | <el-input v-model="role.name" placeholder="请填写角色名称" disabled></el-input> |
| | | </el-form-item> |
| | | <!-- 角色类型 --> |
| | | <el-form-item class="optionItem" label="角色类型:" prop="roleType"> |
| | | <el-input v-model="role.roleType" placeholder="请选择角色类型" disabled></el-input> |
| | | </el-form-item> |
| | | <!-- 角色描述 --> |
| | | <el-form-item class="optionItem" label="角色描述:" prop="description"> |
| | | <el-input type="textarea" v-model="role.description" placeholder="请输入描述内容200字以内" disabled></el-input> |
| | |
| | | <div class="headerContent"> |
| | | <div class="search"> |
| | | <span>筛选条件:</span> |
| | | <el-input placeholder="请输入手机号进行查询" v-model="search"></el-input> |
| | | <el-input placeholder="请输入内容" v-model="search"></el-input> |
| | | <div class="findBtn"> |
| | | <el-button type="primary" @click="setSearch">查询</el-button> |
| | | </div> |
| | |
| | | border: 1pox solid #fff; |
| | | |
| | | .mainTitle { |
| | | line-height: 60px; |
| | | line-height:60px; |
| | | } |
| | | |
| | | .tools { |
| | | display: flex; |
| | | display : flex; |
| | | justify-content: space-between; |
| | | align-items: center; |
| | | padding: 0 20px; |
| | |
| | | // 清空表单 |
| | | resetForm() { |
| | | this.$refs.pwd.resetFields(); |
| | | this.$emit('closeDialog',{flag:false}); |
| | | } |
| | | } |
| | | } |