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