diff --git a/src/views/modules/marketing-level/detail.vue b/src/views/modules/marketing-level/detail.vue index 12e4cbe..948c552 100644 --- a/src/views/modules/marketing-level/detail.vue +++ b/src/views/modules/marketing-level/detail.vue @@ -108,7 +108,9 @@ - {{ generateMemberBenefits(scope.row) }} + {{ + scope.row.benefitsInfo || generateMemberBenefits(scope.row) + }} @@ -184,16 +186,25 @@ - + - - 添加优惠券 - + + + {{ + scope.row.birthdayCouponsName ? "编辑优惠券" : "添加优惠券" + }} + + + {{ scope.row.birthdayCouponsName }} + + @@ -203,22 +214,25 @@ - - 新增 - - - 删除 - + + + + 新增 + + + 删除 + + @@ -284,32 +298,36 @@ - - - - - - + - - - - - - + - - - - - + + + + @@ -590,11 +608,12 @@ export default { showReviewDialog: false, // 弹框表单数据 couponForm: { - name: "", - discountAmount: "", - minAmount: "", - validityPeriod: "" + birthdayCouponsName: "", + birthdayCouponsThreshold: 0, + birthdayCouponsMinus: 0, + couponsEffectiveTimeType: 1 }, + currentEditingLevel: null, // 当前正在编辑优惠券的等级 // 积分任务设置数据(按接口格式) dailySignSettings: { taskEnable: false, @@ -649,60 +668,84 @@ export default { editPointsValidityDays: 365, levelDetailData: [ { + level: "LV1", levelName: "LV1", levelDisplayName: "铜牌会员", - minGrowthValue: 0, - maxGrowthValue: 100, + startGrowthValue: 0, + endGrowthValue: 100, requiredGrowthValue: "100", - memberCount: "1,250", + membershipCount: 1250, memberBenefits: "新会员双倍积分,享受基础会员价格优惠", enableDiscount: true, discountRate: 5, - enableExchange: false, - enableBirthdayCoupon: true, - enableBirthdayPoints: false + enablePointsRedemption: false, + enableBirthdayCoupons: true, + enableBirthdayReward: false, + birthdayCouponsName: "", + birthdayCouponsThreshold: 0, + birthdayCouponsMinus: 0, + couponsEffectiveTimeType: 1, + benefitsInfo: "" }, { + level: "LV2", levelName: "LV2", levelDisplayName: "银牌会员", - minGrowthValue: 101, - maxGrowthValue: 500, + startGrowthValue: 101, + endGrowthValue: 500, requiredGrowthValue: "500", - memberCount: "850", + membershipCount: 850, memberBenefits: "享受9.5折优惠,每月专属优惠券,生日礼品", enableDiscount: true, discountRate: 10, - enableExchange: true, - enableBirthdayCoupon: true, - enableBirthdayPoints: true + enablePointsRedemption: true, + enableBirthdayCoupons: true, + enableBirthdayReward: true, + birthdayCouponsName: "", + birthdayCouponsThreshold: 0, + birthdayCouponsMinus: 0, + couponsEffectiveTimeType: 1, + benefitsInfo: "" }, { + level: "LV3", levelName: "LV3", levelDisplayName: "金牌会员", - minGrowthValue: 501, - maxGrowthValue: 1200, + startGrowthValue: 501, + endGrowthValue: 1200, requiredGrowthValue: "1,200", - memberCount: "450", + membershipCount: 450, memberBenefits: "享受9折优惠,免费配送服务,专属客服支持", enableDiscount: true, discountRate: 15, - enableExchange: true, - enableBirthdayCoupon: true, - enableBirthdayPoints: true + enablePointsRedemption: true, + enableBirthdayCoupons: true, + enableBirthdayReward: true, + birthdayCouponsName: "", + birthdayCouponsThreshold: 0, + birthdayCouponsMinus: 0, + couponsEffectiveTimeType: 1, + benefitsInfo: "" }, { + level: "LV4", levelName: "LV4", levelDisplayName: "钻石会员", - minGrowthValue: 1201, - maxGrowthValue: 9999, + startGrowthValue: 1201, + endGrowthValue: 9999, requiredGrowthValue: "2,500", - memberCount: "180", + membershipCount: 180, memberBenefits: "享受8.5折优惠,优先配送,专属活动邀请,年度礼品", enableDiscount: true, discountRate: 20, - enableExchange: true, - enableBirthdayCoupon: true, - enableBirthdayPoints: true + enablePointsRedemption: true, + enableBirthdayCoupons: true, + enableBirthdayReward: true, + birthdayCouponsName: "", + birthdayCouponsThreshold: 0, + birthdayCouponsMinus: 0, + couponsEffectiveTimeType: 1, + benefitsInfo: "" } ], editLevelData: [], @@ -725,6 +768,12 @@ export default { if (this.shopId && this.shopName && !this.isBatchMode) { this.isEditMode = false; // 默认进入查看模式 } + + // 为现有数据生成会员权益信息 + this.levelDetailData = this.levelDetailData.map(level => ({ + ...level, + benefitsInfo: level.benefitsInfo || this.generateMemberBenefits(level) + })); }, mounted() { if (this.isBatchMode) { @@ -759,7 +808,8 @@ export default { birthdayCouponsMinus: 0, couponsEffectiveTimeType: 1, enableBirthdayReward: false, - membershipCount: 0 + membershipCount: 0, + benefitsInfo: "" } ]; }, @@ -794,11 +844,12 @@ export default { // 重置表单数据 this.couponForm = { - name: "", - discountAmount: "", - minAmount: "", - validityPeriod: "" + birthdayCouponsName: "", + birthdayCouponsThreshold: 0, + birthdayCouponsMinus: 0, + couponsEffectiveTimeType: 1 }; + this.currentEditingLevel = null; // 重置积分任务设置数据 this.dailySignSettings = { @@ -915,7 +966,8 @@ export default { birthdayCouponsMinus: level.birthdayCouponsMinus || 0, couponsEffectiveTimeType: level.couponsEffectiveTimeType || 1, enableBirthdayReward: level.enableBirthdayReward, - membershipCount: level.membershipCount || 0 + membershipCount: level.membershipCount || 0, + benefitsInfo: level.benefitsInfo || "" })); } else { // 如果没有等级设置列表,查看模式下不显示数据 @@ -950,19 +1002,23 @@ export default { generateMemberBenefits(level) { const benefits = []; + // 会员折扣权益 if (level.enableDiscount && level.discountRate) { const discount = (100 - level.discountRate) / 10; benefits.push(`享受${discount}折优惠`); } + // 积分兑换权益 if (level.enablePointsRedemption) { benefits.push("积分兑换商品"); } + // 生日优惠券权益 if (level.enableBirthdayCoupons) { - benefits.push("生日专属优惠券"); + benefits.push("有生日优惠券"); } + // 生日双倍积分权益 if (level.enableBirthdayReward) { benefits.push("生日双倍积分"); } @@ -990,7 +1046,8 @@ export default { birthdayCouponsMinus: level.birthdayCouponsMinus, couponsEffectiveTimeType: level.couponsEffectiveTimeType, enableBirthdayReward: level.enableBirthdayReward, - membershipCount: level.membershipCount + membershipCount: level.membershipCount, + benefitsInfo: this.generateMemberBenefits(level) })), dailySignSettings: { ...this.dailySignSettings, @@ -1136,18 +1193,51 @@ export default { }, handleSaveEdit() { - // 保存编辑的数据 - this.levelDetailData = JSON.parse(JSON.stringify(this.editLevelData)); + // 保存编辑的数据,并为每个等级生成会员权益信息 + this.levelDetailData = JSON.parse(JSON.stringify(this.editLevelData)).map( + level => ({ + ...level, + benefitsInfo: this.generateMemberBenefits(level) + }) + ); this.pointsValidityDays = this.editPointsValidityDays; + // 更新积分任务的启用状态:将 isEnabled 映射到 taskEnable + this.updateTaskEnableStatus(); + this.isEditMode = false; // 调用保存接口 this.saveSettingsData(); }, + // 更新积分任务的启用状态:将 isEnabled 映射到 taskEnable + updateTaskEnableStatus() { + if (this.editPointsTaskData && this.editPointsTaskData.length > 0) { + this.editPointsTaskData.forEach(task => { + switch (task.taskName) { + case "每日签到": + this.dailySignSettings.taskEnable = task.isEnabled; + break; + case "浏览商品": + this.viewGoodsSettings.taskEnable = task.isEnabled; + break; + case "购买商品": + this.buyGoodsSettings.taskEnable = task.isEnabled; + break; + case "分享商品": + this.shareGoodsSettings.taskEnable = task.isEnabled; + break; + case "评价商品": + this.commentGoodsSettings.taskEnable = task.isEnabled; + break; + } + }); + } + }, + // 新增会员等级 - handleAddLevel(index) { + handleAddLevel() { // 创建新的等级数据 const newLevel = { level: `LV${this.editLevelData.length + 1}`, @@ -1163,12 +1253,12 @@ export default { birthdayCouponsMinus: 0, couponsEffectiveTimeType: 1, enableBirthdayReward: false, - membershipCount: 0 + membershipCount: 0, + benefitsInfo: "" }; - // 在指定位置后插入新等级 - this.editLevelData.splice(index + 1, 0, newLevel); - this.$message.success("新增等级成功"); + // 总是在最后添加新等级 + this.editLevelData.push(newLevel); }, // 删除会员等级 @@ -1185,20 +1275,22 @@ export default { }) .then(() => { this.editLevelData.splice(index, 1); - this.$message.success("删除等级成功"); }) .catch(() => { // 用户取消删除 }); }, - handleAddCoupon() { + handleAddCoupon(level) { + this.currentEditingLevel = level; this.showCouponDialog = true; + + // 如果等级已有优惠券配置,则回显数据 this.couponForm = { - name: "生日优惠券", - discountAmount: "10元", - minAmount: "1元", - validityPeriod: "请选择有效时间" + birthdayCouponsName: level.birthdayCouponsName || "生日优惠券", + birthdayCouponsThreshold: level.birthdayCouponsThreshold || 0, + birthdayCouponsMinus: level.birthdayCouponsMinus || 0, + couponsEffectiveTimeType: level.couponsEffectiveTimeType || 1 }; }, @@ -1270,8 +1362,40 @@ export default { // 保存弹框数据 saveCouponForm() { - // this.$message.success("优惠券添加成功"); + // 验证表单数据 + if (!this.couponForm.birthdayCouponsName) { + this.$message.error("请输入优惠券名称"); + return; + } + if ( + !this.couponForm.birthdayCouponsThreshold && + this.couponForm.birthdayCouponsThreshold !== 0 + ) { + this.$message.error("请输入优惠券门槛金额"); + return; + } + if ( + !this.couponForm.birthdayCouponsMinus && + this.couponForm.birthdayCouponsMinus !== 0 + ) { + this.$message.error("请输入优惠券减免金额"); + return; + } + if (!this.couponForm.couponsEffectiveTimeType) { + this.$message.error("请选择优惠券有效时间"); + return; + } + + // 将优惠券数据设置到当前等级对象中 + if (this.currentEditingLevel) { + this.currentEditingLevel.birthdayCouponsName = this.couponForm.birthdayCouponsName; + this.currentEditingLevel.birthdayCouponsThreshold = this.couponForm.birthdayCouponsThreshold; + this.currentEditingLevel.birthdayCouponsMinus = this.couponForm.birthdayCouponsMinus; + this.currentEditingLevel.couponsEffectiveTimeType = this.couponForm.couponsEffectiveTimeType; + } + this.showCouponDialog = false; + this.currentEditingLevel = null; }, saveSignInForm() {