From ccd74a3df69199964380510199f4d52a3c548bf6 Mon Sep 17 00:00:00 2001 From: yangmf_0726 <13243152557@163.com> Date: Sat, 8 Nov 2025 12:35:08 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E4=BC=98=E5=8C=96=E5=95=86=E5=93=81?= =?UTF-8?q?=E5=A4=8D=E5=88=B6=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mall/product/containergoods/index.vue | 33 +++++++++++++------ 1 file changed, 23 insertions(+), 10 deletions(-) diff --git a/src/views/mall/product/containergoods/index.vue b/src/views/mall/product/containergoods/index.vue index 04ebf211..b9e06a28 100644 --- a/src/views/mall/product/containergoods/index.vue +++ b/src/views/mall/product/containergoods/index.vue @@ -51,6 +51,15 @@ 重置 + + + 新增 + { // 获取商品详情 const productDetail = await ProductSpuApi.getSpu(row.id!) - // 准备新商品数据,只清除ID等需要重新生成的字段,其他数据保持原样 + // 准备新商品数据,复制所有内容,但不传递商品编号(id)和SKU的id,后端会自动生成 + const { id, createTime, skus, ...spuData } = productDetail const newProduct: ProductSpuApi.Spu = { - ...productDetail, - id: undefined, // 清除ID,让系统自动生成 - createTime: undefined, // 清除创建时间,使用当前时间 - // 复制SKU时只清除ID和spuId,其他数据保持原样 - skus: productDetail.skus?.map(sku => ({ - ...sku, - id: undefined, // 清除SKU ID,让系统自动生成 - spuId: undefined // 清除SPU关联ID,系统会自动关联 - })) + ...spuData, // 复制所有SPU字段(除了id和createTime) + // 复制SKU时不传递id和spuId,其他所有数据保持原样(包括name字段) + skus: skus?.map(sku => { + const { id: skuId, spuId, ...skuData } = sku + return { + ...skuData, // 复制SKU的所有业务字段(包括name),排除id、spuId + name: sku.name || productDetail.name // 确保name字段被复制,如果没有则使用SPU的name + } + }) } + // 在控制台打印新增的商品数据 + console.log('复制新增的商品数据:', newProduct) + // 创建新商品 await ProductSpuApi.createSpu(newProduct) } catch (error) {