diff --git a/src/api/mall/product/spu.ts b/src/api/mall/product/spu.ts index eee632d5365de0cbb33992bbb9a61b3cc9af19e2..d44c0f6439c8a4ee04348ef59583710a1308a7fd 100644 --- a/src/api/mall/product/spu.ts +++ b/src/api/mall/product/spu.ts @@ -50,6 +50,8 @@ export interface Spu { giveIntegral?: number // 赠送积分 virtualSalesCount?: number // 虚拟销量 price?: number // 商品价格 + combinationPrice?: number // 商品拼团价格 + seckillPrice?: number // 商品秒杀价格 salesCount?: number // 商品销量 marketPrice?: number // 市场价 costPrice?: number // 成本价 diff --git a/src/api/mall/promotion/seckill/seckillActivity.ts b/src/api/mall/promotion/seckill/seckillActivity.ts index e834641014efef1a400d8c54201ff7bfda5d1fc2..4bb0e8b1a41f0188852a8c3385c6abe1180714cd 100644 --- a/src/api/mall/promotion/seckill/seckillActivity.ts +++ b/src/api/mall/promotion/seckill/seckillActivity.ts @@ -24,6 +24,7 @@ export interface SeckillActivityVO { // 秒杀活动所需属性 export interface SeckillProductVO { skuId: number + spuId: number seckillPrice: number stock: number } diff --git a/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue b/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue index fe6f3a83b96c8a019a6c0a30a42d81916f197ffa..7bb7176aeb56f84b4c3bb6c9cedf0074d251be3c 100644 --- a/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue +++ b/src/components/DiyEditor/components/mobile/PromotionCombination/index.vue @@ -54,7 +54,7 @@ class="text-12px" :style="{ color: property.fields.price.color }" > - ¥{{ spu.price }} + ¥{{ fenToYuan(spu.combinationPrice || spu.price || 0) }} @@ -66,6 +66,9 @@ import { PromotionCombinationProperty } from './config' import * as ProductSpuApi from '@/api/mall/product/spu' import * as CombinationActivityApi from '@/api/mall/promotion/combination/combinationActivity' +import {Spu} from "@/api/mall/product/spu"; +import {CombinationProductVO} from "@/api/mall/promotion/combination/combinationActivity"; +import {fenToYuan} from "@/utils"; /** 拼团 */ defineOptions({ name: 'PromotionCombination' }) @@ -80,6 +83,13 @@ watch( const activity = await CombinationActivityApi.getCombinationActivity(props.property.activityId) if (!activity?.spuId) return spuList.value = [await ProductSpuApi.getSpu(activity.spuId)] + // 循环活动信息,赋值拼团价格 + activity.products.forEach((product: CombinationProductVO) => { + spuList.value.forEach((spu: Spu) => { + // 商品原售价和拼团价,哪个便宜就赋值哪个 + spu.combinationPrice = Math.min(spu.combinationPrice || Infinity, product.combinationPrice); // 设置 SPU 的最低价格 + }) + }); }, { immediate: true, diff --git a/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue b/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue index 1b4113b69b866b1eaaf231f52c803d06ae222d81..63bee8eb7190f6252d8d5696f0caa343cf8768c6 100644 --- a/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue +++ b/src/components/DiyEditor/components/mobile/PromotionSeckill/index.vue @@ -54,7 +54,7 @@ class="text-12px" :style="{ color: property.fields.price.color }" > - ¥{{ spu.price }} + ¥{{ fenToYuan(spu.seckillPrice || spu.price || 0) }} @@ -66,6 +66,9 @@ import { PromotionSeckillProperty } from './config' import * as ProductSpuApi from '@/api/mall/product/spu' import * as SeckillActivityApi from '@/api/mall/promotion/seckill/seckillActivity' +import {Spu} from "@/api/mall/product/spu"; +import {SeckillProductVO} from "@/api/mall/promotion/seckill/seckillActivity"; +import {fenToYuan} from "@/utils"; /** 秒杀 */ defineOptions({ name: 'PromotionSeckill' }) @@ -80,6 +83,13 @@ watch( const activity = await SeckillActivityApi.getSeckillActivity(props.property.activityId) if (!activity?.spuId) return spuList.value = [await ProductSpuApi.getSpu(activity.spuId)] + spuList.value = [await ProductSpuApi.getSpu(activity.spuId)] + // 循环活动信息,赋值秒杀最低价格 + activity.products.forEach((product: SeckillProductVO) => { + spuList.value.forEach((spu: Spu) => { + spu.seckillPrice = Math.min(spu.seckillPrice || Infinity, product.seckillPrice); // 设置 SPU 的最低价格 + }) + }); }, { immediate: true,