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; + } }); // 只有双列布局时需要