From 635a231af32a829b00c22f92f62143560d7a1adf Mon Sep 17 00:00:00 2001
From: rain <1679827795@qq.com>
Date: Wed, 23 Apr 2025 18:03:18 +0800
Subject: [PATCH] 图片上传优化
---
src/views/tickets/ticket.vue | 88 +++++++++++++++++++++++++++++++++++++++-----
1 files changed, 78 insertions(+), 10 deletions(-)
diff --git a/src/views/tickets/ticket.vue b/src/views/tickets/ticket.vue
index a0f80b5..023b750 100644
--- a/src/views/tickets/ticket.vue
+++ b/src/views/tickets/ticket.vue
@@ -131,11 +131,20 @@
</el-col>
<el-col :span="12">
<el-form-item label="附件图片" prop="photos" required class="upload-wrapper">
- <el-upload ref="upload" :action="'#'" :auto-upload="false" list-type="picture-card"
- :on-change="handleFileChange" :on-remove="handleUploadRemove" :before-upload="beforeUpload"
- :file-list="form.photos" :limit="1" accept="image/*" class="uploader">
- <span
- style="font-size: 32px; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">+</span>
+ <el-upload ref="upload"
+ :action="'#'"
+ :auto-upload="false"
+ list-type="picture-card"
+ :on-change="handleFileChange"
+ :on-remove="handleUploadRemove"
+ :before-upload="beforeUpload"
+ :file-list="form.photos"
+ :limit="1"
+ accept="image/*"
+ class="create-upload">
+ <template v-if="form.photos.length < 1">
+ <i class="el-icon-plus">+</i>
+ </template>
</el-upload>
<div class="upload-tip">支持jpg/png格式图片,单张不超过5MB</div>
</el-form-item>
@@ -273,11 +282,21 @@
<!-- 上传图片 -->
<div v-if="[3, 4].includes(currentDetail.status)" class="form-section" style="margin-bottom: 32px;">
<div class="section-title" v-if="hasProcessedAndOverBtnPermission()">上传图片</div>
- <el-upload v-if="hasProcessedAndOverBtnPermission()" ref="upload" :action="'#'" :auto-upload="false"
- list-type="picture-card" :on-change="handleFileChange" :on-remove="handleUploadRemove"
- :before-upload="beforeUpload" :file-list="[]" :limit="1" accept="image/*">
- <span
- style="font-size: 32px; display: flex; align-items: center; justify-content: center; width: 100%; height: 100%;">+</span>
+ <el-upload v-if="hasProcessedAndOverBtnPermission()"
+ ref="upload"
+ :action="'#'"
+ :auto-upload="false"
+ list-type="picture-card"
+ :on-change="handleFileChange"
+ :on-remove="handleUploadRemove"
+ :before-upload="beforeUpload"
+ :file-list="currentDetail.photos || []"
+ :limit="1"
+ accept="image/*"
+ class="detail-upload">
+ <template v-if="!currentDetail.photos || currentDetail.photos.length < 1">
+ <i class="el-icon-plus">+</i>
+ </template>
</el-upload>
<div class="el-upload__tip" style="margin-top: 12px;" v-if="hasProcessedAndOverBtnPermission()">
(上传照片即可完结工单,只能上传jpg、jpeg、png照片,且不超过5M)
@@ -2723,4 +2742,53 @@
}
}
}
+
+/* 新建工单和处理工单的上传组件样式 */
+.create-upload,
+.detail-upload {
+ :deep(.el-upload--picture-card) {
+ width: 120px;
+ height: 100px;
+ line-height: 100px;
+ }
+
+ /* 隐藏额外的上传按钮 */
+ :deep(.el-upload.el-upload--picture-card) {
+ display: none;
+ }
+
+ /* 当没有图片时显示上传按钮 */
+ :deep(.el-upload.el-upload--picture-card:first-child) {
+ display: flex;
+ }
+
+ /* 上传组件的预览图片样式 */
+ :deep(.el-upload-list--picture-card .el-upload-list__item) {
+ width: 120px;
+ height: 100px;
+ }
+}
+
+/* 事件图片和处理图片的预览样式 */
+.media-content {
+ :deep(.el-image) {
+ width: 700px !important;
+ height: 520px !important;
+
+ .el-image__inner {
+ width: 100%;
+ height: 100%;
+ object-fit: contain;
+ }
+ }
+}
+
+/* 原有图片预览的样式 */
+.el-image-viewer__wrapper {
+ :deep(.el-image-viewer__img) {
+ max-width: 100%;
+ max-height: 100%;
+ object-fit: contain;
+ }
+}
</style>
\ No newline at end of file
--
Gitblit v1.9.3