From d28223384922de5fb08c20516eb3f99981c8136a Mon Sep 17 00:00:00 2001
From: riku <risaku@163.com>
Date: 星期五, 22 十一月 2024 17:37:34 +0800
Subject: [PATCH] 1. 修复上传问题或整改图片后,界面更新错误问题; 2. 优化问题整改界面展示效果; 3. 场景图片对话框添加查看状态下可以点击图片放大功能
---
src/components/FYImageSelectDialog.vue | 101 ++++++++--------
src/views/fysp/check/ProCheck.vue | 23 +--
src/views/fysp/check/components/CompSubTaskStatistic.vue | 2
src/components/ToolBar.vue | 4
src/views/fysp/check/components/CompProblemAddOrUpd.vue | 20 +-
src/components/core/BaseContentLayout.vue | 1
src/constants/menu.js | 10
src/views/fysp/check/components/ComChangeEdit.vue | 57 +++++---
src/views/fysp/check/components/CompProblemCard.vue | 109 +++++++++++++----
9 files changed, 197 insertions(+), 130 deletions(-)
diff --git a/src/components/FYImageSelectDialog.vue b/src/components/FYImageSelectDialog.vue
index e12c42f..04bc1b3 100644
--- a/src/components/FYImageSelectDialog.vue
+++ b/src/components/FYImageSelectDialog.vue
@@ -3,39 +3,42 @@
:model-value="dialogVisible"
@opened="handleOpen"
@closed="handleClose"
- width="66%"
+ top="5vh"
+ width="68%"
destroy-on-close
+ :close-on-press-escape="false"
>
- <div class="main">
- <el-row justify="end" v-if="!readonly">
- <el-text size="small" type="info" class="m-r-8"
- >鏈�澶氶�夋嫨{{ maxSelect }}寮犲浘鐗�</el-text
- >
- <el-button
- size="small"
- type="primary"
- @click="handleSubmit"
- :disabled="selectedImgUrlList.length == 0"
- >纭畾</el-button
- >
- <el-button size="small" type="primary" @click="handleCancel"
- >鍙栨秷</el-button
- >
- </el-row>
+ <!-- <div class="main"> -->
+ <el-row justify="end" v-if="!readonly">
+ <el-text size="small" type="info" class="m-r-8"
+ >鏈�澶氶�夋嫨{{ maxSelect }}寮犲浘鐗�</el-text
+ >
+ <el-button
+ size="small"
+ type="primary"
+ @click="handleSubmit"
+ :disabled="selectedImgUrlList.length == 0"
+ >纭畾</el-button
+ >
+ <el-button size="small" type="primary" @click="handleCancel"
+ >鍙栨秷</el-button
+ >
+ </el-row>
- <div class="center">
- <el-tabs v-if="typeList.length > 0" v-model="activeId" type="card">
- <el-tab-pane
- v-for="item in typeList"
- :key="item.typeId"
- :label="
- item.typeName + ' (' + typeImgMap.get(item.typeId).length + ')'
- "
- :name="item.typeId"
- >
- </el-tab-pane>
- </el-tabs>
- <el-scrollbar
+ <div class="center">
+ <el-tabs v-if="typeList.length > 0" v-model="activeId" type="card">
+ <el-tab-pane
+ v-for="item in typeList"
+ :key="item.typeId"
+ :label="
+ item.typeName + ' (' + typeImgMap.get(item.typeId).length + ')'
+ "
+ :name="item.typeId"
+ >
+ </el-tab-pane>
+ </el-tabs>
+ <el-scrollbar height="70vh">
+ <div
v-if="typeImgMap.get(activeId) && typeImgMap.get(activeId).length > 0"
class="imgs"
>
@@ -46,16 +49,19 @@
:class="[img.isSelect ? 'selected' : 'noActive', 'image']"
fit="cover"
:src="img.url"
+ :preview-src-list="readonly ? typeImgMap.get(activeId).map((v) => v.url) : []"
+ :initial-index="i"
@click="onSelect(img, i)"
@load="onOneImgLoadSuccess(img)"
@error="onOneImgLoadError(img)"
/>
- </el-scrollbar>
+ </div>
<el-row v-else justify="space-between">
<el-empty description="鏆傛棤璁板綍" />
</el-row>
- </div>
+ </el-scrollbar>
</div>
+ <!-- </div> -->
</el-dialog>
</template>
<script setup>
@@ -110,11 +116,11 @@
);
});
function onOneImgLoadError(img) {
- img.loading = false
+ img.loading = false;
loadedImgCount.value++;
}
function onOneImgLoadSuccess(img) {
- img.loading = false
+ img.loading = false;
loadedImgCount.value++;
}
watch(
@@ -166,12 +172,12 @@
// }
// });
// });
- emit('update:dialogVisible', true)
+ emit('update:dialogVisible', true);
}
function handleClose() {
- selectedImgUrlList.value.forEach(item => item.isSelect = false)
- selectedImgUrlList.value = []
- emit('update:dialogVisible', false)
+ selectedImgUrlList.value.forEach((item) => (item.isSelect = false));
+ selectedImgUrlList.value = [];
+ emit('update:dialogVisible', false);
}
function handleSubmit() {
emit('submit', selectedImgUrlList.value);
@@ -245,15 +251,13 @@
}
.main {
- margin: 0 auto; /* 浣跨埗鍏冪礌灞呬腑 */
- height: 72vh;
- width: 100%;
+ /* 浣跨埗鍏冪礌灞呬腑 */
+ /* margin: 0 auto; */
+ /* width: 100%; */
}
.imgs {
- height: 60vh;
width: 100%;
- min-height: 100px !important;
/* border-style:solid;
border-radius: 1px; */
/* height: 100%; */
@@ -267,16 +271,9 @@
.image {
margin: 5px;
- height: 210px;
- width: 200px;
+ height: 250px;
+ width: 240px;
border-radius: 4px;
-}
-
-.active {
- padding: 5px;
- width: 20%;
- height: 200px;
- border: 0.5rem outset rgb(52, 155, 4);
}
.selected {
diff --git a/src/components/ToolBar.vue b/src/components/ToolBar.vue
index be6a898..7f4452e 100644
--- a/src/components/ToolBar.vue
+++ b/src/components/ToolBar.vue
@@ -58,7 +58,9 @@
.layout {
/* background-color: beige; */
height: var(--height-toolbar);
- /* border-bottom: 1px solid var(--el-color-info-light-7); */
+ border-bottom: 1px solid var(--el-color-info-light-7);
+ box-shadow: 6px 4px 4px rgba(0, 0, 0, 0.12);
+ margin-bottom: 4px;
}
.cell-item {
diff --git a/src/components/core/BaseContentLayout.vue b/src/components/core/BaseContentLayout.vue
index e5f888c..3889435 100644
--- a/src/components/core/BaseContentLayout.vue
+++ b/src/components/core/BaseContentLayout.vue
@@ -53,6 +53,7 @@
/* background-color: aqua; */
/* overflow-y: auto; */
border-right: 1px solid var(--el-color-info-light-7);
+ /* box-shadow: -10px 0px 4px rgba(0, 0, 0, 0.12) inset; */
}
.el-header {
diff --git a/src/constants/menu.js b/src/constants/menu.js
index c5a1b56..39cafb0 100644
--- a/src/constants/menu.js
+++ b/src/constants/menu.js
@@ -177,11 +177,11 @@
];
const MENU_FYTZ = [
- {
- path: '/fytz/ledger',
- icon: 'Search',
- name: '鍙拌处瀹℃牳'
- },
+ // {
+ // path: '/fytz/ledger',
+ // icon: 'Search',
+ // name: '鍙拌处瀹℃牳'
+ // },
{
path: '/fytz/notice',
icon: 'Message',
diff --git a/src/views/fysp/check/ProCheck.vue b/src/views/fysp/check/ProCheck.vue
index 92e3617..411065c 100644
--- a/src/views/fysp/check/ProCheck.vue
+++ b/src/views/fysp/check/ProCheck.vue
@@ -271,8 +271,7 @@
this.mainLoading = false;
});
},
- onAddProCanceled() {
- },
+ onAddProCanceled() {},
// 闂鍗$墖缁勪欢涓诲姩鍙戣捣鍒锋柊鐖剁粍浠舵暟鎹�
updateSubtask(refresh = false) {
this.curSubtask.data.proCheckedNum++;
@@ -285,8 +284,8 @@
// 鍒锋柊褰撳墠閫変腑瀛愪换鍔�
refreshCurrSubtask(refresh) {
this.sideLoading = false;
- // this.mainLoading = true;
setTimeout(() => {
+ this.mainLoading = true;
taskApi
.getProBySubtask(this.curSubtask.data.stGuid)
.then((res) => {
@@ -307,18 +306,18 @@
// this.curSubtask = s;
})
.finally(() => {
- // this.mainLoading = false;
+ this.mainLoading = false;
});
- }, 150);
+ }, 500);
},
// 闂瀹℃牳瀹屾垚鍚庯紝鏇存柊宸︿晶鍒楄〃瀵瑰簲瀛愪换鍔$姸鎬�
- handleProblemCheck(){
- const status = ProCheckProxy.calProStatus(this.curProList)
- this.curSubtask.data.proNum = status.proNum
- this.curSubtask.data.proCheckedNum = status.proCheckedNum
- this.curSubtask.data.changeNum = status.changeNum
- this.curSubtask.data.changeCheckedNum = status.changeCheckedNum
- this.curSubtask.type = ProCheckProxy.getSubtaskType(this.curSubtask.data)
+ handleProblemCheck() {
+ const status = ProCheckProxy.calProStatus(this.curProList);
+ this.curSubtask.data.proNum = status.proNum;
+ this.curSubtask.data.proCheckedNum = status.proCheckedNum;
+ this.curSubtask.data.changeNum = status.changeNum;
+ this.curSubtask.data.changeCheckedNum = status.changeCheckedNum;
+ this.curSubtask.type = ProCheckProxy.getSubtaskType(this.curSubtask.data);
}
},
mounted() {}
diff --git a/src/views/fysp/check/components/ComChangeEdit.vue b/src/views/fysp/check/components/ComChangeEdit.vue
index 6660d76..9bf3d15 100644
--- a/src/views/fysp/check/components/ComChangeEdit.vue
+++ b/src/views/fysp/check/components/ComChangeEdit.vue
@@ -46,17 +46,19 @@
</el-col>
</el-row>
<div class="flex-div">
- <el-button type="primary" @click="onSubmit">淇濆瓨</el-button>
+ <el-button type="primary" @click="onSubmit" :loading="loading"
+ >淇濆瓨</el-button
+ >
<el-button @click="onCancel">鍙栨秷</el-button>
</div>
<el-image-viewer
- v-if="previewDialogVisible"
- :url-list="fileList.map((item) => item.url)"
- :initial-index="initialIndex"
- @close="previewDialogVisible = false"
- alt="棰勮"
- class="preview-pic"
- />
+ v-if="previewDialogVisible"
+ :url-list="fileList.map((item) => item.url)"
+ :initial-index="initialIndex"
+ @close="previewDialogVisible = false"
+ alt="棰勮"
+ class="preview-pic"
+ />
</template>
</CompGenericWrapper>
</template>
@@ -68,8 +70,7 @@
import { ElMessage } from 'element-plus';
export default {
emits: ['submit', 'cancel'],
- components: {
- },
+ components: {},
watch: {
oldChangeFileList: {
handler(nv, ov) {
@@ -117,7 +118,9 @@
deleteImg: [],
ledgerPicDialog: false,
- anyPhotoDialog: false
+ anyPhotoDialog: false,
+
+ loading: false
};
},
mounted() {},
@@ -161,13 +164,14 @@
this.oldFileList = useCloned(beforeEditImgList).cloned.value;
},
onCancel() {
- this.$emit("cancel")
- this.$emit('update:visible', false)
+ this.$emit('cancel');
+ this.$emit('update:visible', false);
},
onSubmit() {
if (!this.pictureValidate()) {
return;
}
+ this.loading = true;
// 鏁版嵁鍑嗗
let data = new FormData();
var picUrls = [];
@@ -190,28 +194,35 @@
}
});
- const that = this;
let deleteImgCopy = this.deleteImg;
if (this.changeType == 1) {
- fileUtil.getImageFiles(picUrls, function (files) {
+ fileUtil.getImageFiles(picUrls, (files) => {
data.append('deleteImg', deleteImgCopy);
- data.append('problemId', that.problemId);
+ data.append('problemId', this.problemId);
files.forEach((image) => {
data.append('images', image);
});
- problemApi.updateChange(data).then((res) => {});
+ problemApi
+ .updateChange(data)
+ .then((res) => {
+ this.$emit('submit', true);
+ })
+ .finally(() => (this.loading = false));
});
- that.$emit('submit', true);
} else {
- fileUtil.getImageFiles(picUrls, function (files) {
- data.append('problemId', that.problemId);
+ fileUtil.getImageFiles(picUrls, (files) => {
+ data.append('problemId', this.problemId);
files.forEach((image) => {
data.append('images', image);
});
- problemApi.changeProblem(data).then((res) => {});
- that.$emit('submit', true);
+ problemApi
+ .changeProblem(data)
+ .then((res) => {
+ this.$emit('submit', true);
+ })
+ .finally(() => (this.loading = false));
});
}
},
@@ -222,7 +233,7 @@
}
},
handlePictureCardPreview(uploadFile) {
- this.initialIndex = this.fileList.indexOf(uploadFile)
+ this.initialIndex = this.fileList.indexOf(uploadFile);
this.previewDialogVisible = true;
this.previewDialogImageUrl = uploadFile.url;
},
diff --git a/src/views/fysp/check/components/CompProblemAddOrUpd.vue b/src/views/fysp/check/components/CompProblemAddOrUpd.vue
index 2cf3bc9..0ba0cb8 100644
--- a/src/views/fysp/check/components/CompProblemAddOrUpd.vue
+++ b/src/views/fysp/check/components/CompProblemAddOrUpd.vue
@@ -167,9 +167,7 @@
<el-button type="primary" @click="onSubmit" v-show="!readonly"
>淇濆瓨</el-button
>
- <el-button @click="onCancel" v-show="!readonly"
- >鍙栨秷</el-button
- >
+ <el-button @click="onCancel" v-show="!readonly">鍙栨秷</el-button>
</el-form-item>
</el-form>
<ArbitraryPhoto
@@ -230,7 +228,7 @@
components: {
ArbitraryPhoto,
CompDevicePhoto,
- CompLedgerPhoto,
+ CompLedgerPhoto
},
props: {
readonly: {
@@ -586,8 +584,8 @@
return true;
},
onCancel() {
- this.$emit("cancel")
- this.$emit('update:visible', false)
+ this.$emit('cancel');
+ this.$emit('update:visible', false);
},
onSubmit() {
this.$refs.formRef.validate((valid) => {
@@ -629,9 +627,10 @@
files.forEach((image) => {
data.append('images', image);
});
- problemApi.updateProblem(data).then((res) => {});
+ problemApi.updateProblem(data).then((res) => {
+ this.$emit('submit', false);
+ });
});
- this.$emit('submit', false);
} else {
const deepCopySubTask = useCloned(this.subtask).cloned.value;
const that = this;
@@ -651,9 +650,10 @@
files.forEach((image) => {
data.append('images', image);
});
- problemApi.newProblem(data).then((res) => {});
+ problemApi.newProblem(data).then((res) => {
+ this.$emit('submit', true);
+ });
});
- this.$emit('submit', true);
}
}
});
diff --git a/src/views/fysp/check/components/CompProblemCard.vue b/src/views/fysp/check/components/CompProblemCard.vue
index aabc5b4..bdf33a6 100644
--- a/src/views/fysp/check/components/CompProblemCard.vue
+++ b/src/views/fysp/check/components/CompProblemCard.vue
@@ -1,13 +1,17 @@
<template>
- <el-card class="layout" shadow="hover">
- <el-steps
- :active="proStatus.index"
- finish-status="success"
- style=""
- align-center
- >
- <el-step v-for="(s, i) in getSteps" :key="i" :title="s" />
- </el-steps>
+ <el-card class="layout" shadow="never">
+ <!-- <el-row justify="space-between"> -->
+ <div >
+ <el-steps
+ :active="proStatus.index"
+ finish-status="success"
+ style=""
+ align-center
+ >
+ <el-step v-for="(s, i) in getSteps" :key="i" :title="s" />
+ </el-steps>
+ </div>
+ <!-- </el-row> -->
<el-descriptions :column="3" size="small">
<template #title>
@@ -85,11 +89,7 @@
</el-col>
<el-col :span="12">
<el-row justify="end" class="btn-group">
- <el-button
- type="danger"
- size="small"
- @click="deletePro"
- disabled
+ <el-button type="danger" size="small" @click="deletePro" disabled
>鍒犻櫎</el-button
>
<!-- <el-button
@@ -100,7 +100,7 @@
>鍒犻櫎</el-button
> -->
<!-- 瀹℃牳椹冲洖鎿嶄綔 -->
- <!-- <el-button
+ <el-button
v-if="
this.problem.extension3 == 'fail' ||
this.problem.extension3 == 'change_fail'
@@ -118,7 +118,7 @@
@click="rejectPro"
:disabled="!proStatus.checkable"
>瀹℃牳椹冲洖</el-button
- > -->
+ >
<el-button
v-if="
this.problem.extension3 == 'pass' ||
@@ -244,11 +244,11 @@
},
{
bef: '闂寰呮暣鏀�',
- aft: '闂宸叉暣鏀�'
+ aft: '鏁存敼宸蹭笂浼�'
},
{
bef: '鏁存敼寰呭鏍�',
- aft: '鏁存敼宸插鏍�'
+ aft: '闂宸叉暣鏀�'
}
]
};
@@ -301,8 +301,7 @@
this.$emit('submit', isOk);
this.proAddOrUpdDialogVisible = false;
},
- onChangeCanceled() {
- },
+ onChangeCanceled() {},
onChangeSubmited(isOk) {
this.$emit('submit', isOk);
this.changeDialogVisible = false;
@@ -350,7 +349,7 @@
.checkProblem({ pId: pro.guid, action: action })
.then((res) => {
if (res.success) {
- pro.extension3 = status
+ pro.extension3 = status;
this.$emit('check');
}
});
@@ -372,7 +371,7 @@
.checkProblem({ pId: pro.guid, action: action })
.then((res) => {
if (res.success) {
- pro.extension3 = status
+ pro.extension3 = status;
this.$emit('check');
}
});
@@ -415,14 +414,14 @@
<style scoped>
.layout {
background-color: transparent;
- margin-top: 20px;
+ margin-bottom: 20px;
/* border: none; */
- border-color: rgba(0, 0, 0, 0.308);
+ /* border-color: rgba(0, 0, 0, 0.308); */
}
.image {
- width: 200px;
- height: 210px;
+ width: 240px;
+ height: 250px;
border-radius: 4px;
}
@@ -457,3 +456,61 @@
background-color: var(--el-color-success-light-3);
}
</style>
+
+<!-- 姝ラ鏉¤嚜瀹氫箟鏍峰紡 -->
+<style scoped>
+:deep(.el-steps--simple){
+ background: #fffbf731;
+}
+
+:deep(.is-wait .el-step__icon){
+ height: 17px;
+ width: 17px;
+ margin-top: 3px;
+}
+
+:deep(.is-wait .is-text .el-step__icon-inner) {
+ font-size: var(--el-font-size-small);
+}
+
+:deep(.is-success .el-step__icon){
+ height: 17px;
+ width: 17px;
+ margin-top: 3px;
+}
+
+:deep(.is-success .is-text .el-step__icon-inner) {
+ font-size: var(--el-font-size-small);
+}
+
+:deep(.el-step__head.is-process) {
+ border-color: var(--el-color-danger);
+ color: var(--el-color-danger)
+}
+
+:deep(.el-step__head.is-wait) {
+ border-color: var(--el-text-color-placeholder);
+ color: var(--el-text-color-placeholder)
+}
+
+:deep(.el-step__head.is-success) {
+ border-color: var(--el-color-success-light-3);
+ color: var(--el-color-success-light-3)
+}
+
+:deep(.el-step__title.is-process) {
+ color: var(--el-color-danger);
+ font-weight: bolder;
+ font-size: var(--el-font-size-large);
+}
+
+:deep(.el-step__title.is-wait) {
+ color: var(--el-text-color-placeholder);
+ font-size: var(--el-font-size-small);
+}
+
+:deep(.el-step__title.is-success) {
+ color: var(--el-color-success-light-3);
+ font-size: var(--el-font-size-small);
+}
+</style>
diff --git a/src/views/fysp/check/components/CompSubTaskStatistic.vue b/src/views/fysp/check/components/CompSubTaskStatistic.vue
index 652cf44..375ae5c 100644
--- a/src/views/fysp/check/components/CompSubTaskStatistic.vue
+++ b/src/views/fysp/check/components/CompSubTaskStatistic.vue
@@ -16,7 +16,7 @@
<el-descriptions-item
label="鏁存敼鐜�"
label-class-name="problem-label"
- :class-name="summary.changePer < 0.6 ? 'danger-content' : 'secondary-content'"
+ :class-name="summary.changePer < 1 ? 'danger-content' : 'secondary-content'"
>{{ formatPercent(summary.changePer) }}</el-descriptions-item
>
</el-descriptions>
--
Gitblit v1.9.3