From f78386db30fc23cdfa77192e4d8c29aeaf8e71a9 Mon Sep 17 00:00:00 2001 From: luobisheng <727299681@qq.com> Date: 星期三, 23 十一月 2022 18:09:10 +0800 Subject: [PATCH] 上传处置结果处理 --- src/views/operate/fivepack/threepack/components/updateUser/index.vue | 1 src/api/operate/casequery.js | 6 + src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue | 21 +-- src/components/myUpload/index.vue | 105 +++++++++++++------- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue | 87 +++++++---------- src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue | 22 ++-- src/views/operate/disposal/casepool/dispatch/index.vue | 10 + 7 files changed, 135 insertions(+), 117 deletions(-) diff --git a/src/api/operate/casequery.js b/src/api/operate/casequery.js index 91d42c9..263e33b 100644 --- a/src/api/operate/casequery.js +++ b/src/api/operate/casequery.js @@ -5,7 +5,13 @@ return http.get('/sccg/base_case/query_case', params); }, + // 鑾峰彇澶勭疆缁撴灉璇︽儏 getBaseCaseDetail: (id) => { return http.get('/sccg/base_case/baseCaseDetail/' + id); + }, + + // 涓婁紶澶勭疆缁撴灉 + updateDisposeResult: (params) => { + return http.post('/sccg/dispatch_handle/addition_dispose_result', params); } } \ No newline at end of file diff --git a/src/components/myUpload/index.vue b/src/components/myUpload/index.vue index a7f4acb..799794e 100644 --- a/src/components/myUpload/index.vue +++ b/src/components/myUpload/index.vue @@ -1,6 +1,12 @@ <template> <div class="my-upload"> - <el-upload + <div v-if="pictureList.length > 0" class="image-box"> + <div v-for="image in pictureList" class="image-box-item"> + <i @click="handleDeletePicture(image)" class="el-icon-delete image-delete-icon"></i> + <el-image :key="image" class="image-content" :src="image" ></el-image> + </div> + </div> + <el-upload :file-list="fileList" action="/sccg/file/medias" :multiple="multiple" @@ -12,10 +18,10 @@ :list-type="listType" :on-remove="handleRemove" :headers="getToken()"> - <div class="upload-btn"> - <i class="el-icon-plus"></i> - <span>涓婁紶鍥剧墖</span> - </div> + <div class="upload-btn"> + <i class="el-icon-plus"></i> + <span>涓婁紶鍥剧墖</span> + </div> </el-upload> </div> </template> @@ -26,7 +32,7 @@ // 鏂囦欢鍒楄〃 fileList: [], // 鏄惁鏄剧ず鏂囦欢鍒楄〃 - flag: true, + flag: false, // 澶氶�� multiple: false, // 闄愬埗 @@ -80,6 +86,10 @@ // 绉婚櫎鏂囦欢 handleRemove(file, fileList){ this.$emit('delPictureUrl',{url:file.response.data.url1}); + }, + + handleDeletePicture(imageUrl) { + this.$emit('delPictureUrl', { url: imageUrl }); } }, props: { @@ -101,6 +111,58 @@ </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; + height: 100px; + margin: 0 10px; + + .image-content { + width: 100px; + height: 100px; + } + .image-delete-icon { + position: relative; + bottom: calc(100% - 50px); + left: calc(100% - 50px); + opacity: 0; + } + + .image-box-item:hover { + color: #ffffff; + opacity: .5; + .image-delete-icon { + z-index: 2; + opacity: 1; + } + } + } :deep(.el-upload--picture-card) { width: 100px; @@ -109,37 +171,6 @@ :deep(.el-upload-list__item){ width: 100px; height: 100px; - } - //.file-list { - // display: flex; - // flex-wrap: nowrap; - //} - .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; - } - } - .uploaded-image { - width: 0; - height: 100px; - display: flex; } } </style> \ No newline at end of file diff --git a/src/views/operate/disposal/casepool/dispatch/index.vue b/src/views/operate/disposal/casepool/dispatch/index.vue index 7b5c19e..d844f2f 100644 --- a/src/views/operate/disposal/casepool/dispatch/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/index.vue @@ -87,7 +87,7 @@ <!-- 涓婁紶椤甸潰 --> <el-dialog :visible.sync="dialogUpload" width="80%" title="涓婁紶澶勭疆缁撴灉" v-if="dialogUpload" :before-close="handleClose"> - <uploadVio v-if="mystatus === 1" :caseId="caseId" :mycode="caseCode" :vioData="vioData" @closeDialog="closeDialog"></uploadVio> + <uploadVio v-if="mystatus === 1" :imageResourceId="imageResourceId" :caseId="caseId" :mycode="caseCode" :vioData="vioData" @closeDialog="closeDialog"></uploadVio> <uploadIll v-else :caseId="caseId" :mycode="caseCode" @closeDialog="closeDialog" :illData="illData"></uploadIll> </el-dialog> <!-- tools --> @@ -131,6 +131,7 @@ data() { return { tableData: [], + imageResourceId: null, context: "", dialogUpload: false, dialogView: false, @@ -322,6 +323,7 @@ await casequery.getBaseCaseDetail(data.code) .then(({ baseCase, currentSitVo, filesPictureVo, handlePassVo }) => { this.vioData = currentSitVo; + this.imageResourceId = filesPictureVo.imageResources[0].id; }) .catch(err => this.$message.error(err)) this.dialogUpload = true; @@ -329,9 +331,9 @@ this.caseCode = data.code; }, // 鍏抽棴涓婁紶鐣岄潰 - closeDialog({ flag }) { - this.dialogUpload = flag; - this.getUserList(); + closeDialog() { + this.dialogUpload = false; + this.getUserList(); }, // 澶勭悊鏃堕棿 filterTime(time) { diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue index 7597782..dbf5693 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/arrive/index.vue @@ -5,7 +5,7 @@ <el-form ref="arriveForm" label-width="160px" :model="arrive" :rules="arriveRules" autoComplete="on"> <!-- 鍒拌揪鏃堕棿 --> <el-form-item label="鍒拌揪鏃堕棿:" prop="arrivalTime"> - <el-date-picker v-model="arrive.arrivalTime" type="datetime" placeholder="閫夋嫨鍒拌揪鏃堕棿"> + <el-date-picker v-model="arrive.arrivalTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="閫夋嫨鍒拌揪鏃堕棿"> </el-date-picker> </el-form-item> <!-- 鍒拌揪鍦板潃 --> @@ -25,7 +25,7 @@ <!-- 鐜板満鎯呭喌鐓х墖 --> <el-form-item label="鐜板満鎯呭喌鐓х墖:" prop="situationPic"> <div class="upImg" > - <MyUpload @setPictureUrl="setPicUrl" @delPictureUrl="delPicUrl"></MyUpload> + <MyUpload :picture-list="arrive.situationPic" @setPictureUrl="setPicUrl" @delPictureUrl="delPicUrl"></MyUpload> <div class="tip">{{ arrive.situationPic.length }} / 4</div> </div> </el-form-item> @@ -35,6 +35,7 @@ </template> <script> import MyUpload from "@/components/myUpload" +import { deepClone } from "@/utils/helper"; export default { components: { MyUpload @@ -103,7 +104,10 @@ } }, created() { - this.arrive = this.arriveData; + this.arrive = deepClone(this.arriveData); + if (this.arriveData) { + this.arrive.situationPic = this.arriveData.situationPic.split(','); + } }, methods: { handleSuccess(res, file, filelist) { @@ -139,17 +143,6 @@ delPicUrl({url}){ const baseUrl = 'http://140.143.152.226:8410/'; this.arrive.situationPic.splice(this.arrive.situationPic.indexOf(baseUrl + url),1); - console.log(this.arrive.situationPic); - } - }, - watch: { - 'arrive.situationPic.length': { - handler(newLen, oldLen) { - if (newLen !== 0) { - this.$refs.arriveForm.validateField('situationPic'); - } - }, - deep: true, } } } diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue index b4327cb..957a25a 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/components/evidence/index.vue @@ -15,7 +15,7 @@ </div> <!-- 鏃堕棿 --> <el-form-item label="鏃堕棿:" prop="investigationTime"> - <el-date-picker v-model="evidence.investigationTime" type="datetime" placeholder="閫夋嫨鏃堕棿"> + <el-date-picker v-model="evidence.investigationTime" value-format="yyyy-MM-dd HH:mm:ss" type="datetime" placeholder="閫夋嫨鏃堕棿"> </el-date-picker> </el-form-item> <!-- 鍦板潃 --> @@ -53,7 +53,7 @@ <el-form ref="userForm" label-width="120px" :model="user" :rules="userRules" autoComplete="on"> <!-- 绫诲瀷 --> <el-form-item label="绫诲瀷:" prop="illegalType"> - <el-input v-model="basecase"></el-input> + <el-input v-model="user.illegalType"></el-input> </el-form-item> <!-- 濮撳悕銆佹墜鏈哄彿 --> <div class="user-item"> @@ -131,8 +131,8 @@ </div> </template> <script> -import { getTypeList } from '@/utils/helper' -import {validateName,validatePhone,validateCardId} from '@/utils/validate' +import { deepClone, getTypeList } from '@/utils/helper' +import { validateName, validatePhone, validateCardId } from '@/utils/validate' import MyUpload from "@/components/myUpload" export default { components: { @@ -274,13 +274,12 @@ await this.getCardTypeList(); await this.getSchoolList(); await this.getNationList(); - this.user.illegalType = JSON.parse(JSON.stringify(this.mytype)); - if (this.evienceData) { - this.evidence = this.evienceData; - this.evidence.pic = this.evidence.pic.split(','); + if (this.evidenceData) { + this.evidence = deepClone(this.evidenceData); + this.evidence.pic = this.evidenceData.pic.split(','); this.user = this.evidence.partyInfo; - this.evidence.investigationTime = this.evidence.createTime; this.evidence.userInfo = this.evidence.partyInfo.name; + this.user.illegalType = JSON.parse(JSON.stringify(this.mytype)); } }, methods: { @@ -304,6 +303,7 @@ }, // 妫�楠寀ser checkUser() { + debugger; this.$refs.userForm.validate((valid) => { if (valid) { this.userFlag = false; @@ -342,7 +342,7 @@ setPicUrl({ url }) { const baseUrl = 'http://140.143.152.226:8410/'; if (this.evidence.pic.length < 4) { - this.evidence.pic.push(baseUrl + url) + this.evidence.pic.push(baseUrl + url); } }, //鍒犻櫎鍥剧墖 @@ -351,7 +351,7 @@ this.evidence.pic.splice(this.evidence.pic.indexOf(baseUrl + url),1); } }, - props:['mytype','mycode', 'evienceData'] + props:['mytype','mycode', 'evidenceData'] } </script> <style lang="scss" scoped> diff --git a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue index 6b1f6fc..ac96037 100644 --- a/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue +++ b/src/views/operate/disposal/casepool/dispatch/updateUser/uploadResult/vio/index.vue @@ -3,7 +3,7 @@ <!-- 鍒拌揪鐜板満鎯呭喌 --> <MyArrive ref="arrive" :arriveData="arriveData"></MyArrive> <!-- 璋冩煡鍙栬瘉 --> - <MyEvidence ref="evidence" :evienceData="evienceData" :mytype="1" :mycode="mycode"></MyEvidence> + <MyEvidence ref="evidence" :evidenceData="evidenceData" :mytype="1" :mycode="mycode"></MyEvidence> <!-- 搴曢儴鎸夐挳 --> <div class="footer"> <el-button @click="handleSubmit" type="primary">纭畾</el-button> @@ -14,7 +14,7 @@ <script> import MyArrive from '../components/arrive' import MyEvidence from "../components/evidence" -import { parseTime } from '@/utils/index' +import casequery from "@/api/operate/casequery"; export default { components: { @@ -23,13 +23,13 @@ data() { return { arriveData: null, - evienceData: null + evidenceData: null } }, - props: ['caseId', 'closeDialog','mycode', 'vioData'], + props: ['caseId', 'closeDialog','mycode', 'vioData', 'imageResourceId'], created() { this.arriveData = this.vioData.arrivalSituation; - this.evienceData = this.vioData.investigation; + this.evidenceData = this.vioData.investigation; }, methods: { handleSubmit() { @@ -40,51 +40,38 @@ if (valid) { evidenceForm.validate((flag) => { if (flag) { - this.$axios({ - method: 'post', - url: `sccg/dispatch_handle/addition_dispose_result?caseId=`+this.caseId+'&type=1', - data:{ - arrivalAddress: arrive.arrive.arrivalAddress, - arrivalTime: parseTime(arrive.arrive.arrivalTime), - situationExplain: arrive.arrive.situationExplain, - replyExplain: arrive.arrive.replyExplain, - situationPic: `${arrive.arrive.situationPic}`, - // - undertaker: evidence.evidence.undertaker, - assistant: evidence.evidence.assistant, - investigationTime: parseTime(evidence.evidence.investigationTime), - address: evidence.evidence.address, - caseAction: evidence.evidence.caseAction, - description: evidence.evidence.description, - pic: `${evidence.evidence.pic}`, - // - name: evidence.user.name, - phoneCode: evidence.user.phoneCode, - certificateType: evidence.user.certificateType, - certificateCode: evidence.user.certificateCode, - educationDegree: evidence.user.educationDegree, - career: evidence.user.career, - work: evidence.user.work, - nation: evidence.user.nation, - nativePlace: evidence.user.nativePlace, - liveAddress: evidence.user.liveAddress, - registerAddress: evidence.user.registerAddress, - } - }) - .then(res => { - if (res.code === 200) { - this.$message({ - type: 'success', - message:'涓婁紶鎴愬姛', - }) - this.$emit('closeDialog', { flag: false }); - }else{ - this.$message({ - type:'warning', - message:res.message - }) - } - }) + const arriveData = Object.assign({}, arrive.arrive); + const evidenceData = Object.assign({}, evidence.evidence); + const { partyInfo } = evidenceData; + const arrivalSituationId = arriveData.id; + const investigationId = evidenceData.id; + const partyInfoId = partyInfo.id; + const evidencePic = evidenceData.pic.join(','); + const situationPic = arriveData.situationPic.join(','); + delete evidenceData.id; + delete evidenceData.partyInfo; + delete evidenceData.pic; + delete arriveData.situationPic; + delete arriveData.id; + casequery.updateDisposeResult({ + caseId: this.caseId, + imageResourceId: this.imageResourceId, + pic: evidencePic, + arrivalSituationId, + situationPic, + partyInfoId, + investigationId, + ...arriveData, + ...evidenceData, + ...partyInfo + }) + .then(() => { + this.$message.success('鎿嶄綔鎴愬姛'); + this.$emit('closeDialog'); + }) + .catch(err => { + this.$message.error(err); + }) } else { return false; } diff --git a/src/views/operate/fivepack/threepack/components/updateUser/index.vue b/src/views/operate/fivepack/threepack/components/updateUser/index.vue index 558108f..3dc1d48 100644 --- a/src/views/operate/fivepack/threepack/components/updateUser/index.vue +++ b/src/views/operate/fivepack/threepack/components/updateUser/index.vue @@ -67,7 +67,6 @@ }; const validateStoreType = (rule, value, callback) => { - debugger; if (value) { callback(); } else { -- Gitblit v1.8.0