From 99b614dcaa78b90fe8a680b0606d307a387b321e Mon Sep 17 00:00:00 2001 From: luobisheng <727299681@qq.com> Date: 星期二, 06 十二月 2022 17:59:49 +0800 Subject: [PATCH] 预警研判大类丶小类修改,案件编号内容 --- src/components/detail/index.vue | 31 +++------- src/views/operate/viewEvent/index.vue | 8 ++ src/views/operate/disposal/casepool/pool/createUser/vio/index.vue | 8 -- src/views/intelligentPatrol/studyJudge/index.vue | 89 ++++++++++++++++++++++------- src/api/baseInfo.js | 10 +++ 5 files changed, 94 insertions(+), 52 deletions(-) diff --git a/src/api/baseInfo.js b/src/api/baseInfo.js index ec470c3..8c79392 100644 --- a/src/api/baseInfo.js +++ b/src/api/baseInfo.js @@ -5,4 +5,14 @@ return http.get('/sccg/sccg_region/list', params); }, + // 鏌ヨ杩濊澶х被 + getCategoryList: (params) => { + return http.get('/sccg/violations/query/type_second', params); + }, + + //鏌ヨ杩濊灏忕被 + getTypeList: (params) => { + return http.get('/sccg/violations/query/type_third', params); + } + } \ No newline at end of file diff --git a/src/components/detail/index.vue b/src/components/detail/index.vue index 46df99b..6922398 100644 --- a/src/components/detail/index.vue +++ b/src/components/detail/index.vue @@ -6,7 +6,7 @@ <label class="data-title"> 闂绫诲瀷: </label> - <span class="data-detail">杩濊</span> + <span class="data-detail">{{ getCategoryLabel(baseCase.category) }}</span> </div> <div class="data-item__right"> <label class="data-title"> @@ -38,12 +38,6 @@ </div> </div> <div class="data-item"> - <!-- <div class="data-item__left"> - <label class="data-title"> - 鎵�灞炲尯鍘�: - </label> - <span class="data-detail">xxx</span> - </div> --> <div class="data-item__left"> <label class="data-title"> 鎵�灞炶閬�: @@ -57,14 +51,6 @@ <span class="data-detail">{{baseCase.communityText}}</span> </div> </div> - <!-- <div class="data-item"> - <div class="data-item__left"> - <label class="data-title"> - 鎵�灞炶閬�: - </label> - <span class="data-detail">{{baseCase.streetText}}</span> - </div> - </div> --> <div class="data-item"> <div class="data-item__left"> <label class="data-title"> @@ -138,6 +124,8 @@ import MyFilePicture from '@/components/filePictrue' import MySovleProblem from '@/components/solveProblem' import MyScene from '@/components/scene' +import { CATEGOTY } from "@/utils/helper"; + export default { components: { MyProcess, MyFilePicture, MySovleProblem, MyScene @@ -174,17 +162,18 @@ } }, created() { - const {info} = this; - this.baseCase = info.baseCase; - this.handlePassVo = info.handlePassVo; - this.currentSitVo = info.currentSitVo; - this.filesPictureVo = info.filesPictureVo; - console.log(info); + this.baseCase = this.info.baseCase; + this.handlePassVo = this.info.handlePassVo; + this.currentSitVo = this.info.currentSitVo; + this.filesPictureVo = this.info.filesPictureVo; }, methods: { changeComponent(index) { this.activeIndex = index; }, + getCategoryLabel(category) { + return CATEGOTY.find(item => item.value === category).label; + } }, props: ['info','mycode'] } diff --git a/src/views/intelligentPatrol/studyJudge/index.vue b/src/views/intelligentPatrol/studyJudge/index.vue index 63dc317..9364d2b 100644 --- a/src/views/intelligentPatrol/studyJudge/index.vue +++ b/src/views/intelligentPatrol/studyJudge/index.vue @@ -47,16 +47,28 @@ <el-form-item label="鎸佺画鏃堕棿:"> <span>{{ currentEvent.conntinueTime }}</span> </el-form-item> + <el-form-item label="鍏宠仈搴楅摵" prop="store"> + <el-select v-model="currentEvent.store" placeholder="璇烽�夋嫨鍏宠仈搴楅摵"> + <el-option v-for="store in storeList" :value="store.id" :label="store.storeName" :key="store.id" /> + </el-select> + </el-form-item> + <el-form-item v-if="currentEvent.store" label="搴楅摵寰楀垎:"> + <span>{{ getStoreScore(currentEvent.store) }}</span> + </el-form-item> <el-form-item label="澶勭悊鎰忚:" prop="advice"> <el-radio-group v-model="currentEvent.advice"> <el-radio :label="item.id" v-for="item in adviceList" :key="item.id">{{ item.label }}</el-radio> </el-radio-group> </el-form-item> <el-form-item label="澶х被鍚嶇О:" prop="categoryId"> - <el-input v-model="currentEvent.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О"></el-input> + <el-select v-model="currentEvent.categoryId" placeholder="璇烽�夋嫨澶х被鍚嶇О" @change="categoryChange"> + <el-option v-for="category in categoryOptions" :key="category.id" :value="category.id" :label="category.name" /> + </el-select> </el-form-item> <el-form-item label="灏忕被鍚嶇О:" prop="typeId"> - <el-input v-model="currentEvent.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О"></el-input> + <el-select v-model="currentEvent.typeId" placeholder="璇烽�夋嫨灏忕被鍚嶇О"> + <el-option v-for="type in typeOptions" :key="type.id" :value="type.id" :label="type.name" /> + </el-select> </el-form-item> <el-form-item label="杞︾墝鍙�:" prop="carNumber"> <el-input v-model="currentEvent.carNumber" placeholder="璇峰~鍐欒溅鐗屽彿鐮�"></el-input> @@ -65,7 +77,7 @@ <el-input type="textarea" :rows="5" v-model="currentEvent.description"></el-input> </el-form-item> <el-form-item> - <el-button @click="pageChange('prev')">涓婁竴鏉�</el-button> + <el-button :disabled="currentPage === 1" @click="pageChange('prev')">涓婁竴鏉�</el-button> <el-button @click.native.prevent="handleConfirm">纭</el-button> <el-button @click="pageChange('next')">涓嬩竴鏉�</el-button> </el-form-item> @@ -79,7 +91,10 @@ <script> import basecase from "@/api/operate/basecase"; +import baseInfo from "@/api/baseInfo"; +import { getStoreInfoList } from "@/api/operate/storeManagement"; import { FILE_ORIGINAL_URL } from "@/utils"; +import { validateCarNum } from "@/utils/validate"; export default { created() { @@ -89,8 +104,37 @@ this.countData = res; }) .catch(err => this.$message.error(err)) + getStoreInfoList({ current: 1, size: 100 }) + .then(({ list }) => { + this.storeList = list; + }) + .catch(err => { + this.$message.error(err) + }) + + baseInfo.getCategoryList() + .then(res => { + this.categoryOptions = res; + }) + .catch(err => this.$message.error(err)) + + baseInfo.getTypeList() + .then(res => { + this.typeList = res; + }) + .catch(err => this.$message.error(err)) }, data() { + const validateCarNumber = (rule, value, callback) => { + if (value) { + const result = validateCarNum(value); + if (result) { + callback(); + } else { + callback(new Error('璇疯緭鍏ユ纭殑杞︾墝鍙�')); + } + } + }; return { eventList: [], countData: { @@ -131,41 +175,34 @@ required: true, trigger:['blur', 'change'], message: '灏忕被鍚嶇О涓嶈兘涓虹┖' } ], - carNumber:[ - { - required: true, trigger:['blur', 'change'], message: '杞︾墝鍙蜂笉鑳戒负绌�' - } - ] + carNumber:[{ trigger:['blur', 'change'], validator: validateCarNumber }] }, imageList: [], - currentPage: 1 + currentPage: 1, + categoryOptions: [], + typeOptions: [], + storeList: [], + typeList: [] } }, methods:{ pageChange(type) { - if (this.eventList.length === this.currentPage) { - this.$message.warning('褰撳墠宸叉槸鏈�鍚庝竴椤�'); - return; - } if (type === 'next') { this.currentPage += 1; } else { this.currentPage -= 1; } - this.currentEvent = this.eventList[this.currentPage - 1]; + this.getInspectionData(); }, getInspectionData() { basecase.getInspectionData({ current: this.currentPage }) .then(({ records }) => { this.eventList = records; - this.eventList.forEach(item => { - if (item.picData) { - const imageUrls = item.picData.split(','); - this.imageList = imageUrls.map(url => `${FILE_ORIGINAL_URL}${url}`); - } - }) - this.currentEvent = this.eventList[this.currentPage - 1]; + this.currentEvent = this.eventList[0]; + if (this.currentEvent?.picData) { + this.imageList = this.currentEvent.picData.split(',').map(item => `${FILE_ORIGINAL_URL}${item}`); + } }) .catch(err => this.$message.error(err)) }, @@ -181,9 +218,17 @@ }) .catch(err => this.$message.error(err)) } else { - this.$message.warning('璇锋鏌ュ繀濉」') + this.$message.warning('璇锋鏌ュ繀濉」'); } }) + }, + + categoryChange(id) { + this.typeOptions = this.typeList.filter(type => type.parentId === id); + }, + + getStoreScore(storeId) { + return this.storeList.find(store => store.id === storeId).storeScore; } } } diff --git a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue index 2786350..7ce923f 100644 --- a/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue +++ b/src/views/operate/disposal/casepool/pool/createUser/vio/index.vue @@ -51,14 +51,6 @@ </el-option> </el-select> </el-form-item> - <!-- 鎵�灞炲尯鍘� --> - <!-- <el-form-item class="optionItems" label="鎵�灞炲尯鍘�:" prop="status"> - <el-select v-model="vio.type" placeholder="璇烽�夋嫨鎵�灞炲尯鍘�"> - <el-option v-for="item in typeList" :key="item.name" :label="item.name" :value="item.value" - :disabled="item.disabled"> - </el-option> - </el-select> - </el-form-item> --> <div class="user-item"> <!-- 鎵�灞炶閬� --> <el-form-item class="optionItems" label="鎵�灞炶閬�:" prop="streetId"> diff --git a/src/views/operate/viewEvent/index.vue b/src/views/operate/viewEvent/index.vue index 27d6f79..24ec25a 100644 --- a/src/views/operate/viewEvent/index.vue +++ b/src/views/operate/viewEvent/index.vue @@ -80,7 +80,7 @@ > <el-table-column prop="code" label="浜嬩欢缂栧彿" min-width="18"> <template slot-scope="scope"> - <el-link>{{ scope.row.code }}</el-link> + <el-link @click="handleView(scope.row)">{{ scope.row.code }}</el-link> </template> </el-table-column> <el-table-column prop="category" label="闂绫诲埆" min-width="8"> @@ -289,9 +289,15 @@ closeDialog({ flag }) { this.dialogExamine = flag; this.dialogClosure = flag; + this.dialogView = false; this.getList(); }, + async handleView(rowData) { + this.info = await casequery.getBaseCaseDetail(rowData.code); + this.dialogView = true; + }, + filterTime(time) { return helper(time); }, -- Gitblit v1.8.0