From f2138817fdd6e9141c5911514280b8d0b6ca08f1 Mon Sep 17 00:00:00 2001
From: hcong <1050828145@qq.com>
Date: 星期三, 20 十一月 2024 14:48:49 +0800
Subject: [PATCH] 子组件刷新父组件不刷新页面,表单验证,upload组件预览图片,弹窗放在组件内部,bug修复

---
 src/views/fysp/check/components/CompProblemAddOrUpd.vue |  676 +++++++++++++++++++++++++------------------------------
 1 files changed, 310 insertions(+), 366 deletions(-)

diff --git a/src/views/fysp/check/components/CompProblemAddOrUpd.vue b/src/views/fysp/check/components/CompProblemAddOrUpd.vue
index 91ba7d2..6fe60eb 100644
--- a/src/views/fysp/check/components/CompProblemAddOrUpd.vue
+++ b/src/views/fysp/check/components/CompProblemAddOrUpd.vue
@@ -1,210 +1,244 @@
 <template>
-  <div class="main-container">
-    <el-form :model="problem" label-width="auto" style="max-width: 95%">
-      <el-form-item label="闂浣嶇疆" prop="locationid">
-        <el-select
-          v-model="deepCopyProblem.locationid"
-          @change="onProLocationChange"
-          class="row"
-          :disabled="readonly"
+  <CompGenericWrapper type="dialog">
+    <template #content>
+      <div class="main-container">
+        <el-form
+          :rules="rules"
+          :model="deepCopyProblem"
+          label-width="auto"
+          style="max-width: 95%"
+          ref="formRef"
         >
-          <el-option
-            v-for="item in posList"
-            :key="item.index"
-            :label="item.text"
-            :value="item.index"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="闂绫诲瀷" prop="proType">
-        <el-select
-          v-model="proType"
-          @change="onProTypeChange"
-          class="row"
-          :disabled="readonly"
+          <el-form-item label="闂浣嶇疆" prop="locationid">
+            <el-select
+              v-model="deepCopyProblem.locationid"
+              @change="onProLocationChange"
+              class="row"
+              :disabled="readonly"
+            >
+              <el-option
+                v-for="item in posList"
+                :key="item.index"
+                :label="item.text"
+                :value="item.index"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="闂绫诲瀷" prop="_proType">
+            <el-select
+              v-model="deepCopyProblem._proType"
+              @change="onProTypeChange"
+              class="row"
+              :disabled="readonly"
+            >
+              <el-option
+                v-for="item in problemTypeOptions"
+                :key="item.typeid"
+                :label="item.typename"
+                :value="item.typename"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="闂鎻忚堪" prop="description">
+            <el-select
+              v-model="deepCopyProblem.description"
+              @change="onProDesChange"
+              class="row"
+              :disabled="readonly"
+            >
+              <el-option
+                v-for="item in descriptionOptions"
+                :key="item.guid"
+                :label="item.description"
+                :value="item.description"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item label="琛ュ厖璇存槑" :disabled="readonly" prop="proRemark">
+            <el-input
+              v-model="proRemark"
+              type="textarea"
+              @change="onProRemarkChange"
+              class="row"
+              placeholder="璇疯緭鍏�"
+              :disabled="readonly"
+            />
+          </el-form-item>
+          <el-form-item label="闂寤鸿" prop="advice">
+            <el-select
+              v-model="deepCopyProblem.advice"
+              class="row"
+              :disabled="readonly"
+              @change="onProAdviseChange"
+            >
+              <el-option
+                v-for="item in adviseOptions"
+                :key="item.adGuid"
+                :label="item.adName"
+                :value="item.adName"
+              />
+            </el-select>
+          </el-form-item>
+          <el-form-item
+            v-show="
+              problem &&
+              problem.guid &&
+              deepCopyProblem.advice &&
+              deepCopyProblem.advice != ''
+            "
+            label="闂寤鸿淇"
+            prop="_adviseEdit"
+            :disabled="false"
+          >
+            <el-input
+              v-model="deepCopyProblem._adviseEdit"
+              type="textarea"
+              @change="onProAdviseEditChange"
+              class="row"
+              placeholder="璇疯緭鍏ラ棶棰樺缓璁慨姝�"
+              :disabled="readonly"
+            />
+          </el-form-item>
+          <el-form-item label="闂鍥剧墖">
+            <el-row>
+              <el-col>
+                <el-button
+                  @click="chosePicFromAnyPic"
+                  v-show="!readonly"
+                  :disabled="fileList.length >= 3"
+                  >浠庡満鏅浘鐗囬�夊彇</el-button
+                >
+                <el-button
+                  @click="chosePicFromDevicePic"
+                  v-show="!readonly"
+                  :disabled="fileList.length >= 3"
+                  >浠庤澶囧浘鐗囬�夊彇</el-button
+                >
+                <el-button
+                  @click="chosePicFromLedgerPic"
+                  v-show="!readonly"
+                  :disabled="fileList.length >= 3"
+                  >浠庡彴璐﹂�夊彇</el-button
+                >
+                <el-button
+                  @click="choseChangePic"
+                  v-show="!readonly"
+                  :disabled="fileList.length >= 3"
+                  >浠庢枃浠跺す閫夊彇</el-button
+                >
+              </el-col>
+              <el-col v-if="!fileList || fileList.length <= 0">
+                <el-empty
+                  style="height: 145px"
+                  class="img-upload"
+                  description="璇锋坊鍔犲浘鐗�"
+                />
+              </el-col>
+              <el-col>
+                <el-upload
+                  v-show="fileList && fileList.length > 0"
+                  class="img-upload"
+                  ref="uploadRef"
+                  v-model:file-list="fileList"
+                  list-type="picture-card"
+                  multiple
+                  :auto-upload="false"
+                  crossorigin="Anonymous"
+                  :before-remove="beforeRemoveFile"
+                  :on-preview="handlePictureCardPreview"
+                  :disabled="readonly"
+                  accept="image/*"
+                >
+                  <template #trigger v-if="fileList.length < 3 && !readonly">
+                    <el-button
+                      v-if="fileList.length < 3"
+                      type="primary"
+                      id="uploadBtnId"
+                      style="display: none"
+                    ></el-button>
+                    <el-icon>
+                      <Plus />
+                    </el-icon>
+                  </template>
+                  <template #tip>
+                    <div style="color: #f56c6c">
+                      鏈�灏戜笂浼犱竴寮犲浘鐗囷紝鏈�澶氶�夋嫨涓夊紶鍥剧墖
+                    </div>
+                  </template>
+                </el-upload>
+              </el-col>
+            </el-row>
+          </el-form-item>
+          <el-form-item>
+            <el-button type="primary" @click="onSubmit" v-show="!readonly"
+              >淇濆瓨</el-button
+            >
+            <el-button @click="$emit('submit', false)" v-show="!readonly"
+              >鍙栨秷</el-button
+            >
+          </el-form-item>
+        </el-form>
+        <ArbitraryPhoto
+          :max-select="maxSelectImgCount - fileList.length"
+          v-model:dialog-visible="anyPhotoDialog"
+          @submit="handleSelectedAnyPhono"
+          :subtask="subtask"
+          :defaultFile="fileList"
+          ref="arbitraryPhotoRef"
         >
-          <el-option
-            v-for="item in problemTypeOptions"
-            :key="item.typeid"
-            :label="item.typename"
-            :value="item.typename"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="闂鎻忚堪" prop="description">
-        <el-select
-          v-model="deepCopyProblem.description"
-          @change="onProDesChange"
-          class="row"
-          :disabled="readonly"
+        </ArbitraryPhoto>
+        <CompLedgerPhoto
+          :max-select="maxSelectImgCount - fileList.length"
+          v-model:dialog-visible="ledgerPicDialog"
+          @submit="handleLedgerPicPhono"
+          :subtask="subtask"
+          :defaultFile="fileList"
+          ref="ledgerPhotoRef"
+        ></CompLedgerPhoto>
+        <CompDevicePhoto
+          :max-select="maxSelectImgCount - fileList.length"
+          v-model:dialog-visible="deiveceImgDialog"
+          @submit="handleSelectedDevicePhono"
+          :subtask="subtask"
+          :defaultFile="fileList"
+          ref="deiveceImgDialogRef"
         >
-          <el-option
-            v-for="item in descriptionOptions"
-            :key="item.guid"
-            :label="item.description"
-            :value="item.description"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item label="琛ュ厖璇存槑" :disabled="readonly" prop="proRemark">
-        <el-input
-          v-model="proRemark"
-          type="textarea"
-          @change="onProRemarkChange"
-          class="row"
-          placeholder="璇疯緭鍏�"
-          :disabled="readonly"
+        </CompDevicePhoto>
+        <el-image-viewer
+          v-if="previewDialogVisible"
+          :url-list="fileList.map((item) => item.url)"
+          :initial-index="initialIndex"
+          @close="previewDialogVisible = false"
+          alt="棰勮"
+          class="preview-pic"
         />
-      </el-form-item>
-      <el-form-item label="闂寤鸿" prop="advise">
-        <el-select
-          v-model="deepCopyProblem.advise"
-          class="row"
-          :disabled="readonly"
-          @change="onProAdviseChange"
-        >
-          <el-option
-            v-for="item in adviseOptions"
-            :key="item.adGuid"
-            :label="item.adName"
-            :value="item.adName"
-          />
-        </el-select>
-      </el-form-item>
-      <el-form-item
-        v-show="deepCopyProblem.advise && deepCopyProblem.advise != ''"
-        label="闂寤鸿淇"
-        prop="_adviseEdit"
-        :disabled="false"
-      >
-        <el-input
-          v-model="deepCopyProblem._adviseEdit"
-          type="textarea"
-          @change="onProAdviseEditChange"
-          class="row"
-          placeholder="璇疯緭鍏ラ棶棰樺缓璁慨姝�"
-          :disabled="readonly"
-        />
-      </el-form-item>
-      <div class="t-card_item">
-        闂鍥剧墖&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
-        <div>
-          <el-button
-            @click="chosePicFromAnyPic"
-            v-show="!readonly"
-            :disabled="fileList.length >= 3"
-            >浠庡満鏅浘鐗囬�夊彇</el-button
-          >
-          <el-button
-            @click="chosePicFromDevicePic"
-            v-show="!readonly"
-            :disabled="fileList.length >= 3"
-            >浠庤澶囧浘鐗囬�夊彇</el-button
-          >
-          <el-button
-            @click="chosePicFromLedgerPic"
-            v-show="!readonly"
-            :disabled="fileList.length >= 3"
-            >浠庡彴璐﹂�夊彇</el-button
-          >
-          <el-button
-            @click="choseChangePic"
-            v-show="!readonly"
-            :disabled="fileList.length >= 3"
-            >浠庢枃浠跺す閫夊彇</el-button
-          >
-        </div>
+        <!-- <el-dialog v-model="previewDialogVisible">
+          
+        </el-dialog> -->
       </div>
-      <el-upload
-        class="img-upload"
-        ref="uploadRef"
-        v-model:file-list="fileList"
-        list-type="picture-card"
-        multiple
-        :auto-upload="false"
-        crossorigin="Anonymous"
-        :before-remove="beforeRemoveFile"
-        :on-preview="handlePictureCardPreview"
-        :disabled="readonly"
-        accept="image/*"
-      >
-        <template #trigger v-if="fileList.length < 3 && !readonly">
-          <el-button
-            v-if="fileList.length < 3"
-            type="primary"
-            id="uploadBtnId"
-            style="display: none"
-          ></el-button>
-          <el-icon>
-            <Plus />
-          </el-icon>
-        </template>
-        <template #tip>
-          <div style="color: #f56c6c">鏈�灏戜笂浼犱竴寮犲浘鐗囷紝鏈�澶氶�夋嫨涓夊紶鍥剧墖</div>
-        </template>
-      </el-upload>
-      <el-form-item>
-        <el-button type="primary" @click="onSubmit" v-show="!readonly"
-          >淇濆瓨</el-button
-        >
-        <el-button @click="this.$emit('submited', false)" v-show="!readonly"
-          >鍙栨秷</el-button
-        >
-      </el-form-item>
-    </el-form>
-
-    <ArbitraryPhoto
-      :max-select="maxSelectImgCount - fileList.length"
-      v-if="anyPhotoDialog"
-      v-model:dialog-visible="anyPhotoDialog"
-      @submit="handleSelectedAnyPhono"
-      :subtask="subtask"
-      :defaultFile="fileList"
-      ref="arbitraryPhotoRef"
-    >
-    </ArbitraryPhoto>
-    <CompLedgerPhoto
-      :max-select="maxSelectImgCount - fileList.length"
-      v-if="ledgerPicDialog"
-      v-model:dialog-visible="ledgerPicDialog"
-      @submit="handleLedgerPicPhono"
-      :subtask="subtask"
-      :defaultFile="fileList"
-      ref="ledgerPhotoRef"
-    ></CompLedgerPhoto>
-    <CompDevicePhoto
-      :max-select="maxSelectImgCount - fileList.length"
-      v-if="deiveceImgDialog"
-      v-model:dialog-visible="deiveceImgDialog"
-      @submit="handleSelectedDevicePhono"
-      :subtask="subtask"
-      :defaultFile="fileList"
-      ref="deiveceImgDialogRef"
-    >
-    </CompDevicePhoto>
-
-    <el-dialog v-model="previewDialogVisible">
-      <img w-full :src="previewDialogImageUrl" alt="棰勮" class="preview-pic" />
-    </el-dialog>
-  </div>
+    </template>
+  </CompGenericWrapper>
 </template>
 <script>
+import CompGenericWrapper from './CompGenericWrapper.vue';
 import ArbitraryPhoto from './ArbitraryPhoto.vue';
-import LedgerPic from './CompLedgerPic.vue';
 import CompLedgerPhoto from './CompLedgerPhoto.vue';
 import CompDevicePhoto from './CompDevicePhoto.vue';
 import problemApi from '@/api/fysp/problemApi.js';
 
 import { $fysp } from '@/api/index.js';
 import fileUtil from '@/utils/fileUtils.js';
-import {  useCloned } from '@vueuse/core';
+import { useCloned } from '@vueuse/core';
 import { ElMessage } from 'element-plus';
 import deviceApi from '@/api/fysp/deviceApi';
+import { useFormConfirm } from '@/composables/formConfirm';
 export default {
+  emits: ['submit'],
   components: {
     ArbitraryPhoto,
     CompDevicePhoto,
-    CompLedgerPhoto
+    CompLedgerPhoto,
+    CompGenericWrapper
   },
   props: {
     readonly: {
@@ -235,6 +269,8 @@
   },
   data() {
     return {
+      // 鍒濆棰勮鍥剧墖index
+      initialIndex: -1,
       // 鍥剧墖閫夋嫨鏈�澶ф暟閲�
       maxSelectImgCount: 3,
       previewDialogVisible: false,
@@ -261,7 +297,7 @@
       month: -1,
       ledgerPicDialog: false,
       rules: {
-        proType: {
+        _proType: {
           required: true,
           message: '闂绫诲瀷涓嶈兘涓虹┖',
           trigger: 'change'
@@ -276,14 +312,9 @@
           message: '闂浣嶇疆涓嶈兘涓虹┖',
           trigger: 'change'
         },
-        advise: {
+        advice: {
           required: true,
           message: '闂寤鸿涓嶈兘涓虹┖',
-          trigger: 'change'
-        },
-        proRemark: {
-          required: true,
-          message: '琛ュ厖璇存槑涓嶈兘涓虹┖',
           trigger: 'change'
         }
       },
@@ -301,14 +332,6 @@
         this.pictureValidate();
       },
       deep: true
-    },
-    // 褰撻棶棰樺缓璁敼鍙樻椂闂寤鸿淇璺熺潃鏀瑰彉
-    deepCopyProblem: {
-      handler(nv, ov) {
-        // 鍥剧墖鏍¢獙
-        nv._adviseEdit = ov.advise;
-      },
-      deep: true
     }
   },
   computed: {
@@ -316,7 +339,7 @@
       const descriptions = [];
 
       this.problemTypeList.forEach((item) => {
-        if (item.typename == this.proType) {
+        if (item.typename == this.deepCopyProblem._proType) {
           descriptions.push(item);
         }
       });
@@ -333,123 +356,39 @@
       }, []);
     },
     adviseOptions() {
-      console.log(this.currProTypeGuid, this.problem.guid, this.suggestions);
-
       let problemGuid = this.currProTypeGuid || this.problem.guid;
       let array = this.suggestions.filter(
         (item) => item.adProblemtypeguid == problemGuid
       );
-      console.log(
-        this.suggestions.filter(
-          (item) => item.adProblemtypeguid == problemGuid
-        ),
-        this.adviseOptions
-      );
-
       return array;
     }
   },
   mounted() {
     this.initOptions();
-    this.getDeviceImgList();
   },
   methods: {
     onProAdviseChange(value) {
-      this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advise;
+      this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
     },
     handlePictureCardPreview(uploadFile) {
+      this.initialIndex = this.fileList.indexOf(uploadFile)
       this.previewDialogVisible = true;
       this.previewDialogImageUrl = uploadFile.url;
     },
     beforeDeiveceImgDialogclose() {
       this.deiveceImgDialog = false;
     },
-    // 鏍囧噯鍖栧睘鎬у悕
-    convertKeys(obj) {
-      // 灏嗕竴涓猨s瀵硅薄涓墍鏈塪i锛寃i锛宲i寮�澶寸殑灞炴�у叏閮ㄦ敼鎴愬幓鎺夎繖浜涘墠缂�骞朵笖閲嶆柊鍙樹负椹煎嘲寮忓懡鍚�
-      const newObj = {};
-      for (const key in obj) {
-        let newKey = key;
-        if (key.startsWith('di')) {
-          newKey = key.substring(2);
-        } else if (key.startsWith('wi')) {
-          newKey = key.substring(2);
-        } else if (key.startsWith('pi')) {
-          newKey = key.substring(2);
-        }
-        newKey = newKey.charAt(0).toLowerCase() + newKey.slice(1);
-        newObj[newKey] = obj[key];
-      }
-      return newObj;
-    },
-    // 淇濆瓨鐘舵�佷俊鎭�
-    saveStatus(device, status) {
-      var _picUrl = $fysp.imgUrl + status.dlPicUrl;
-      device._picUrl = _picUrl;
-      status._picUrl = _picUrl;
-      if ('_statusList' in device) {
-        device._statusList.push(status);
-      } else {
-        device._statusList = Array.of(status);
-      }
-      // 鎺掑簭
-      device._statusList.sort(function (x, y) {
-        return new Date(x.dlCreateTime) - new Date(y.dlCreateTime); //	闄嶅簭锛屽崌搴忓垯鍙嶄箣
-      });
-    },
-    async getDeviceImgList() {
-      this.deviceImgObjList = [];
-      for (const deviceTopTypeElement of this.deviceTopTypes) {
-        const topTypeId = deviceTopTypeElement.id;
-        await deviceApi
-          .fetchDevices(this.subtask.sceneId, topTypeId)
-          .then((result) => {
-            // 鏍囧噯鍖栧睘鎬у悕
-            for (let i = 0; i < result.data.length; i++) {
-              var element = this.convertKeys(result.data[i]);
-              // 鑾峰彇璁惧鐘舵�佷俊鎭�
-              let data = {
-                deviceId: element.id,
-                sceneId: element.sceneGuid,
-                deviceTypeId: topTypeId
-              };
-              deviceApi
-                .fetchDeviceStatus(data)
-                .then((status) => {
-                  var statusData = status.data;
-                  var imgPaths = [];
-
-                  if (statusData) {
-                    if (statusData.length == 0) {
-                      this.deviceImgObjList.push(element);
-                      return;
-                    }
-                    element = this.convertKeys(result.data[i]);
-                    for (let j = 0; j < statusData.length; j++) {
-                      // 澶嶅埗鍑轰竴涓澶囧璞�
-                      var newDevice = useCloned(element).cloned.value;
-                      const statusItem = statusData[j];
-                      // 璁惧瀵硅薄娣诲姞涓�涓睘鎬у垪琛ㄥ睘鎬х敤鏉ヤ繚瀛樿澶囩姸鎬�
-                      this.saveStatus(newDevice, statusItem);
-                      newDevice.dlLocation = statusItem.dlLocation;
-                      newDevice.topTypeId = topTypeId;
-
-                      this.deviceImgObjList.push(newDevice);
-                    }
-                  }
-                })
-                .catch((err) => {});
-            }
-          });
-      }
-    },
     initOptions() {
+      if (!this.problem || !this.subtask || !this.topTask) {
+        return;
+      }
       if (this.problem == undefined || this.problem == null) {
         this.deepCopyProblem = {};
       } else {
         this.deepCopyProblem = useCloned(this.problem).cloned.value;
         this.currProTypeGuid = this.problem.guid;
-        this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advise;
+        this.deepCopyProblem.advice = this.deepCopyProblem.advise;
+        this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
       }
 
       this.type = 'guid' in this.deepCopyProblem ? 1 : 0;
@@ -471,7 +410,7 @@
             currDescription = currProName;
             this.problemTypeList.forEach((item) => {
               if (item.description == currDescription) {
-                this.proType = item.typename;
+                this.deepCopyProblem._proType = item.typename;
               }
             });
             this.deepCopyProblem.description = currDescription;
@@ -484,7 +423,7 @@
 
             this.problemTypeList.forEach((item) => {
               if (item.description === currDescription) {
-                this.proType = item.typename;
+                this.deepCopyProblem._proType = item.typename;
               }
             });
             this.deepCopyProblem.description = currDescription;
@@ -531,6 +470,7 @@
       }
     },
     handleLedgerPicPhono(data) {
+      this.beforeLedgerPicDialogclose();
       let isExist = false;
       for (const item of data) {
         for (const already of this.fileList) {
@@ -572,8 +512,9 @@
       // 榛樿闂鎻忚堪鍜岄棶棰樺缓璁负绗竴涓�
       this.currProTypeGuid = this.descriptionOptions[0].guid;
       this.deepCopyProblem.description = this.descriptionOptions[0].description;
-      this.deepCopyProblem.advise = this.adviseOptions[0].adName;
-      this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advise;
+      this.onProDesChange(this.deepCopyProblem.description);
+      this.deepCopyProblem.advice = this.adviseOptions[0].adName;
+      this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
     },
     findProByProDesName(name) {
       let result;
@@ -586,15 +527,15 @@
     },
     onProDesChange(value) {
       let currPro = this.findProByProDesName(value);
-      this.deepCopyProblem.advise = '';
       this.currProTypeGuid = currPro.guid;
       // this.deepCopyProblem.description = currPro.description;
       this.changeProblemname();
-      this.deepCopyProblem.advise = '';
-
       var adName =
         this.adviseOptions.length == 0 ? '' : this.adviseOptions[0].adName;
-      this.deepCopyProblem.advise = adName;
+      this.deepCopyProblem.advice = adName;
+      this.$nextTick(() => {
+        this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
+      });
     },
     onProLocationChange(value) {
       this.posList.forEach((item) => {
@@ -620,70 +561,74 @@
       }
       return true;
     },
-    // TODO
-    validateForm() {},
     onSubmit() {
-      this.validateForm();
-      // 鍥剧墖鏍¢獙
-      if (!this.pictureValidate()) {
-        return;
-      }
-      // 鏁版嵁鍑嗗
-      let deepCopyPro = useCloned(this.deepCopyProblem).cloned.value;
-      let data = new FormData();
-      var picUrls = [];
-      this.fileList.forEach((item) => {
-        if (!('guid' in item)) {
-          // 鏂扮殑
-          let exclude = false;
-          for (let index = 0; index < this.oldFileList.length; index++) {
-            const element = this.oldFileList[index];
-            if (item.url == element.url) {
-              exclude = true;
-              break;
+      this.$refs.formRef.validate((valid) => {
+        if (valid && this.pictureValidate()) {
+          // 鏁版嵁鍑嗗
+          let deepCopyPro = useCloned(this.deepCopyProblem).cloned.value;
+          let data = new FormData();
+          var picUrls = [];
+          this.fileList.forEach((item) => {
+            if (!('guid' in item)) {
+              // 鏂扮殑
+              let exclude = false;
+              for (let index = 0; index < this.oldFileList.length; index++) {
+                const element = this.oldFileList[index];
+                if (item.url == element.url) {
+                  exclude = true;
+                  break;
+                }
+              }
+              if (!exclude) {
+                picUrls.push(item.url);
+              }
+              exclude = false;
+              // picUrls.push(item)
             }
+          });
+          if (this.type == 1) {
+            let deleteImgCopy = this.deleteImg;
+            fileUtil.getImageFiles(picUrls, function (files) {
+              data.append('deleteImg', deleteImgCopy);
+              deepCopyPro.advise = deepCopyPro.advice;
+              delete deepCopyPro['advice'];
+              delete deepCopyPro['mediafileList'];
+              delete deepCopyPro['description'];
+              delete deepCopyPro['_adviseEdit'];
+              delete deepCopyPro['_proType'];
+              delete deepCopyPro['proType'];
+              data.append('problem', JSON.stringify(deepCopyPro));
+              files.forEach((image) => {
+                data.append('images', image);
+              });
+              problemApi.updateProblem(data).then((res) => {});
+            });
+            this.$emit('submit', false);
+          } else {
+            const deepCopySubTask = useCloned(this.subtask).cloned.value;
+            const that = this;
+            fileUtil.getImageFiles(picUrls, function (files) {
+              deepCopyPro.insGuid = deepCopySubTask.insGuid;
+              delete deepCopyPro['description'];
+              deepCopyPro.proName = deepCopyPro.problemname;
+              delete deepCopyPro['problemname'];
+              deepCopyPro.ptGuid = that.findProTypeByGuid(
+                that.currProTypeGuid
+              ).guid;
+              deepCopyPro.locationId = deepCopyPro.locationid;
+              delete deepCopyPro['locationid'];
+              delete deepCopyPro['_adviseEdit'];
+              delete deepCopyPro['_proType'];
+              data.append('problemVo', JSON.stringify(deepCopyPro));
+              files.forEach((image) => {
+                data.append('images', image);
+              });
+              problemApi.newProblem(data).then((res) => {});
+            });
+            this.$emit('submit', true);
           }
-          if (!exclude) {
-            picUrls.push(item.url);
-          }
-          exclude = false;
-          // picUrls.push(item)
         }
       });
-      if (this.type == 1) {
-        let deleteImgCopy = this.deleteImg;
-        fileUtil.getImageFiles(picUrls, function (files) {
-          data.append('deleteImg', deleteImgCopy);
-          delete deepCopyPro['mediafileList'];
-          delete deepCopyPro['description'];
-          data.append('problem', JSON.stringify(deepCopyPro));
-          files.forEach((image) => {
-            data.append('images', image);
-          });
-          problemApi.updateProblem(data).then((res) => {});
-        });
-      } else {
-        const deepCopySubTask = useCloned(this.subtask).cloned.value;
-        const that = this;
-        fileUtil.getImageFiles(picUrls, function (files) {
-          deepCopyPro.insGuid = deepCopySubTask.insGuid;
-          delete deepCopyPro['advise'];
-          delete deepCopyPro['description'];
-          deepCopyPro.proName = deepCopyPro.problemname;
-          delete deepCopyPro['problemname'];
-          deepCopyPro.ptGuid = that.findProTypeByGuid(
-            that.currProTypeGuid
-          ).guid;
-          deepCopyPro.locationId = deepCopyPro.locationid;
-          delete deepCopyPro['locationid'];
-          data.append('problemVo', JSON.stringify(deepCopyPro));
-          files.forEach((image) => {
-            data.append('images', image);
-          });
-          problemApi.newProblem(data).then((res) => {});
-        });
-      }
-      this.$emit('submited', true);
     },
     handleSelectedAnyPhono(data) {
       this.beforeAnyPhotoDialogclose();
@@ -753,10 +698,6 @@
     },
     beforeLedgerPicDialogclose() {
       this.ledgerPicDialog = false;
-    },
-
-    destoryMyself() {
-      this.$destroy();
     }
   }
 };
@@ -778,7 +719,6 @@
 .img-upload {
   margin-top: 30px;
   margin-bottom: 30px;
-  margin-left: 63px;
 }
 .row {
   width: 100%;
@@ -792,6 +732,10 @@
   height: 100%;
 }
 ::v-deep .el-upload--picture-card {
-  border: 0 !important;
+  display: none;
+}
+/* 闅愯棌el-upload涓婁紶鎴愬姛缁勪欢 */
+::v-deep .el-upload-list__item-status-label {
+  display: none !important;
 }
 </style>

--
Gitblit v1.9.3