From f6a53130379bdcd05399bff04f7f6d9e2fe5ebd5 Mon Sep 17 00:00:00 2001 From: WUSIJIAN <13825895+wsj0228@user.noreply.gitee.com> Date: Tue, 23 Dec 2025 17:07:32 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E8=B5=84=E4=BA=A7=E5=85=83?= =?UTF-8?q?=E6=95=B0=E6=8D=AE=E5=A4=84=E7=90=86=E9=80=BB=E8=BE=91,?= =?UTF-8?q?=E6=94=AF=E6=8C=81=E6=95=B0=E7=BB=84=E5=92=8C=E5=AF=B9=E8=B1=A1?= =?UTF-8?q?=E4=B8=A4=E7=A7=8D=E6=A0=BC=E5=BC=8F=E7=9A=84=E5=85=83=E6=95=B0?= =?UTF-8?q?=E6=8D=AE=E8=A7=A3=E6=9E=90=E4=B8=8E=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assets/asset/component/editAsset.vue | 34 ++++++++++++++----- 1 file changed, 25 insertions(+), 9 deletions(-) diff --git a/src/views/assets/asset/component/editAsset.vue b/src/views/assets/asset/component/editAsset.vue index db2c16d..e5d3989 100644 --- a/src/views/assets/asset/component/editAsset.vue +++ b/src/views/assets/asset/component/editAsset.vue @@ -777,7 +777,15 @@ const openDialog = (row?: any, edit?: boolean) => { // 元数据 if (data.metadata) { - Object.assign(ruleForm.metadata, data.metadata); + if (Array.isArray(data.metadata)) { + data.metadata.forEach((item: any) => { + if (item.name) { + ruleForm.metadata[item.name] = item.value; + } + }); + } else { + Object.assign(ruleForm.metadata, data.metadata); + } } // 加载分类属性 @@ -865,16 +873,24 @@ const buildFormData = (): FormData => { }); // 元数据(分类属性值) - if (Object.keys(ruleForm.metadata).length > 0) { - // 过滤掉 blob url,避免传给后端 - const metadataToSend = { ...ruleForm.metadata }; - Object.keys(metadataToSend).forEach((key) => { - if (typeof metadataToSend[key] === 'string' && metadataToSend[key].startsWith('blob:')) { - // 如果有对应的文件在 attrImageFiles 中,则置空或不传,这里选择置空 - metadataToSend[key] = ''; + if (categoryAttrs.value.length > 0) { + const metadataArray = categoryAttrs.value.map((attr) => { + const key = getAttrKey(attr); + let value = ruleForm.metadata[key]; + + // 过滤掉 blob url,避免传给后端 + if (typeof value === 'string' && value.startsWith('blob:')) { + value = ''; } + + return { + name: attr.name, + type: attr.type, + value: value, + options: attr.options || [], + }; }); - formData.append('metadata', JSON.stringify(metadataToSend)); + formData.append('metadata', JSON.stringify(metadataArray)); } return formData;