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 @@ 是否为主缺陷 + + +