From 73e98af96ef34e2997a46d46ba5ae2333d50f02b Mon Sep 17 00:00:00 2001
From: =?UTF-8?q?=E7=A0=82=E7=B3=96?= <2178503051@qq.com>
Date: Thu, 28 May 2026 15:11:01 +0800
Subject: [PATCH] =?UTF-8?q?feat(wms/coil):=20=E6=B7=BB=E5=8A=A0=E7=BC=BA?=
=?UTF-8?q?=E9=99=B7=E5=9B=BE=E7=89=87=E4=B8=8A=E4=BC=A0=E4=B8=8E=E5=B1=95?=
=?UTF-8?q?=E7=A4=BA=E5=8A=9F=E8=83=BD?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
1. 新增ImageUpload组件支持url模式绑定
2. 在异常表单中添加主缺陷对应的图片上传控件
3. 在异常表格和管理页面中新增缺陷图片展示列
4. 同步更新表单数据默认值与表格初始化逻辑
---
klp-ui/src/components/ImageUpload/index.vue | 41 ++++++++++++++-----
.../wms/coil/components/AbnormalForm.vue | 10 ++++-
.../wms/coil/components/AbnormalTable.vue | 16 +++++++-
.../wms/coil/components/ExceptionManager.vue | 13 +++++-
4 files changed, 64 insertions(+), 16 deletions(-)
diff --git a/klp-ui/src/components/ImageUpload/index.vue b/klp-ui/src/components/ImageUpload/index.vue
index 9c92e86b..32a80da2 100644
--- a/klp-ui/src/components/ImageUpload/index.vue
+++ b/klp-ui/src/components/ImageUpload/index.vue
@@ -49,6 +49,12 @@ import { listByIds, delOss } from "@/api/system/oss";
export default {
props: {
value: [String, Object, Array],
+ // 值模式: 'ossId' - v-model绑定ossId字符串(默认), 'url' - v-model绑定url字符串
+ valueMode: {
+ type: String,
+ default: 'ossId',
+ validator: (val) => ['ossId', 'url'].includes(val)
+ },
// 图片数量限制
limit: {
type: Number,
@@ -89,19 +95,26 @@ export default {
value: {
async handler(val) {
if (val) {
- // 首先将值转为数组
let list;
if (Array.isArray(val)) {
list = val;
} else {
- await listByIds(val).then(res => {
- list = res.data;
- })
+ if (this.valueMode === 'url') {
+ list = val.split(',').filter(url => url).map(url => {
+ return { name: url.slice(url.lastIndexOf('/') + 1), url: url };
+ });
+ } else {
+ await listByIds(val).then(res => {
+ list = res.data;
+ })
+ }
}
- // 然后将数组转为对象数组
this.fileList = list.map(item => {
- // 此处name使用ossId 防止删除出现重名
- item = { name: item.ossId, url: item.url, ossId: item.ossId };
+ if (this.valueMode === 'url') {
+ item = { name: item.url.slice(item.url.lastIndexOf('/') + 1), url: item.url };
+ } else {
+ item = { name: item.ossId, url: item.url, ossId: item.ossId };
+ }
return item;
});
} else {
@@ -172,8 +185,10 @@ export default {
handleDelete(file) {
const findex = this.fileList.map(f => f.name).indexOf(file.name);
if(findex > -1) {
- let ossId = this.fileList[findex].ossId;
- delOss(ossId);
+ if (this.valueMode === 'ossId') {
+ let ossId = this.fileList[findex].ossId;
+ delOss(ossId);
+ }
this.fileList.splice(findex, 1);
this.$emit("input", this.listToString(this.fileList));
}
@@ -203,8 +218,12 @@ export default {
let strs = "";
separator = separator || ",";
for (let i in list) {
- if (list[i].ossId) {
- strs += list[i].ossId + separator;
+ if (this.valueMode === 'url') {
+ strs += list[i].url + separator;
+ } else {
+ if (list[i].ossId) {
+ strs += list[i].ossId + separator;
+ }
}
}
return strs != "" ? strs.substr(0, strs.length - 1) : "";
diff --git a/klp-ui/src/views/wms/coil/components/AbnormalForm.vue b/klp-ui/src/views/wms/coil/components/AbnormalForm.vue
index 3509be1c..3d7055cf 100644
--- a/klp-ui/src/views/wms/coil/components/AbnormalForm.vue
+++ b/klp-ui/src/views/wms/coil/components/AbnormalForm.vue
@@ -52,17 +52,22 @@
是否为主缺陷
+
+
+