From f19e5267cc23b1c714dc746239864f33ed715dd9 Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 05 十二月 2025 17:55:02 +0800
Subject: [PATCH] 完成地图制作任务功能初版
---
src/views/fysp/check/components/CompProblemAddOrUpd.vue | 741 +++++++++++++++++++++++++++++++-------------------------
1 files changed, 409 insertions(+), 332 deletions(-)
diff --git a/src/views/fysp/check/components/CompProblemAddOrUpd.vue b/src/views/fysp/check/components/CompProblemAddOrUpd.vue
index eaad334..8221a0e 100644
--- a/src/views/fysp/check/components/CompProblemAddOrUpd.vue
+++ b/src/views/fysp/check/components/CompProblemAddOrUpd.vue
@@ -1,167 +1,238 @@
<template>
- <div class="main-container">
- <el-form :model="problem" label-width="auto" style="max-width: 95%">
- <el-form-item label="闂绫诲瀷" prop="proType">
- <el-select v-model="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"
+ <CompGenericWrapper type="dialog" append-to-body>
+ <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 descriptionOptions"
- :key="item.guid"
- :label="item.description"
- :value="item.description"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="闂浣嶇疆" prop="locationid">
- <el-select
- v-model="deepCopyProblem.locationid"
- @change="onProLocationChange"
- 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
+ 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>
+ <el-row justify="end">
+ <el-button
+ type="primary"
+ @click="onSubmit"
+ v-show="!readonly"
+ :loading="loading"
+ >淇濆瓨</el-button
+ >
+ <el-button @click="onCancel" v-show="!readonly">鍙栨秷</el-button>
+ </el-row>
+ <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 posList"
- :key="item.index"
- :label="item.text"
- :value="item.index"
- />
- </el-select>
- </el-form-item>
- <el-form-item label="闂寤鸿" prop="advise">
- <el-select v-model="deepCopyProblem.advise" class="row" :disabled="readonly">
- <el-option
- v-for="item in adviseOptions"
- :key="item.adGuid"
- :label="item.adName"
- :value="item.adName"
- />
- </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="璇疯緭鍏�"
+ </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"
+ >
+ </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>
- <div class="t-card_item">
- 闂鍥剧墖
- <div>
- <el-button @click="chosePicFromAnyPic" v-show="!readonly">浠庝换鎰忓浘鐗囬�夊彇</el-button>
- <el-button @click="chosePicFromDevicePic" v-show="!readonly">浠庤澶囧浘鐗囬�夊彇</el-button>
- <el-button @click="chosePicFromLedgerPic" v-show="!readonly">浠庡彴璐﹂�夊彇</el-button>
- <el-button @click="choseChangePic" v-show="!readonly">浠庢枃浠跺す閫夊彇</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/*"
- >
- <el-button type="primary" id="uploadBtnId" style="display: none"></el-button>
- <el-icon v-show="fileList.length != 3">
- <Plus />
- </el-icon>
- </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>
- <el-dialog
- title="浠绘剰鍥剧墖"
- width="80%"
- v-model="anyPhotoDialog"
- :before-close="beforeAnyPhotoDialogclose"
- class="dialog_style"
- >
- <ArbitraryPhoto
- v-if="anyPhotoDialog"
- @selectByAnyPhonoEvent="handleSelectedAnyPhono"
- :subtask="subtask"
- :defaultFile="fileList"
- ref="arbitraryPhotoRef"
- >
- </ArbitraryPhoto>
- </el-dialog>
- <el-dialog
- title="鍙拌处鍥剧墖"
- width="80%"
- v-model="ledgerPicDialog"
- :before-close="beforeLedgerPicDialogclose"
- class="dialog_style"
- >
- <LedgerPic
- v-if="ledgerPicDialog"
- @selectByLedgerPicEvent="handleLedgerPicPhono"
- :month="month"
- :subtask="subtask"
- :defaultFile="fileList"
- ref="ledgerPicRef"
- >
- </LedgerPic>
- </el-dialog>
- <el-dialog
- title="璁惧鍥剧墖"
- width="80%"
- v-model="deiveceImgDialog"
- :before-close="beforeDeiveceImgDialogclose"
- class="dialog_style"
- >
- <CompDevicePhono
- v-if="deiveceImgDialog"
- @selectPhonoEvent="handleSelectedDevicePhono"
- :imgPathsDataSource="deviceImgObjList"
- :defaultFile="fileList"
- ref="deiveceImgDialogRef"
- >
- </CompDevicePhono>
- </el-dialog>
- <el-dialog v-model="previewDialogVisible">
- <img w-full :src="previewDialogImageUrl" alt="棰勮" class="preview-pic" />
- </el-dialog>
- </div>
+ </template>
+ </CompGenericWrapper>
</template>
<script>
import ArbitraryPhoto from './ArbitraryPhoto.vue';
-import LedgerPic from './CompLedgerPic.vue';
-import CompDevicePhono from './CompDevicePhono.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 { get, 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', 'cancel'],
components: {
ArbitraryPhoto,
- LedgerPic,
- CompDevicePhono
+ CompDevicePhoto,
+ CompLedgerPhoto
},
props: {
readonly: {
@@ -192,6 +263,12 @@
},
data() {
return {
+ // fixme 2024.11.20 瀛愮粍浠跺垵濮嬪寲鏃舵満闂
+ initPropsCount: 0,
+ // 鍒濆棰勮鍥剧墖index
+ initialIndex: -1,
+ // 鍥剧墖閫夋嫨鏈�澶ф暟閲�
+ maxSelectImgCount: 3,
previewDialogVisible: false,
previewDialogImageUrl: '',
// 璁惧鍥剧墖鍒楄〃
@@ -216,17 +293,33 @@
month: -1,
ledgerPicDialog: false,
rules: {
- proType: { required: true, message: '闂绫诲瀷涓嶈兘涓虹┖', trigger: 'change' },
- description: { required: true, message: '闂鎻忚堪涓嶈兘涓虹┖', trigger: 'change' },
- locationid: { required: true, message: '闂浣嶇疆涓嶈兘涓虹┖', trigger: 'change' },
- advise: { required: true, message: '闂寤鸿涓嶈兘涓虹┖', trigger: 'change' },
- proRemark: { required: true, message: '琛ュ厖璇存槑涓嶈兘涓虹┖', trigger: 'change' }
+ _proType: {
+ required: true,
+ message: '闂绫诲瀷涓嶈兘涓虹┖',
+ trigger: 'change'
+ },
+ description: {
+ required: true,
+ message: '闂鎻忚堪涓嶈兘涓虹┖',
+ trigger: 'change'
+ },
+ locationid: {
+ required: true,
+ message: '闂浣嶇疆涓嶈兘涓虹┖',
+ trigger: 'change'
+ },
+ advice: {
+ required: true,
+ message: '闂寤鸿涓嶈兘涓虹┖',
+ trigger: 'change'
+ }
},
deviceTopTypes: [
{ id: 0, label: '鐩戞帶璁惧' },
{ id: 1, label: '娌荤悊璁惧' },
{ id: 2, label: '鐢熶骇璁惧' }
- ]
+ ],
+ loading: false
};
},
watch: {
@@ -236,18 +329,50 @@
this.pictureValidate();
},
deep: true
+ },
+ initPropsCount: {
+ handler(nv, ov) {
+ if (nv >= 3) {
+ this.initOptions();
+ }
+ },
+ immediate: true
+ },
+ problem: {
+ handler(nv, ov) {
+ if (nv != null && nv != undefined) {
+ this.initPropsCount++;
+ }
+ },
+ immediate: true
+ },
+ topTask: {
+ handler(nv, ov) {
+ if (nv != null && nv != undefined) {
+ this.initPropsCount++;
+ }
+ },
+ immediate: true
+ },
+ subtask: {
+ handler(nv, ov) {
+ if (nv != null && nv != undefined) {
+ this.initPropsCount++;
+ }
+ },
+ immediate: true
}
},
computed: {
descriptionOptions() {
const descriptions = [];
-
+
this.problemTypeList.forEach((item) => {
- if (item.typename == this.proType) {
+ if (item.typename == this.deepCopyProblem._proType) {
descriptions.push(item);
}
});
-
+
return descriptions;
},
problemTypeOptions() {
@@ -260,108 +385,41 @@
}, []);
},
adviseOptions() {
- var problemGuid = this.currProTypeGuid || this.problem.guid;
- var array = this.suggestions.filter((item) => item.adProblemtypeguid == problemGuid);
+ let problemGuid = this.currProTypeGuid || this.problem.guid;
+ let array = this.suggestions.filter(
+ (item) => item.adProblemtypeguid == problemGuid
+ );
return array;
}
},
- mounted() {
- this.initOptions();
- this.getDeviceImgList();
- },
+ mounted() {},
methods: {
+ onProAdviseChange(value) {
+ 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.advice = this.deepCopyProblem.advise;
+ this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
}
this.type = 'guid' in this.deepCopyProblem ? 1 : 0;
+
// 鑾峰彇闂绫诲瀷
let data = {
sceneTypeId: this.subtask.sceneTypeId,
@@ -369,7 +427,7 @@
districtCode: this.topTask.districtcode
};
problemApi.fetchProblemType(data).then((res) => {
- this.problemTypeList = res.data;
+ this.problemTypeList = res;
if (this.type == 1) {
let currProName = String(this.problem.problemname);
@@ -379,17 +437,20 @@
currDescription = currProName;
this.problemTypeList.forEach((item) => {
if (item.description == currDescription) {
- this.proType = item.typename;
+ this.deepCopyProblem._proType = item.typename;
}
});
this.deepCopyProblem.description = currDescription;
this.proRemark = '';
} else {
- currDescription = currProName.substring(0, currProName.lastIndexOf('('));
+ currDescription = currProName.substring(
+ 0,
+ currProName.lastIndexOf('(')
+ );
this.problemTypeList.forEach((item) => {
if (item.description === currDescription) {
- this.proType = item.typename;
+ this.deepCopyProblem._proType = item.typename;
}
});
this.deepCopyProblem.description = currDescription;
@@ -473,29 +534,34 @@
onProRemarkChange(value) {
this.changeProblemname();
},
+ onProAdviseEditChange(value) {},
onProTypeChange(value) {
- this.deepCopyProblem.description = '';
- this.deepCopyProblem.advise = '';
+ // 榛樿闂鎻忚堪鍜岄棶棰樺缓璁负绗竴涓�
+ this.onProDesChange(this.descriptionOptions[0].description);
+ this.deepCopyProblem.advice = this.adviseOptions[0].adName;
+ this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
},
findProByProDesName(name) {
- let result
- this.problemTypeList.forEach(item=>{
+ let result;
+ this.problemTypeList.forEach((item) => {
if (item.description == name) {
result = item;
}
- })
- return result
+ });
+ return result;
},
onProDesChange(value) {
- let currPro = this.findProByProDesName(value)
- this.deepCopyProblem.advise = '';
+ let currPro = this.findProByProDesName(value);
this.currProTypeGuid = currPro.guid;
- // this.deepCopyProblem.description = currPro.description;
+ this.deepCopyProblem.description = currPro.description;
+ this.deepCopyProblem.ptguid = this.currProTypeGuid;
this.changeProblemname();
- this.deepCopyProblem.advise = '';
-
- var adName = this.adviseOptions.length == 0 ? '' : this.adviseOptions[0].adName;
- this.deepCopyProblem.advise = adName;
+ var adName =
+ this.adviseOptions.length == 0 ? '' : this.adviseOptions[0].adName;
+ this.deepCopyProblem.advice = adName;
+ this.$nextTick(() => {
+ this.deepCopyProblem._adviseEdit = this.deepCopyProblem.advice;
+ });
},
onProLocationChange(value) {
this.posList.forEach((item) => {
@@ -521,68 +587,89 @@
}
return true;
},
- // TODO
- validateForm() {},
+ onCancel() {
+ this.$emit('cancel');
+ this.$emit('update:visible', false);
+ },
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.loading = true;
+ 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, (files) => {
+ data.append('deleteImg', deleteImgCopy);
+ deepCopyPro.advise = deepCopyPro._adviseEdit;
+ 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);
+ })
+ .finally(() => {
+ this.loading = false;
+ });
+ });
+ } else {
+ const deepCopySubTask = useCloned(this.subtask).cloned.value;
+ fileUtil.getImageFiles(picUrls, (files) => {
+ deepCopyPro.insGuid = deepCopySubTask.insGuid;
+ delete deepCopyPro['description'];
+ deepCopyPro.proName = deepCopyPro.problemname;
+ delete deepCopyPro['problemname'];
+ deepCopyPro.ptGuid = this.currProTypeGuid;
+ delete deepCopyPro['ptguid'];
+ 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);
+ })
+ .finally(() => {
+ this.loading = false;
+ });
+ });
}
- 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();
@@ -603,17 +690,16 @@
}
},
handleSelectedDevicePhono(data) {
- this.beforeDeiveceImgDialogclose();
let isExist = false;
for (const item of data) {
for (const already of this.fileList) {
- if (item._picUrl == already.url) {
+ if (item.url == already.url) {
isExist = true;
}
}
if (!isExist) {
this.fileList.push({
- url: item._picUrl,
+ url: item.url,
name: '1'
});
}
@@ -653,10 +739,6 @@
},
beforeLedgerPicDialogclose() {
this.ledgerPicDialog = false;
- },
-
- destoryMyself() {
- this.$destroy();
}
}
};
@@ -678,20 +760,11 @@
.img-upload {
margin-top: 30px;
margin-bottom: 30px;
- margin-left: 63px;
}
.row {
width: 100%;
}
-::v-deep .el-dialog {
- --el-dialog-margin-top: 2vh;
- height: 98vh;
-}
-::v-deep .el-dialog__body {
- width: 95%;
- height: 100%;
-}
-::v-deep .el-upload-list--picture-card .el-upload-list__item-thumbnail {
+:deep(.el-upload-list--picture-card .el-upload-list__item-thumbnail) {
object-fit: cover !important;
}
.preview-pic {
@@ -699,7 +772,11 @@
width: 100%;
height: 100%;
}
-::v-deep .el-upload--picture-card {
- border: 0 !important;
+:deep(.el-upload--picture-card) {
+ display: none;
+}
+/* 闅愯棌el-upload涓婁紶鎴愬姛缁勪欢 */
+:deep(.el-upload-list__item-status-label) {
+ display: none !important;
}
</style>
--
Gitblit v1.9.3