From 089e0197cd17184981a5784e8551c2284411b816 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=8D=A2=E8=B6=8A?= <552369664@qq.com> Date: Thu, 5 Sep 2024 22:34:59 +0800 Subject: [PATCH] =?UTF-8?q?=E3=80=90=E4=BB=A3=E7=A0=81=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E3=80=91=E6=8B=BC=E5=9B=A2=E9=87=8D=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- pages/goods/groupon.vue | 17 +++- sheep/api/promotion/combination.js | 6 +- .../s-groupon-block/s-groupon-block.vue | 94 +++++++++---------- 3 files changed, 62 insertions(+), 55 deletions(-) diff --git a/pages/goods/groupon.vue b/pages/goods/groupon.vue index 503d9c9..9c9669c 100644 --- a/pages/goods/groupon.vue +++ b/pages/goods/groupon.vue @@ -90,7 +90,7 @@ {{ - fen2yuan(state.selectedSku.price * state.selectedSku.count || state.activity.price * state.selectedSku.count || state.goodsInfo.price * state.selectedSku.count || state.goodsInfo.price) + fen2yuan( + state.selectedSku.price * state.selectedSku.count || + state.activity.price * state.selectedSku.count || + state.goodsInfo.price * state.selectedSku.count || + state.goodsInfo.price, + ) }} 未开始 已结束 @@ -263,10 +268,12 @@ // 加载商品信息 const { data: spu } = await SpuApi.getSpuDetail(activity.spuId); state.goodsId = spu.id; + // 默认显示最低价 - activity.products.forEach((product) => { - state.activity.price = Math.min(spu.price, product.combinationPrice); // 设置 SPU 的最低价格 - }); + spu.price = activity.products.reduce((min, product) => { + return Math.min(min, product.combinationPrice || Infinity); + }, Infinity); + // 价格、库存使用活动的 spu.skus.forEach((sku) => { const product = activity.products.find((product) => product.skuId === sku.id); diff --git a/sheep/api/promotion/combination.js b/sheep/api/promotion/combination.js index 3e2cee6..feb1ed8 100644 --- a/sheep/api/promotion/combination.js +++ b/sheep/api/promotion/combination.js @@ -37,7 +37,7 @@ const CombinationApi = { url: '/promotion/combination-activity/list-by-ids', method: 'GET', params: { - ids, + ids }, }); }, @@ -58,9 +58,9 @@ const CombinationApi = { // 获得我的拼团记录分页 getCombinationRecordPage: (params) => { return request({ - url: '/promotion/combination-record/page', + url: "/promotion/combination-record/page", method: 'GET', - params, + params }); }, diff --git a/sheep/components/s-groupon-block/s-groupon-block.vue b/sheep/components/s-groupon-block/s-groupon-block.vue index 862b70f..6c9d654 100644 --- a/sheep/components/s-groupon-block/s-groupon-block.vue +++ b/sheep/components/s-groupon-block/s-groupon-block.vue @@ -23,7 +23,7 @@ :subTitleColor="data.fields.introduction.color" :topRadius="data.borderRadiusTop" :bottomRadius="data.borderRadiusBottom" - @click="sheep.$router.go('/pages/goods/index', { id: item.id })" + @click="sheep.$router.go('/pages/goods/groupon', { id: item.activityId })" > @@ -257,16 +257,16 @@ // 循环活动列表 activityList.forEach((activity) => { - // 获取活动商品的最低价格 - activity.products.forEach((product) => { - const combinationPrice = product.combinationPrice || Infinity; - - // 找到对应的 spu 并更新价格 - const spu = state.spuList.find((spu) => activity.spuId === spu.id); - if (spu) { - spu.price = Math.min(combinationPrice, spu.price || Infinity); - } - }); + // 提取活动价格 + const combinationPrice = activity.combinationPrice || Infinity; + // 查找对应的 spu 并更新价格 + const spu = state.spuList.find((spu) => activity.spuId === spu.id); + if (spu) { + // 赋值最低价格 + spu.price = Math.min(combinationPrice, spu.price); + // 赋值活动ID,为了点击跳转详情页 + spu.activityId = activity.id; + } }); // 只有双列布局时需要