diff --git a/src/views/assets/asset/component/editAsset.vue b/src/views/assets/asset/component/editAsset.vue index edf7cc4..1a8487f 100644 --- a/src/views/assets/asset/component/editAsset.vue +++ b/src/views/assets/asset/component/editAsset.vue @@ -665,7 +665,7 @@ const rules: FormRules = { type: [{ required: true, message: '请选择资产类型', trigger: 'change' }], categoryId: [{ required: true, message: '请选择资产分类', trigger: 'change' }], offlineTime: [{ validator: validateOfflineTime, trigger: 'change' }], - mainImage: [{ required: false, message: '请上传主图', trigger: 'change' }], + mainImage: [{ required: true, message: '请上传主图', trigger: 'change' }], 'serviceAssetConfig.serviceAssetArrivalConfig.booking.minAdvance': [{ required: true, message: '请输入最小提前时间', trigger: 'blur' }], 'serviceAssetConfig.serviceAssetArrivalConfig.booking.minDuration': [{ required: true, message: '请输入最小时长', trigger: 'blur' }], 'serviceAssetConfig.serviceAssetArrivalConfig.booking.cancelWindow': [{ required: true, message: '请输入取消提前时间', trigger: 'blur' }], @@ -1091,23 +1091,25 @@ const buildRequestBody = async (): Promise => { // 主图 (已在上传时直接赋值给 ruleForm.mainImage) if (ruleForm.mainImage) { - body.fileURL = ruleForm.mainImage; + body.imageURL = ruleForm.mainImage; } // 图片列表 const imageUrls: string[] = []; for (const file of imageFileList.value) { - if (file.response) { - // 新上传的图片使用原始 URL - imageUrls.push(file.response as string); - } else if (file.url && !file.url.startsWith('blob:')) { - // 已有图片保留原 URL - imageUrls.push(file.url); + let url = (file.response as string) || ''; + if (!url && file.url && !file.url.startsWith('blob:')) { + url = file.url; + } + if (url) { + // 移除前缀,确保提交相对路径 + if (fileAddressPrefix.value && url.startsWith(fileAddressPrefix.value)) { + url = url.substring(fileAddressPrefix.value.length); + } + imageUrls.push(url); } } - if (imageUrls.length > 0) { - body.images = imageUrls; - } + body.images = imageUrls; // 根据类型添加配置 if (ruleForm.type === 'physical') {