From dcc1a3e9d51bfe1a3fee892117ba873c04d0a779 Mon Sep 17 00:00:00 2001 From: puhui999 Date: Mon, 2 Sep 2024 17:21:10 +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=E5=95=86=E5=9F=8E:=20=E6=BB=A1=E5=87=8F=E9=80=81?= =?UTF-8?q?=E6=B4=BB=E5=8A=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/mall/promotion/reward/rewardActivity.ts | 2 +- .../mall/promotion/rewardActivity/RewardForm.vue | 2 +- .../rewardActivity/components/RewardRule.vue | 3 +++ .../components/RewardRuleCouponSelect.vue | 14 ++++++++------ 4 files changed, 13 insertions(+), 8 deletions(-) diff --git a/src/api/mall/promotion/reward/rewardActivity.ts b/src/api/mall/promotion/reward/rewardActivity.ts index c45ba893..09f32ac5 100644 --- a/src/api/mall/promotion/reward/rewardActivity.ts +++ b/src/api/mall/promotion/reward/rewardActivity.ts @@ -22,7 +22,7 @@ export interface RewardRule { discountPrice?: number freeDelivery?: boolean point: number - giveCoupons?: { + giveCouponTemplateCounts?: { [key: number]: number } } diff --git a/src/views/mall/promotion/rewardActivity/RewardForm.vue b/src/views/mall/promotion/rewardActivity/RewardForm.vue index 852fb976..fc1d5dfc 100644 --- a/src/views/mall/promotion/rewardActivity/RewardForm.vue +++ b/src/views/mall/promotion/rewardActivity/RewardForm.vue @@ -117,7 +117,7 @@ const open = async (type: string, id?: number) => { // 转区段时间 data.startAndEndTime = [data.startTime, data.endTime] // 规则分转元 - data.rules.forEach((item: any) => { + data.rules?.forEach((item: any) => { item.discountPrice = fenToYuan(item.discountPrice || 0) }) formData.value = data diff --git a/src/views/mall/promotion/rewardActivity/components/RewardRule.vue b/src/views/mall/promotion/rewardActivity/components/RewardRule.vue index c87d26d5..8dc37b32 100644 --- a/src/views/mall/promotion/rewardActivity/components/RewardRule.vue +++ b/src/views/mall/promotion/rewardActivity/components/RewardRule.vue @@ -103,6 +103,9 @@ const deleteRule = (ruleIndex: number) => { /** 添加优惠规则 */ const addRule = () => { + if (isEmpty(formData.value.rules)) { + formData.value.rules = [] + } formData.value.rules.push({ limit: 0, discountPrice: 0, diff --git a/src/views/mall/promotion/rewardActivity/components/RewardRuleCouponSelect.vue b/src/views/mall/promotion/rewardActivity/components/RewardRuleCouponSelect.vue index 6e435bc7..f515e4f1 100644 --- a/src/views/mall/promotion/rewardActivity/components/RewardRuleCouponSelect.vue +++ b/src/views/mall/promotion/rewardActivity/components/RewardRuleCouponSelect.vue @@ -86,10 +86,12 @@ const deleteCoupon = (index: number) => { /** 初始化赠送的优惠券列表 */ const initGiveCouponList = async () => { // 校验优惠券存在 - if (isEmpty(rewardRule.value) || isEmpty(rewardRule.value.giveCoupons)) { + if (isEmpty(rewardRule.value) || isEmpty(rewardRule.value.giveCouponTemplateCounts)) { return } - const tempLateIds = Object.keys(rewardRule.value.giveCoupons!).map((item) => parseInt(item)) + const tempLateIds = Object.keys(rewardRule.value.giveCouponTemplateCounts!).map((item) => + parseInt(item) + ) const data = await CouponTemplateApi.getCouponTemplateList(tempLateIds) if (!data) { return @@ -98,7 +100,7 @@ const initGiveCouponList = async () => { data.forEach((coupon) => { list.value.push({ ...coupon, - giveCount: rewardRule.value.giveCoupons![coupon.id] + giveCount: rewardRule.value.giveCouponTemplateCounts![coupon.id] }) }) } @@ -111,10 +113,10 @@ const setGiveCouponList = () => { // 设置优惠券和其数量的对应 list.value.forEach((rule) => { - if (!rewardRule.value.giveCoupons) { - rewardRule.value.giveCoupons = {} + if (!rewardRule.value.giveCouponTemplateCounts) { + rewardRule.value.giveCouponTemplateCounts = {} } - rewardRule.value.giveCoupons[rule.id] = rule.giveCount! + rewardRule.value.giveCouponTemplateCounts[rule.id] = rule.giveCount! }) } defineExpose({ setGiveCouponList })