| | |
| | | import axios from "axios"; |
| | | import {getToken} from '@/utils/helper' |
| | | import http from "@/http"; |
| | | import { |
| | | getToken |
| | | } from '@/utils/helper' |
| | | const baseUrl = '/sccg/log_manage' |
| | | const token = { |
| | | 'Authorization':getToken() |
| | | 'Authorization': getToken() |
| | | } |
| | | export default { |
| | | // 获取日志列表 |
| | | getLogsList: (data) => axios({ |
| | | method: 'get', |
| | | url: baseUrl+'/query', |
| | | headers:{...token}, |
| | | params: data |
| | | }), |
| | | // getLogsList: (data) => axios({ |
| | | // method: 'get', |
| | | // url: baseUrl+'/query', |
| | | // headers:{...token}, |
| | | // params: data |
| | | // }), |
| | | getLogsList: (params) => { |
| | | return http.get('/sccg/log_manage/query', params); |
| | | }, |
| | | // 获取日志操作类型 |
| | | getLogsOperationType:() => axios({ |
| | | method:'get', |
| | | url:baseUrl+'/query_operationType', |
| | | headers:{...token}, |
| | | getLogsOperationType: () => axios({ |
| | | method: 'get', |
| | | url: baseUrl + '/query_operationType', |
| | | headers: { |
| | | ...token |
| | | }, |
| | | }), |
| | | // 导出日志 |
| | | exportLogs:(data)=>axios({ |
| | | method:'post', |
| | | url:baseUrl+'/export', |
| | | headers:{...token}, |
| | | params:data, |
| | | exportLogs: (data) => axios({ |
| | | method: 'post', |
| | | url: baseUrl + '/export', |
| | | headers: { |
| | | ...token |
| | | }, |
| | | params: data, |
| | | responseType: 'arraybuffer', |
| | | }) |
| | | }; |
| | | }; |
| | |
| | | <MyFilePicture |
| | | v-else-if="activeIndex === 2" |
| | | :filesPictureVo="filesPictureVo" |
| | | :pic="pic" |
| | | :media="media" |
| | | :mycode="mycode" |
| | | ></MyFilePicture> |
| | | <MySovleProblem |
| | |
| | | handlePassVo: {}, |
| | | currentSitVo: {}, |
| | | filesPictureVo: {}, |
| | | pic:[], |
| | | media:[] |
| | | }; |
| | | }, |
| | | created() { |
| | | console.log("created"); |
| | | const { info } = this; |
| | | this.baseCase = info.baseCase; |
| | | this.handlePassVo = info.handlePassVo; |
| | | this.currentSitVo = info.currentSitVo; |
| | | this.filesPictureVo = info.filesPictureVo; |
| | | console.log(info); |
| | | }, |
| | | methods: { |
| | | changeComponent(index) { |
| New file |
| | |
| | | <template> |
| | | <div class="my-upload"> |
| | | <div v-if="pictureList.length > 0" class="image-box"> |
| | | <div |
| | | v-for="image in pictureList" |
| | | :class="{ |
| | | 'image-box-item': true, |
| | | 'image-box-item-cover': isShowUpload, |
| | | }" |
| | | > |
| | | <span |
| | | v-if="isShowUpload" |
| | | @click="handleDeletePicture(image)" |
| | | class="image-delete-icon el-icon-delete" |
| | | ></span> |
| | | <video controls :src="image" width="100%" height="100%" /> |
| | | </div> |
| | | </div> |
| | | <el-upload |
| | | v-if="isShowUpload && pictureList.length < limit" |
| | | :file-list="fileList" |
| | | v-loading="loading" |
| | | element-loading-spinner="el-icon-loading" |
| | | element-loading-background="rgba(0, 0, 0, 0.8)" |
| | | action="" |
| | | :multiple="multiple" |
| | | :show-file-list="flag" |
| | | :limit="limit" |
| | | :list-type="listType" |
| | | :auto-upload="true" |
| | | :http-request="handleUpload" |
| | | style="margin-left: 14px" |
| | | > |
| | | <div class="upload-btn"> |
| | | <i class="el-icon-plus"></i> |
| | | <span>上传视频</span> |
| | | </div> |
| | | </el-upload> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | import imageManagement from "@/api/operate/imageManagement"; |
| | | |
| | | export default { |
| | | data() { |
| | | return { |
| | | // 文件列表 |
| | | fileList: [], |
| | | // 是否显示文件列表 |
| | | flag: false, |
| | | // 多选 |
| | | multiple: false, |
| | | // 限制 |
| | | limit: 4, |
| | | // 文件列表类型 |
| | | listType: "picture-card", |
| | | loading: false, |
| | | }; |
| | | }, |
| | | methods: { |
| | | // 验证上传文件 |
| | | validateFile(file) { |
| | | const isMp4 = file.type === "video/mp4"; |
| | | // 限制文件最大不能超过 300M |
| | | const isLt2M = file.size / 1024 / 1024 < 300; |
| | | |
| | | if (!isMp4) { |
| | | this.$message.error("视频只能是mp4格式!"); |
| | | } |
| | | if (!isLt2M) { |
| | | this.$message.error("上传头像图片大小不能超过 300MB!"); |
| | | } |
| | | return isMp4 && isLt2M; |
| | | }, |
| | | |
| | | handleUpload(data) { |
| | | this.loading = true; |
| | | const { file } = data; |
| | | const validate = this.validateFile(file); |
| | | if (!validate) { |
| | | return; |
| | | } |
| | | const formData = new FormData(); |
| | | formData.append("file", file); |
| | | imageManagement |
| | | .importImage(formData) |
| | | .then((url) => { |
| | | // .then(({ url1, url2, url3, url4 }) => { |
| | | // debugger |
| | | // const url = url1 ?? url2 ?? url3 ?? url4; |
| | | this.$emit("setPictureUrl", { url: url }); |
| | | this.loading = false; |
| | | }) |
| | | .catch((err) => { |
| | | this.loading = false; |
| | | this.$message.error(err); |
| | | }); |
| | | }, |
| | | |
| | | handleDeletePicture(imageUrl) { |
| | | this.$emit("delPictureUrl", { url: imageUrl }); |
| | | }, |
| | | }, |
| | | props: { |
| | | pictureList: { |
| | | type: Array, |
| | | default: () => [], |
| | | }, |
| | | isShowUpload: { |
| | | type: Boolean, |
| | | default: () => true, |
| | | }, |
| | | }, |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .my-upload { |
| | | display: flex; |
| | | flex-wrap: nowrap; |
| | | justify-content: flex-start; |
| | | margin-right: 5px; |
| | | |
| | | .upload-btn { |
| | | display: flex; |
| | | flex-direction: column; |
| | | justify-content: center; |
| | | align-items: center; |
| | | border-radius: 4px; |
| | | width: 100px; |
| | | height: 100px; |
| | | |
| | | &:hover i { |
| | | color: #409eff; |
| | | } |
| | | |
| | | i { |
| | | font-size: 30px; |
| | | font-weight: 650; |
| | | } |
| | | |
| | | span { |
| | | line-height: 22px; |
| | | } |
| | | } |
| | | .image-box { |
| | | display: flex; |
| | | flex-wrap: wrap; |
| | | height: 100px; |
| | | |
| | | .image-content { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | |
| | | .image-delete-icon { |
| | | position: absolute; |
| | | top: 45px; |
| | | left: 45px; |
| | | opacity: 0; |
| | | } |
| | | |
| | | .image-box-item { |
| | | position: sticky; |
| | | margin: 0 10px; |
| | | } |
| | | |
| | | .image-box-item-cover:hover { |
| | | .image-content { |
| | | box-shadow: #ffffff; |
| | | opacity: 0.5; |
| | | } |
| | | |
| | | .image-delete-icon { |
| | | color: red; |
| | | font-size: 14px; |
| | | z-index: 2; |
| | | opacity: 1; |
| | | cursor: pointer; |
| | | } |
| | | } |
| | | } |
| | | |
| | | :deep(.el-upload--picture-card) { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | :deep(.el-upload-list__item) { |
| | | width: 100px; |
| | | height: 100px; |
| | | } |
| | | } |
| | | </style> |
| | |
| | | }, |
| | | methods: { |
| | | handleSuccess(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.arrive.situationPic.length < 4) { |
| | | this.arrive.situationPic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | }, |
| | | // 设置上传成功之后的图片地址 |
| | | setPicUrl({ url }) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.arrive.situationPic.length < 4) { |
| | | this.arrive.situationPic.push(baseUrl + url) |
| | | } |
| | | }, |
| | | //删除图片 |
| | | delPicUrl({url}){ |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.arrive.situationPic.splice(this.arrive.situationPic.indexOf(baseUrl + url),1); |
| | | } |
| | | } |
| | |
| | | props: ['caseId', 'closeDialog','mycode', 'writ', 'illegalType'], |
| | | methods: { |
| | | handleSuccess1(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.writPic.length < 4) { |
| | | this.book.writPic.push(baseUrl + res.data.url1) |
| | | } |
| | | }, |
| | | handleSuccess2(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.originalPic.length < 4) { |
| | | this.book.originalPic.push(baseUrl + res.data.url1) |
| | | } |
| | | }, |
| | | handleSuccess3(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.rectifiedPic.length < 4) { |
| | | this.book.rectifiedPic.push(baseUrl + res.data.url1) |
| | | } |
| | | }, |
| | | handleSuccess4(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.otherPic.length < 4) { |
| | | this.book.otherPic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | |
| | | // 设置上传成功之后的图片地址 |
| | | writPic({ url }) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.originalPic.length < 4) { |
| | | this.book.writPic.push(baseUrl + url) |
| | | } |
| | | }, |
| | | //删除图片 |
| | | delWritPic({url}){ |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.book.writPic.splice(this.book.writPic.indexOf(baseUrl + url),1); |
| | | }, |
| | | |
| | | // 设置上传成功之后的图片地址 |
| | | otherPic({ url }) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.otherPic.length < 4) { |
| | | this.book.otherPic.push(baseUrl + url) |
| | | } |
| | | }, |
| | | //删除图片 |
| | | delOtherPic({url}){ |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.book.otherPic.splice(this.book.otherPic.indexOf(baseUrl + url),1); |
| | | }, |
| | | |
| | | // 设置上传成功之后的图片地址 |
| | | rectifiedPic({ url }) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.otherPic.length < 4) { |
| | | this.book.rectifiedPic.push(baseUrl + url) |
| | | } |
| | | }, |
| | | //删除图片 |
| | | delRectifiedPic({url}){ |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.book.rectifiedPic.splice(this.book.rectifiedPic.indexOf(baseUrl + url),1); |
| | | }, |
| | | // 设置上传成功之后的图片地址 |
| | | originalPic({ url }) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.book.otherPic.length < 4) { |
| | | this.book.originalPic.push(baseUrl + url) |
| | | } |
| | | }, |
| | | //删除图片 |
| | | delOriginalPic({url}){ |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.book.originalPic.splice(this.book.originalPic.indexOf(baseUrl + url),1); |
| | | }, |
| | | |
| | |
| | | }, |
| | | methods: { |
| | | handleSuccess2(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.evidence.pic.length < 4) { |
| | | this.evidence.pic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | }, |
| | | // 设置上传成功之后的图片地址 |
| | | setPicUrl({ url }) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.evidence.pic.length < 4) { |
| | | this.evidence.pic.push(baseUrl + url); |
| | | } |
| | | }, |
| | | //删除图片 |
| | | delPicUrl({url}){ |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.evidence.pic.splice(this.evidence.pic.indexOf(baseUrl + url),1); |
| | | } |
| | | }, |
| | |
| | | |
| | | }, |
| | | handleSuccess(res, file, filelist) { |
| | | <<<<<<< HEAD |
| | | console.log(res); |
| | | ======= |
| | | console.log(res) |
| | | >>>>>>> 948cca39e334dde8a3ef04c030f8d691edf30bf8 |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.ill.positive = baseUrl + res.data.url1; |
| | | |
| | | }, |
| | | handleSuccess2(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | this.ill.negative = baseUrl + res.data.url1; |
| | | } |
| | | }, |
| | |
| | | props:['getArrive'], |
| | | methods: { |
| | | handleSuccess(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.arrive.situationPic.length < 4) { |
| | | this.arrive.situationPic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | props:['getEvidence'], |
| | | methods: { |
| | | handleSuccess2(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.evidence.pic.length < 4) { |
| | | this.evidence.pic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | props:['getArrive'], |
| | | methods: { |
| | | handleSuccess(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.arrive.situationPic.length < 4) { |
| | | this.arrive.situationPic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | props:['getEvidence'], |
| | | methods: { |
| | | handleSuccess2(res, file, filelist) { |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | if (this.evidence.pic.length < 4) { |
| | | this.evidence.pic.push(baseUrl + res.data.url1) |
| | | } |
| | |
| | | <template> |
| | | <div class="vio"> |
| | | <div class="input-area"> |
| | | <div class="input-header"> |
| | | <div class="input-header__title">基础信息</div> |
| | | <div class="input-header__tip">填写事件基础信息</div> |
| | | </div> |
| | | <div class="input-form"> |
| | | <el-form ref="user" label-width="120px" autoComplete="on" :model="vio" :rules="createRoleRules" |
| | | label-position="right"> |
| | | <div class="user-item"> |
| | | <!-- 问题类型 --> |
| | | <el-form-item class="optionItem" label="问题类型:" prop="category"> |
| | | <el-select v-model="vio.category" placeholder="违规" disabled> |
| | | <el-option v-for="item in typeList" :key="item.label" :label="item.label" |
| | | :value="item.value"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- 大类名称 --> |
| | | <el-form-item class="optionItems" label="大类名称:" prop="categoryId"> |
| | | <el-select v-model="vio.categoryId" placeholder="请选择大类名称" @change="handleBigKindChange"> |
| | | <el-option v-for="item in bigKindList" :key="item.id" :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="user-item"> |
| | | <!-- 小类名称 --> |
| | | <el-form-item class="optionItems" label="小类名称:" prop="typeId"> |
| | | <el-select v-model="vio.typeId" placeholder="请选择小类名称" @change="handleSmallKindChange"> |
| | | <el-option v-for="item in smallKindList" :key="item.id" :label="item.name" |
| | | :value="item.id"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- 事件等级 --> |
| | | <el-form-item class="optionItems" label="事件等级:" prop="gradeId"> |
| | | <el-cascader |
| | | :show-all-levels="false" |
| | | v-model="vio.gradeId" |
| | | :props="{ value: 'id',label: 'name',children: 'children',emitPath:false}" |
| | | :options="eventLevelList" |
| | | ></el-cascader> |
| | | <div class="vio"> |
| | | <div class="input-area"> |
| | | <div class="input-header"> |
| | | <div class="input-header__title">基础信息</div> |
| | | <div class="input-header__tip">填写事件基础信息</div> |
| | | </div> |
| | | <div class="input-form"> |
| | | <el-form |
| | | ref="user" |
| | | label-width="120px" |
| | | autoComplete="on" |
| | | :model="vio" |
| | | :rules="createRoleRules" |
| | | label-position="right" |
| | | > |
| | | <div class="user-item"> |
| | | <!-- 问题类型 --> |
| | | <el-form-item class="optionItem" label="问题类型:" prop="category"> |
| | | <el-select v-model="vio.category" placeholder="违规" disabled> |
| | | <el-option |
| | | v-for="item in typeList" |
| | | :key="item.label" |
| | | :label="item.label" |
| | | :value="item.value" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- 大类名称 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="大类名称:" |
| | | prop="categoryId" |
| | | > |
| | | <el-select |
| | | v-model="vio.categoryId" |
| | | placeholder="请选择大类名称" |
| | | @change="handleBigKindChange" |
| | | > |
| | | <el-option |
| | | v-for="item in bigKindList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <div class="user-item"> |
| | | <!-- 小类名称 --> |
| | | <el-form-item class="optionItems" label="小类名称:" prop="typeId"> |
| | | <el-select |
| | | v-model="vio.typeId" |
| | | placeholder="请选择小类名称" |
| | | @change="handleSmallKindChange" |
| | | > |
| | | <el-option |
| | | v-for="item in smallKindList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- 事件等级 --> |
| | | <el-form-item class="optionItems" label="事件等级:" prop="gradeId"> |
| | | <el-cascader |
| | | :show-all-levels="false" |
| | | v-model="vio.gradeId" |
| | | :props="{ |
| | | value: 'id', |
| | | label: 'name', |
| | | children: 'children', |
| | | emitPath: false, |
| | | }" |
| | | :options="eventLevelList" |
| | | ></el-cascader> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 案由 --> |
| | | <el-form-item |
| | | class="optionItem anyou" |
| | | label="案由:" |
| | | prop="actionCause" |
| | | > |
| | | <el-select |
| | | v-model="vio.actionCause" |
| | | placeholder="请输入案由" |
| | | filterable |
| | | @blur="selectBlur" |
| | | > |
| | | <el-option |
| | | v-for="item in anYouList" |
| | | :key="item.id" |
| | | :label="item.name" |
| | | :value="item.name" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 所属街道 --> |
| | | <el-form-item class="optionItems" label="所属街道:" prop="streetId"> |
| | | <el-select |
| | | v-model="vio.streetId" |
| | | placeholder="请选择所属街道" |
| | | @change="handleStreet" |
| | | > |
| | | <el-option |
| | | v-for="item in streetList" |
| | | :key="item.id" |
| | | :label="item.regionName" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- 所属社区 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="所属社区:" |
| | | prop="communityId" |
| | | > |
| | | <el-select v-model="vio.communityId" placeholder="请选择所属社区"> |
| | | <el-option |
| | | v-for="item in communityList" |
| | | :key="item.id" |
| | | :label="item.regionName" |
| | | :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 事发地点 --> |
| | | <el-form-item class="optionItems" label="事发地点:" prop="site"> |
| | | <el-input |
| | | placeholder="请输入事发地详细位置" |
| | | v-model="vio.site" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 是否关联商铺 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="是否关联商铺:" |
| | | prop="linkShop" |
| | | > |
| | | <el-radio-group v-model="vio.linkShop" @change="handleLinkShop"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <!-- 关联商铺名称 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="关联商铺名称:" |
| | | prop="shopName" |
| | | > |
| | | <el-select |
| | | v-model="vio.shopName" |
| | | :disabled="vio.linkShop === 0" |
| | | placeholder="请填写关联商铺名称" |
| | | > |
| | | <el-option |
| | | v-for="store in storeList" |
| | | :key="store.id" |
| | | :value="store.id" |
| | | :label="store.storeName" |
| | | ></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 填写车牌号 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="填写车牌号:" |
| | | prop="carNumber" |
| | | > |
| | | <el-input |
| | | placeholder="请填写车牌号" |
| | | v-model="vio.carNumber" |
| | | ></el-input> |
| | | </el-form-item> |
| | | <!-- 问题描述 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="问题描述:" |
| | | prop="description" |
| | | > |
| | | <el-input |
| | | type="textarea" |
| | | :rows="5" |
| | | maxlength="200" |
| | | placeholder="请输入内容200字以内" |
| | | v-model="vio.description" |
| | | > |
| | | </el-input> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 报警时间 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="报警时间:" |
| | | prop="alarmTime" |
| | | > |
| | | <el-date-picker |
| | | v-model="vio.alarmTime" |
| | | type="datetime" |
| | | placeholder="选择报警时间" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <!-- 调度时限 --> |
| | | <el-form-item |
| | | class="optionItems" |
| | | label="调度时限:" |
| | | prop="limitTime" |
| | | > |
| | | <el-date-picker |
| | | v-model="vio.limitTime" |
| | | type="datetime" |
| | | placeholder="选择调度时限" |
| | | > |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item prop="url" label="图片:" min-width="8"> |
| | | <my-upload |
| | | :picture-list="imageList" |
| | | :is-show-upload="dialogType !== 'view'" |
| | | @setPictureUrl="setPictureUrl" |
| | | @delPictureUrl="delPictureUrl" |
| | | ></my-upload> |
| | | </el-form-item> |
| | | |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 案由 --> |
| | | <el-form-item class="optionItem anyou" label="案由:" prop="actionCause"> |
| | | <el-select v-model="vio.actionCause" placeholder="请输入案由" filterable @blur="selectBlur"> |
| | | <el-option v-for="item in anYouList" :key="item.id" :label="item.name" :value="item.name"> |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 所属街道 --> |
| | | <el-form-item class="optionItems" label="所属街道:" prop="streetId"> |
| | | <el-select v-model="vio.streetId" placeholder="请选择所属街道" @change="handleStreet"> |
| | | <el-option v-for="item in streetList" :key="item.id" :label="item.regionName" :value="item.id" |
| | | > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | <!-- 所属社区 --> |
| | | <el-form-item class="optionItems" label="所属社区:" prop="communityId"> |
| | | <el-select v-model="vio.communityId" placeholder="请选择所属社区"> |
| | | <el-option v-for="item in communityList" :key="item.id" :label="item.regionName" |
| | | :value="item.id" > |
| | | </el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 事发地点 --> |
| | | <el-form-item class="optionItems" label="事发地点:" prop="site"> |
| | | <el-input placeholder="请输入事发地详细位置" v-model="vio.site"></el-input> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 是否关联商铺 --> |
| | | <el-form-item class="optionItems" label="是否关联商铺:" prop="linkShop"> |
| | | <el-radio-group v-model="vio.linkShop" @change="handleLinkShop"> |
| | | <el-radio :label="1">是</el-radio> |
| | | <el-radio :label="0">否</el-radio> |
| | | </el-radio-group> |
| | | </el-form-item> |
| | | <!-- 关联商铺名称 --> |
| | | <el-form-item class="optionItems" label="关联商铺名称:" prop="shopName"> |
| | | <el-select v-model="vio.shopName" :disabled="vio.linkShop === 0" placeholder="请填写关联商铺名称"> |
| | | <el-option v-for="store in storeList" :key="store.id" :value="store.id" :label="store.storeName"></el-option> |
| | | </el-select> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 填写车牌号 --> |
| | | <el-form-item class="optionItems" label="填写车牌号:" prop="carNumber"> |
| | | <el-input placeholder="请填写车牌号" v-model="vio.carNumber"></el-input> |
| | | </el-form-item> |
| | | <!-- 问题描述 --> |
| | | <el-form-item class="optionItems" label="问题描述:" prop="description"> |
| | | <el-input type="textarea" :rows="5" maxlength="200" placeholder="请输入内容200字以内" |
| | | v-model="vio.description"> |
| | | </el-input> |
| | | </el-form-item> |
| | | <div class="user-item"> |
| | | <!-- 报警时间 --> |
| | | <el-form-item class="optionItems" label="报警时间:" prop="alarmTime"> |
| | | <el-date-picker v-model="vio.alarmTime" type="datetime" placeholder="选择报警时间"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | <!-- 调度时限 --> |
| | | <el-form-item class="optionItems" label="调度时限:" prop="limitTime"> |
| | | <el-date-picker v-model="vio.limitTime" type="datetime" placeholder="选择调度时限"> |
| | | </el-date-picker> |
| | | </el-form-item> |
| | | </div> |
| | | <!-- 填写反映人信息 --> |
| | | <el-form-item class="optionItems" label="填写反映人信息"> |
| | | </el-form-item> |
| | | <!-- 反映人情况 --> |
| | | <div class="user-item"> |
| | | <el-form-item class="optionItems" label="反映人:" prop="informant"> |
| | | <el-input v-model="vio.informant"></el-input> |
| | | </el-form-item> |
| | | <el-form-item class="optionItems" label="联系方式:" prop="informantPhoneCode"> |
| | | <el-input v-model="vio.informantPhoneCode"></el-input> |
| | | </el-form-item> |
| | | </div> |
| | | <el-form-item class="optionItems" label="身份证号:" prop="informantIdCard"> |
| | | <el-input v-model="vio.informantIdCard"></el-input> |
| | | </el-form-item> |
| | | </el-form> |
| | | </div> |
| | | <div class="input-footer"> |
| | | <el-button type="primary" class="confirm" @click="handleSubmit">确定</el-button> |
| | | <el-button class="back" @click="handleBack">返回</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="map-area"> |
| | | <!-- <MyMap /> --> |
| | | </div> |
| | | <el-form-item prop="url" label="视频:" min-width="8"> |
| | | <my-upload-media |
| | | :picture-list="mediaList" |
| | | :is-show-upload="dialogType !== 'view'" |
| | | @setPictureUrl="setMediaUrl" |
| | | @delPictureUrl="delMediaUrl" |
| | | ></my-upload-media> |
| | | </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="input-footer"> |
| | | <el-button type="primary" class="confirm" @click="handleSubmit" |
| | | >确定</el-button |
| | | > |
| | | <el-button class="back" @click="handleBack">返回</el-button> |
| | | </div> |
| | | </div> |
| | | <div class="map-area"> |
| | | <!-- <MyMap /> --> |
| | | </div> |
| | | </div> |
| | | </template> |
| | | <script> |
| | | // import MyMap from "@/components/map"; |
| | | import MyMap from "@/components/map/leafletMap.vue"; |
| | | import { validateName, validatePhone, validateCarNum, validateCardId } from '@/utils/validate' |
| | | import { getTypeList } from '@/utils/helper' |
| | | import { parseTime } from "@/utils/index" |
| | | import { |
| | | validateName, |
| | | validatePhone, |
| | | validateCarNum, |
| | | validateCardId, |
| | | } from "@/utils/validate"; |
| | | import { getTypeList } from "@/utils/helper"; |
| | | import { parseTime } from "@/utils/index"; |
| | | import { getStoreInfoList } from "@/api/operate/storeManagement"; |
| | | import MyUpload from "@/components/myUpload"; |
| | | import MyUploadMedia from "@/components/myUpload/media.vue"; |
| | | import { FILE_ORIGINAL_URL } from "@/utils"; |
| | | export default { |
| | | components: { |
| | | MyMap |
| | | components: { |
| | | MyMap, |
| | | MyUpload, |
| | | MyUploadMedia, |
| | | }, |
| | | data() { |
| | | const checkCause = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("案由不能为空")); |
| | | } |
| | | }; |
| | | const checkCategory = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("大类名称不能为空")); |
| | | } |
| | | }; |
| | | const checkCommunity = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("所属社区不能为空")); |
| | | } |
| | | }; |
| | | const checkDesc = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("问题描述不能为空")); |
| | | } |
| | | }; |
| | | const checkSite = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("事发地点不能为空")); |
| | | } |
| | | }; |
| | | const checkStreet = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("所属街道不能为空")); |
| | | } |
| | | }; |
| | | const checkType = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("小类不能为空")); |
| | | } |
| | | }; |
| | | const checkGrade = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("事件等级不能为空")); |
| | | } |
| | | }; |
| | | const checkDate = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("报警时间不能为空")); |
| | | } |
| | | }; |
| | | const checkName = (rule, value, callback) => { |
| | | if (value) { |
| | | validateName(value) |
| | | ? callback() |
| | | : callback(new Error("请输入正确的姓名")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const checkCardId = (rule, value, callback) => { |
| | | if (value) { |
| | | validateCardId(value) |
| | | ? callback() |
| | | : callback(new Error("请输入正确的身份证号码")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const checkPhone = (rule, value, callback) => { |
| | | if (value) { |
| | | validatePhone(value) |
| | | ? callback() |
| | | : callback(new Error("请输入正确的手机号")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | }; |
| | | const checkLink = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | if (this.vio.linkShop === 1) { |
| | | callback(new Error("关联商铺名字不能为空")); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | }; |
| | | const checkLimit = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error("调度时限时间不能为空")); |
| | | } |
| | | }; |
| | | return { |
| | | vio: { |
| | | actionCause: "", //案由 |
| | | carNumber: "", //车牌号 |
| | | categoryId: "", //大类 |
| | | communityId: "", //所属社区 |
| | | description: "", //问题描述 |
| | | informant: "", //反映人 |
| | | informantIdCard: "", //身份证号码 |
| | | informantPhoneCode: "", //反映人联系方式 |
| | | linkShop: 0, //是否关联商铺(0否1是) |
| | | shopName: "", //关联商铺名称 |
| | | site: "", //事发地点 |
| | | streetId: "", //所属街道 |
| | | typeId: "", //小类 |
| | | gradeId: "", //案件等级 |
| | | alarmTime: "", |
| | | limitTime: "", //调度时限 |
| | | }, |
| | | createRoleRules: { |
| | | //案由 |
| | | actionCause: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | validator: checkCause, |
| | | }, |
| | | ], |
| | | //大类 |
| | | categoryId: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkCategory, |
| | | }, |
| | | ], |
| | | //所属社区 |
| | | communityId: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkCommunity, |
| | | }, |
| | | ], |
| | | //问题描述 |
| | | description: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | validator: checkDesc, |
| | | }, |
| | | ], |
| | | informant: [ |
| | | { |
| | | required: false, |
| | | trigger: "blur", |
| | | validator: checkName, |
| | | }, |
| | | ], |
| | | informantIdCard: [ |
| | | { |
| | | required: false, |
| | | trigger: "blur", |
| | | validator: checkCardId, |
| | | }, |
| | | ], |
| | | informantPhoneCode: [ |
| | | { |
| | | required: false, |
| | | trigger: "blur", |
| | | validator: checkPhone, |
| | | }, |
| | | ], |
| | | // linkShop:0,//是否关联商铺(0否1是) |
| | | shopName: [ |
| | | { |
| | | required: false, |
| | | trigger: "blur", |
| | | validator: checkLink, |
| | | }, |
| | | ], |
| | | //事发地点 |
| | | site: [ |
| | | { |
| | | required: true, |
| | | trigger: "blur", |
| | | validator: checkSite, |
| | | }, |
| | | ], |
| | | //所属街道 |
| | | streetId: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkStreet, |
| | | }, |
| | | ], |
| | | //小类 |
| | | typeId: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkType, |
| | | }, |
| | | ], |
| | | //案件等级 |
| | | gradeId: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkGrade, |
| | | }, |
| | | ], |
| | | alarmTime: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkDate, |
| | | }, |
| | | ], |
| | | limitTime: [ |
| | | { |
| | | required: true, |
| | | trigger: "change", |
| | | validator: checkLimit, |
| | | }, |
| | | ], |
| | | }, |
| | | bigKindList: [], |
| | | smallKindList: [], |
| | | eventLevelList: [], |
| | | typeList: [ |
| | | { |
| | | label: "违规", |
| | | value: 1, |
| | | }, |
| | | { |
| | | label: "违建", |
| | | value: 2, |
| | | }, |
| | | ], |
| | | streetList: [], |
| | | communityList: [], |
| | | anYouList: [], |
| | | storeList: [], |
| | | imageList: [], |
| | | mediaList: [], |
| | | dialogType: "add", |
| | | }; |
| | | }, |
| | | created() { |
| | | const { setBigKindList, getStreetList, getEventLevel } = this; |
| | | this.vio.category = this.mytype + 1; |
| | | setBigKindList(); |
| | | getStreetList(0); |
| | | getEventLevel(); |
| | | this.getShopList(); |
| | | }, |
| | | methods: { |
| | | handleStop() { |
| | | this.refresh(); |
| | | }, |
| | | data() { |
| | | const checkCause = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('案由不能为空')) |
| | | } |
| | | // 设置大类 |
| | | 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; |
| | | } |
| | | const checkCategory = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('大类名称不能为空')) |
| | | } |
| | | }); |
| | | }, |
| | | // 设置案由 |
| | | async setAnYouList(id) { |
| | | let arr = await this.getAnYouList(); |
| | | this.anYouList = arr.filter((item) => { |
| | | if (item.parentId === id) { |
| | | return item; |
| | | } |
| | | const checkCommunity = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('所属社区不能为空')); |
| | | } |
| | | } |
| | | const checkDesc = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('问题描述不能为空')) |
| | | } |
| | | } |
| | | const checkSite = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('事发地点不能为空')) |
| | | } |
| | | } |
| | | const checkStreet = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('所属街道不能为空')) |
| | | } |
| | | } |
| | | const checkType = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('小类不能为空')) |
| | | } |
| | | } |
| | | const checkGrade = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('事件等级不能为空')) |
| | | } |
| | | } |
| | | const checkDate = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('报警时间不能为空')) |
| | | } |
| | | } |
| | | const checkName = (rule, value, callback) => { |
| | | if (value) { |
| | | validateName(value) ? callback() : callback(new Error('请输入正确的姓名')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | const checkCardId = (rule, value, callback) => { |
| | | if (value) { |
| | | validateCardId(value) ? callback() : callback(new Error('请输入正确的身份证号码')) |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | const checkPhone = (rule, value, callback) => { |
| | | if (value) { |
| | | validatePhone(value) ? callback() : callback(new Error('请输入正确的手机号')); |
| | | } else { |
| | | callback() |
| | | } |
| | | } |
| | | const checkLink = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | if (this.vio.linkShop === 1) { |
| | | callback(new Error('关联商铺名字不能为空')); |
| | | } else { |
| | | callback(); |
| | | } |
| | | } |
| | | } |
| | | const checkLimit = (rule, value, callback) => { |
| | | if (value) { |
| | | callback(); |
| | | } else { |
| | | callback(new Error('调度时限时间不能为空')) |
| | | } |
| | | } |
| | | return { |
| | | vio: { |
| | | actionCause: "",//案由 |
| | | carNumber: "",//车牌号 |
| | | categoryId: '',//大类 |
| | | communityId: '',//所属社区 |
| | | description: '',//问题描述 |
| | | informant: '',//反映人 |
| | | informantIdCard: '',//身份证号码 |
| | | informantPhoneCode: "",//反映人联系方式 |
| | | linkShop: 0,//是否关联商铺(0否1是) |
| | | shopName: "",//关联商铺名称 |
| | | site: '',//事发地点 |
| | | streetId: '',//所属街道 |
| | | typeId: '',//小类 |
| | | gradeId: '',//案件等级 |
| | | alarmTime: '', |
| | | limitTime: '',//调度时限 |
| | | }); |
| | | }, |
| | | // 查询大类列表 |
| | | async getBigKind() { |
| | | let arr = []; |
| | | await this.$axios({ |
| | | method: "get", |
| | | url: "sccg/violations/query/type_second", |
| | | }).then((res) => { |
| | | arr = res.data; |
| | | }); |
| | | return arr; |
| | | }, |
| | | // 获取小类列表 |
| | | async getSmallKind() { |
| | | let arr = []; |
| | | await this.$axios({ |
| | | method: "get", |
| | | url: "sccg/violations/query/type_third", |
| | | }).then((res) => { |
| | | arr = res.data; |
| | | }); |
| | | return arr; |
| | | }, |
| | | // 获取案件等级列表 |
| | | async getEventLevel() { |
| | | this.eventLevelList = await getTypeList(1, "02"); |
| | | }, |
| | | // 查询所属案由 |
| | | async getAnYouList() { |
| | | let arr = []; |
| | | await this.$axios({ |
| | | method: "get", |
| | | url: "sccg/violations/query/type_four", |
| | | }).then((res) => { |
| | | arr = res.data; |
| | | }); |
| | | return arr; |
| | | }, |
| | | // 提交注册信息 |
| | | handleSubmit() { |
| | | this.vio.pic = JSON.stringify(this.imageList); |
| | | this.vio.media = JSON.stringify(this.mediaList); |
| | | this.$refs.user.validate((valid) => { |
| | | if (valid) { |
| | | const { vio } = this; |
| | | this.$axios({ |
| | | method: "post", |
| | | url: "sccg/base_case/addition_violation", |
| | | data: { |
| | | ...vio, |
| | | alarmTime: parseTime(vio.alarmTime), |
| | | limitTime: parseTime(vio.limitTime), |
| | | }, |
| | | createRoleRules: { |
| | | //案由 |
| | | actionCause: [ |
| | | { |
| | | required: true, trigger: 'blur', validator: checkCause, |
| | | } |
| | | ], |
| | | //大类 |
| | | categoryId: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkCategory |
| | | } |
| | | ], |
| | | //所属社区 |
| | | communityId: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkCommunity |
| | | } |
| | | ], |
| | | //问题描述 |
| | | description: [ |
| | | { |
| | | required: true, trigger: 'blur', validator: checkDesc |
| | | } |
| | | ], |
| | | informant: [ |
| | | { |
| | | required: false, trigger: 'blur', validator: checkName |
| | | } |
| | | ], |
| | | informantIdCard: [ |
| | | { |
| | | required: false, trigger: 'blur', validator: checkCardId |
| | | } |
| | | ], |
| | | informantPhoneCode: [ |
| | | { |
| | | required: false, trigger: 'blur', validator: checkPhone |
| | | } |
| | | ], |
| | | // linkShop:0,//是否关联商铺(0否1是) |
| | | shopName: [ |
| | | { |
| | | required: false, trigger: 'blur', validator: checkLink |
| | | } |
| | | ], |
| | | //事发地点 |
| | | site: [ |
| | | { |
| | | required: true, trigger: 'blur', validator: checkSite |
| | | } |
| | | ], |
| | | //所属街道 |
| | | streetId: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkStreet |
| | | } |
| | | ], |
| | | //小类 |
| | | typeId: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkType |
| | | } |
| | | ], |
| | | //案件等级 |
| | | gradeId: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkGrade |
| | | } |
| | | ], |
| | | alarmTime: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkDate |
| | | } |
| | | ], |
| | | limitTime: [ |
| | | { |
| | | required: true, trigger: 'change', validator: checkLimit |
| | | } |
| | | ] |
| | | |
| | | }, |
| | | bigKindList: [], |
| | | smallKindList: [], |
| | | eventLevelList: [], |
| | | typeList: [ |
| | | { |
| | | label: '违规', |
| | | value: 1. |
| | | }, |
| | | { |
| | | label: '违建', |
| | | value: 2. |
| | | } |
| | | ], |
| | | streetList: [], |
| | | communityList: [], |
| | | anYouList: [], |
| | | storeList: [] |
| | | } |
| | | }, |
| | | created() { |
| | | const { setBigKindList, getStreetList, getEventLevel } = this; |
| | | this.vio.category = this.mytype + 1; |
| | | setBigKindList(); |
| | | getStreetList(0); |
| | | getEventLevel(); |
| | | this.getShopList(); |
| | | }, |
| | | methods: { |
| | | handleStop() { |
| | | this.refresh(); |
| | | }, |
| | | // 设置大类 |
| | | async setBigKindList() { |
| | | this.bigKindList = await this.getBigKind(); |
| | | }, |
| | | // 设置小类 |
| | | async setSmallKindList(id) { |
| | | let arr = await this.getSmallKind(); |
| | | this.smallKindList = arr.filter(item => { |
| | | if (item.parentId === id) { |
| | | return item; |
| | | } |
| | | }) |
| | | }, |
| | | // 设置案由 |
| | | async setAnYouList(id) { |
| | | let arr = await this.getAnYouList(); |
| | | this.anYouList = arr.filter(item => { |
| | | if (item.parentId === id) { |
| | | return item; |
| | | } |
| | | }) |
| | | }, |
| | | // 查询大类列表 |
| | | async getBigKind() { |
| | | let arr = []; |
| | | await this.$axios({ |
| | | method: 'get', |
| | | url: "sccg/violations/query/type_second", |
| | | }) |
| | | .then(res => { |
| | | arr = res.data; |
| | | }) |
| | | return arr |
| | | }, |
| | | // 获取小类列表 |
| | | async getSmallKind() { |
| | | let arr = []; |
| | | await this.$axios({ |
| | | method: 'get', |
| | | url: "sccg/violations/query/type_third", |
| | | }) |
| | | .then(res => { |
| | | arr = res.data; |
| | | }) |
| | | return arr |
| | | }, |
| | | // 获取案件等级列表 |
| | | async getEventLevel() { |
| | | this.eventLevelList = await getTypeList(1, '02'); |
| | | }, |
| | | // 查询所属案由 |
| | | async getAnYouList() { |
| | | let arr = []; |
| | | await this.$axios({ |
| | | method: 'get', |
| | | url: 'sccg/violations/query/type_four' |
| | | }) |
| | | .then(res => { |
| | | arr = res.data; |
| | | }) |
| | | return arr; |
| | | }, |
| | | // 提交注册信息 |
| | | handleSubmit() { |
| | | console.log(this.vio) |
| | | this.$refs.user.validate((valid) => { |
| | | if (valid) { |
| | | const { vio } = this; |
| | | this.$axios({ |
| | | method: 'post', |
| | | url: 'sccg/base_case/addition_violation', |
| | | data: { |
| | | ...vio, |
| | | alarmTime: parseTime(vio.alarmTime), |
| | | limitTime:parseTime(vio.limitTime), |
| | | } |
| | | }) |
| | | .then(res => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: 'success', |
| | | message: res.message |
| | | }) |
| | | this.$emit('changeDialog', { flag: false }); |
| | | this.refresh(); |
| | | } else { |
| | | this.$message({ |
| | | type: 'warning', |
| | | message: res.message, |
| | | }) |
| | | } |
| | | }) |
| | | } else { |
| | | return false; |
| | | } |
| | | }) |
| | | }, |
| | | // 返回 |
| | | handleBack() { |
| | | this.$emit('changeDialog', { flag: false }) |
| | | }, |
| | | // 获取街道信息 |
| | | async getStreetList(id) { |
| | | let arr |
| | | await this.$axios({ |
| | | method:'get', |
| | | url:`sccg/sccg_region/getChildren/${id}`, |
| | | }) |
| | | .then(res=>{ |
| | | if(res.code === 200){ |
| | | arr = res.data; |
| | | } |
| | | }) |
| | | this.streetList = arr; |
| | | }, |
| | | // 街道更改 |
| | | handleStreet(id) { |
| | | this.vio.communityId = ''; |
| | | this.$axios({ |
| | | method: 'get', |
| | | url: `sccg/sccg_region/getChildren/${id}` |
| | | }) |
| | | .then(res => { |
| | | this.communityList = res.data; |
| | | }) |
| | | }, |
| | | // 关联商铺 |
| | | handleLinkShop(value) { |
| | | value === 0 ? this.vio.shopName = '' : ''; |
| | | }, |
| | | // 大类选中 |
| | | handleBigKindChange(id) { |
| | | this.vio.actionCause = ''; |
| | | this.vio.typeId = ''; |
| | | this.setSmallKindList(id); |
| | | }, |
| | | // 小类选中 |
| | | handleSmallKindChange(id) { |
| | | this.vio.actionCause = ''; |
| | | this.setAnYouList(id); |
| | | }, |
| | | // 案由输入 |
| | | selectBlur(e) { |
| | | if (e.target.value) { |
| | | this.vio.actionCause = e.target.value; |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | this.$message({ |
| | | type: "success", |
| | | message: res.message, |
| | | }); |
| | | this.$emit("changeDialog", { flag: false }); |
| | | this.refresh(); |
| | | } else { |
| | | this.$message({ |
| | | type: "warning", |
| | | message: res.message, |
| | | }); |
| | | } |
| | | }, |
| | | |
| | | getShopList() { |
| | | getStoreInfoList({ current: 1, size: 100 }) |
| | | .then(({ list }) => { |
| | | this.storeList = list; |
| | | }) |
| | | .catch(err => { |
| | | this.$message.error(err) |
| | | }) |
| | | }); |
| | | } else { |
| | | return false; |
| | | } |
| | | }); |
| | | }, |
| | | // 返回 |
| | | handleBack() { |
| | | this.$emit("changeDialog", { flag: false }); |
| | | }, |
| | | // 获取街道信息 |
| | | async getStreetList(id) { |
| | | let arr; |
| | | await this.$axios({ |
| | | method: "get", |
| | | url: `sccg/sccg_region/getChildren/${id}`, |
| | | }).then((res) => { |
| | | if (res.code === 200) { |
| | | arr = res.data; |
| | | } |
| | | }); |
| | | this.streetList = arr; |
| | | }, |
| | | // 街道更改 |
| | | handleStreet(id) { |
| | | this.vio.communityId = ""; |
| | | this.$axios({ |
| | | method: "get", |
| | | url: `sccg/sccg_region/getChildren/${id}`, |
| | | }).then((res) => { |
| | | this.communityList = res.data; |
| | | }); |
| | | }, |
| | | // 关联商铺 |
| | | handleLinkShop(value) { |
| | | value === 0 ? (this.vio.shopName = "") : ""; |
| | | }, |
| | | // 大类选中 |
| | | handleBigKindChange(id) { |
| | | this.vio.actionCause = ""; |
| | | this.vio.typeId = ""; |
| | | this.setSmallKindList(id); |
| | | }, |
| | | // 小类选中 |
| | | handleSmallKindChange(id) { |
| | | this.vio.actionCause = ""; |
| | | this.setAnYouList(id); |
| | | }, |
| | | // 案由输入 |
| | | selectBlur(e) { |
| | | if (e.target.value) { |
| | | this.vio.actionCause = e.target.value; |
| | | } |
| | | }, |
| | | props: ['mytype', 'changeDialog', 'refresh'] |
| | | } |
| | | setPictureUrl({ url }) { |
| | | this.imageList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`); |
| | | // this.imagedata.url = this.imageList.join(","); |
| | | }, |
| | | delPictureUrl({ url }) { |
| | | this.imageList = this.imageList.filter((item) => item !== url); |
| | | // this.imagedata.url = this.imageList.join(","); |
| | | }, |
| | | |
| | | setMediaUrl({ url }) { |
| | | this.mediaList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`); |
| | | this.mediaList.url = this.mediaList.join(","); |
| | | }, |
| | | delMediaUrl({ url }) { |
| | | this.mediaList = this.mediaList.filter((item) => item !== url); |
| | | this.mediaList.url = this.mediaList.join(","); |
| | | }, |
| | | getShopList() { |
| | | getStoreInfoList({ current: 1, size: 100 }) |
| | | .then(({ list }) => { |
| | | this.storeList = list; |
| | | }) |
| | | .catch((err) => { |
| | | this.$message.error(err); |
| | | }); |
| | | }, |
| | | }, |
| | | props: ["mytype", "changeDialog", "refresh"], |
| | | }; |
| | | </script> |
| | | <style lang="scss" scoped> |
| | | .vio { |
| | | display: flex; |
| | | padding: 20px 10px 50px; |
| | | display: flex; |
| | | padding: 20px 10px 50px; |
| | | |
| | | .input-area { |
| | | flex: 3; |
| | | padding: 10px 20px; |
| | | .input-area { |
| | | flex: 3; |
| | | padding: 10px 20px; |
| | | |
| | | .input-header { |
| | | color: #4b9bb7; |
| | | .input-header { |
| | | color: #4b9bb7; |
| | | |
| | | .input-header__title { |
| | | line-height: 60px; |
| | | font-weight: 650; |
| | | font-size: 20px; |
| | | } |
| | | .input-header__title { |
| | | line-height: 60px; |
| | | font-weight: 650; |
| | | font-size: 20px; |
| | | } |
| | | |
| | | .input-header__tip { |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | |
| | | .user-item { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .input-form { |
| | | .el-form { |
| | | // &::v-deep .el-form-item__label { |
| | | // color: #4b9bb7; |
| | | // } |
| | | |
| | | // &::v-deep .el-input__inner { |
| | | // // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | // } |
| | | |
| | | // &::v-deep .el-textarea__inner { |
| | | // // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | // } |
| | | } |
| | | } |
| | | |
| | | .input-footer { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | .input-header__tip { |
| | | line-height: 40px; |
| | | } |
| | | } |
| | | |
| | | .map-area { |
| | | flex: 2; |
| | | .user-item { |
| | | display: flex; |
| | | justify-content: space-between; |
| | | } |
| | | |
| | | .anyou { |
| | | :deep(.el-select) { |
| | | display: block; |
| | | } |
| | | .input-form { |
| | | .el-form { |
| | | // &::v-deep .el-form-item__label { |
| | | // color: #4b9bb7; |
| | | // } |
| | | |
| | | // &::v-deep .el-input__inner { |
| | | // // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | // } |
| | | |
| | | // &::v-deep .el-textarea__inner { |
| | | // // background-color: #09152f; |
| | | // border: 1px solid #17324c; |
| | | // } |
| | | } |
| | | } |
| | | |
| | | .input-footer { |
| | | display: flex; |
| | | justify-content: center; |
| | | } |
| | | } |
| | | |
| | | .map-area { |
| | | flex: 2; |
| | | } |
| | | |
| | | .anyou { |
| | | :deep(.el-select) { |
| | | display: block; |
| | | } |
| | | } |
| | | } |
| | | </style> |
| | |
| | | debugger; |
| | | let imageData = this.imagedata.url.split(","); |
| | | imageData.forEach((url) => { |
| | | console.log( |
| | | "图片:" + `${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}` |
| | | ); |
| | | _imageList.push(`${FILE_ORIGINAL_URL}sccg/API/img?fileUrl=${url}`); |
| | | }); |
| | | this.imageList = _imageList; |
| | |
| | | startTime: mytime[0] !== "" ? parseTime(mytime[0]) : "", |
| | | sort: mysort, |
| | | }); |
| | | return arr.data.data; |
| | | return arr; |
| | | }, |
| | | // 批量下拉框操作 |
| | | async selectChange(list) { |
| | |
| | | methods: { |
| | | setPicUrl({ obj, value }) { |
| | | const { icon } = this; |
| | | const baseUrl = 'http://140.143.152.226:8410/'; |
| | | const baseUrl = ''; |
| | | for (let key in icon) { |
| | | if (key === value) { |
| | | icon[key] = baseUrl + obj.url1; |