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