- 评价1个商品获得
+ 文字评价1个商品获得
+ 积分
+
+
+ 图文评价1个商品获得
+
该任务每日最高获得
{
+ console.log("获取会员设置数据:", res);
+ if (res.data && res.data.code == 200) {
+ const settingsData = res.data.data;
+ this.applySettingsData(settingsData);
+ } else {
+ console.error("获取设置数据失败:", res.data?.message);
+ // 获取失败时,查看模式下不显示数据
+ this.levelDetailData = [];
+ }
+ })
+ .catch(err => {
+ console.error("获取会员设置失败:", err);
+ // 接口调用失败时,查看模式下不显示数据
+ this.levelDetailData = [];
+ });
+ },
+
+ // 应用设置数据到表单
+ applySettingsData(settingsData) {
+ if (!settingsData) {
+ // 如果获取不到设置,查看模式下不显示数据
+ this.levelDetailData = [];
+ return;
+ }
+
+ // 回显积分有效天数
+ if (settingsData.pointsValidDays) {
+ this.pointsValidityDays = settingsData.pointsValidDays;
+ }
+
+ // 回显会员等级设置列表
+ if (
+ settingsData.levelSettingsList &&
+ settingsData.levelSettingsList.length > 0
+ ) {
+ this.levelDetailData = settingsData.levelSettingsList.map(level => ({
+ level: level.level,
+ levelName: level.levelName,
+ startGrowthValue: level.startGrowthValue,
+ endGrowthValue: level.endGrowthValue,
+ enableDiscount: level.enableDiscount,
+ discountRate: level.discountRate,
+ enablePointsRedemption: level.enablePointsRedemption,
+ enableBirthdayCoupons: level.enableBirthdayCoupons,
+ birthdayCouponsName: level.birthdayCouponsName || "",
+ birthdayCouponsThreshold: level.birthdayCouponsThreshold || 0,
+ birthdayCouponsMinus: level.birthdayCouponsMinus || 0,
+ couponsEffectiveTimeType: level.couponsEffectiveTimeType || 1,
+ enableBirthdayReward: level.enableBirthdayReward,
+ membershipCount: level.membershipCount || 0
+ }));
+ } else {
+ // 如果没有等级设置列表,查看模式下不显示数据
+ this.levelDetailData = [];
+ }
+
+ // 直接使用接口数据,不做映射
+ if (settingsData.dailySignSettings) {
+ this.dailySignSettings = { ...settingsData.dailySignSettings };
+ }
+
+ if (settingsData.viewGoodsSettings) {
+ this.viewGoodsSettings = { ...settingsData.viewGoodsSettings };
+ }
+
+ if (settingsData.buyGoodsSettings) {
+ this.buyGoodsSettings = { ...settingsData.buyGoodsSettings };
+ }
+
+ if (settingsData.shareGoodsSettings) {
+ this.shareGoodsSettings = { ...settingsData.shareGoodsSettings };
+ }
+
+ if (settingsData.commentGoodsSettings) {
+ this.commentGoodsSettings = { ...settingsData.commentGoodsSettings };
+ }
+
+ console.log("数据回显完成");
+ },
+
+ // 生成会员权益描述
+ 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("生日专属优惠券");
+ }
+
+ if (level.enableBirthdayReward) {
+ benefits.push("生日双倍积分");
+ }
+
+ return benefits.length > 0 ? benefits.join(",") : "暂无特殊权益";
+ },
+
+ // 保存设置数据
+ saveSettingsData() {
+ const saveData = {
+ shopIdList: this.isBatchMode ? this.selectedShopIds : [this.shopId],
+ pointsValidDays: this.pointsValidityDays,
+ enable: true,
+ levelSettingsList: this.levelDetailData.map(level => ({
+ level: level.level,
+ levelName: level.levelName,
+ startGrowthValue: level.startGrowthValue,
+ endGrowthValue: level.endGrowthValue,
+ enableDiscount: level.enableDiscount,
+ discountRate: level.discountRate,
+ enablePointsRedemption: level.enablePointsRedemption,
+ enableBirthdayCoupons: level.enableBirthdayCoupons,
+ birthdayCouponsName: level.birthdayCouponsName,
+ birthdayCouponsThreshold: level.birthdayCouponsThreshold,
+ birthdayCouponsMinus: level.birthdayCouponsMinus,
+ couponsEffectiveTimeType: level.couponsEffectiveTimeType,
+ enableBirthdayReward: level.enableBirthdayReward,
+ membershipCount: level.membershipCount
+ })),
+ dailySignSettings: {
+ ...this.dailySignSettings,
+ taskDesc: "第一天签到1分,第二天2分,第三天3分,连续7天10分"
+ },
+ buyGoodsSettings: {
+ ...this.buyGoodsSettings,
+ taskDesc: "购买1元=1分,每天最多获得500分"
+ },
+ shareGoodsSettings: {
+ ...this.shareGoodsSettings,
+ taskDesc: "分享一个商品获得5分,每天最多获得3次"
+ },
+ commentGoodsSettings: {
+ ...this.commentGoodsSettings,
+ taskDesc: "评价一个商品获得3分,每天最多获得5次"
+ },
+ viewGoodsSettings: {
+ ...this.viewGoodsSettings,
+ taskDesc: "浏览一个商品获得1分,每天最多获得2分"
+ }
+ };
+
+ console.log("保存数据:", saveData);
+
+ this.$api.mer_admin
+ .membershipEnableSaveSettings(saveData)
+ .then(res => {
+ console.log("保存设置数据:", res);
+ if (res.data && res.data.code == 200) {
+ this.$message.success("设置保存成功");
+ } else {
+ this.$message.error(res.data?.message || "保存失败");
+ }
+ })
+ .catch(err => {
+ console.error("保存设置失败:", err);
+ this.$message.error("保存失败");
+ });
+ },
+
goBack() {
// 获取当前路由名称
const currentRouteName = this.$route.name;
@@ -792,9 +1113,14 @@ export default {
handleEditLevel() {
this.isEditMode = true;
+ // 如果没有等级数据,使用默认数据
+ if (this.levelDetailData.length === 0) {
+ this.levelDetailData = this.getDefaultLevelData();
+ }
// 深拷贝数据用于编辑
this.editLevelData = JSON.parse(JSON.stringify(this.levelDetailData));
this.editPointsTaskData = JSON.parse(JSON.stringify(this.pointsTaskData));
+ console.log(this.editPointsTaskData);
this.editPointsValidityDays = this.pointsValidityDays;
},
@@ -812,11 +1138,58 @@ export default {
handleSaveEdit() {
// 保存编辑的数据
this.levelDetailData = JSON.parse(JSON.stringify(this.editLevelData));
- this.pointsTaskData = JSON.parse(JSON.stringify(this.editPointsTaskData));
this.pointsValidityDays = this.editPointsValidityDays;
this.isEditMode = false;
- this.$message.success("保存成功");
+
+ // 调用保存接口
+ this.saveSettingsData();
+ },
+
+ // 新增会员等级
+ handleAddLevel(index) {
+ // 创建新的等级数据
+ const newLevel = {
+ level: `LV${this.editLevelData.length + 1}`,
+ levelName: `等级${this.editLevelData.length + 1}`,
+ startGrowthValue: 0,
+ endGrowthValue: 0,
+ enableDiscount: false,
+ discountRate: 0,
+ enablePointsRedemption: false,
+ enableBirthdayCoupons: false,
+ birthdayCouponsName: "",
+ birthdayCouponsThreshold: 0,
+ birthdayCouponsMinus: 0,
+ couponsEffectiveTimeType: 1,
+ enableBirthdayReward: false,
+ membershipCount: 0
+ };
+
+ // 在指定位置后插入新等级
+ this.editLevelData.splice(index + 1, 0, newLevel);
+ this.$message.success("新增等级成功");
+ },
+
+ // 删除会员等级
+ handleDeleteLevel(index) {
+ if (this.editLevelData.length <= 1) {
+ this.$message.warning("至少需要保留一个等级");
+ return;
+ }
+
+ this.$confirm("确定要删除这个等级吗?", "提示", {
+ confirmButtonText: "确定",
+ cancelButtonText: "取消",
+ type: "warning"
+ })
+ .then(() => {
+ this.editLevelData.splice(index, 1);
+ this.$message.success("删除等级成功");
+ })
+ .catch(() => {
+ // 用户取消删除
+ });
},
handleAddCoupon() {
@@ -832,78 +1205,98 @@ export default {
// 弹框相关方法
handleEditSignIn() {
this.showSignInDialog = true;
- this.signInForm = {
- day1: 1,
- day2: 2,
- day3: 3,
- day4: 4,
- day5: 5,
- day6: 6,
- day7: 10
- };
+ // 如果没有记录ID,设置默认值
+ if (!this.recordId) {
+ this.dailySignSettings.taskConfigDetail = {
+ oneDay: 1,
+ twoDay: 2,
+ threeDay: 3,
+ fourDay: 4,
+ fiveDay: 5,
+ sixDay: 6,
+ sevenDay: 10
+ };
+ }
},
handleEditBrowse() {
this.showBrowseDialog = true;
- this.browseForm = {
- pointsPerProduct: 1,
- maxPointsPerDay: 2
- };
+ // 如果没有记录ID,设置默认值
+ if (!this.recordId) {
+ this.viewGoodsSettings.taskConfigDetail = {
+ oneGoodsViewPoints: 1,
+ enableDailyPointsLimit: true,
+ dailyPointsLimit: 2
+ };
+ }
},
handleEditPurchase() {
this.showPurchaseDialog = true;
- this.purchaseForm = {
- pointsPerYuan: 1,
- maxPointsPerDay: 500
- };
+ // 如果没有记录ID,设置默认值
+ if (!this.recordId) {
+ this.buyGoodsSettings.taskConfigDetail = {
+ pointsRatioAmount: 1,
+ enableDailyPointsLimit: true,
+ dailyPointsLimit: 500
+ };
+ }
},
handleEditShare() {
this.showShareDialog = true;
- this.shareForm = {
- pointsPerShare: 5,
- maxPointsPerDay: 15
- };
+ // 如果没有记录ID,设置默认值
+ if (!this.recordId) {
+ this.shareGoodsSettings.taskConfigDetail = {
+ oneSharePoints: 5,
+ enableDailyPointsLimit: true,
+ dailyPointsLimit: 15
+ };
+ }
},
handleEditReview() {
this.showReviewDialog = true;
- this.reviewForm = {
- pointsPerReview: 3,
- maxPointsPerDay: 15
- };
+ // 如果没有记录ID,设置默认值
+ if (!this.recordId) {
+ this.commentGoodsSettings.taskConfigDetail = {
+ textCommentPoints: 3,
+ imageTextCommentPoints: 5,
+ enableDailyPointsLimit: true,
+ dailyPointsLimit: 15
+ };
+ }
},
// 保存弹框数据
saveCouponForm() {
- this.$message.success("优惠券添加成功");
+ // this.$message.success("优惠券添加成功");
this.showCouponDialog = false;
},
saveSignInForm() {
- this.$message.success("每日签到设置保存成功");
this.showSignInDialog = false;
+ // this.$message.success("每日签到设置已更新");
},
saveBrowseForm() {
- this.$message.success("浏览商品设置保存成功");
this.showBrowseDialog = false;
+ // this.$message.success("浏览商品设置已更新");
},
savePurchaseForm() {
- this.$message.success("购买商品设置保存成功");
this.showPurchaseDialog = false;
+ // this.$message.success("购买商品设置已更新");
},
saveShareForm() {
- this.$message.success("分享商品设置保存成功");
this.showShareDialog = false;
+ // this.$message.success("分享商品设置已更新");
},
saveReviewForm() {
- this.$message.success("评价商品设置保存成功");
this.showReviewDialog = false;
+ // this.$message.success("评价商品设置已更新");
},
handleEditTask(row) {
@@ -944,7 +1337,38 @@ export default {
"marketList",
"storeList",
"marketId"
- ])
+ ]),
+
+ // 积分任务数据,固定任务描述,开启状态从设置对象中获取
+ pointsTaskData() {
+ return [
+ {
+ taskName: "每日签到",
+ taskDescription: "第一天签到1分,第二天2分,第三天3分,连续7天10分",
+ isEnabled: this.dailySignSettings.taskEnable
+ },
+ {
+ taskName: "浏览商品",
+ taskDescription: "浏览一个商品获得1分,每天最多获得2分",
+ isEnabled: this.viewGoodsSettings.taskEnable
+ },
+ {
+ taskName: "购买商品",
+ taskDescription: "购买1元=1分,每天最多获得500分",
+ isEnabled: this.buyGoodsSettings.taskEnable
+ },
+ {
+ taskName: "分享商品",
+ taskDescription: "分享一个商品获得5分,每天最多获得3次",
+ isEnabled: this.shareGoodsSettings.taskEnable
+ },
+ {
+ taskName: "评价商品",
+ taskDescription: "评价一个商品获得3分,每天最多获得5次",
+ isEnabled: this.commentGoodsSettings.taskEnable
+ }
+ ];
+ }
}
};
diff --git a/src/views/modules/marketing/level/index.vue b/src/views/modules/marketing/level/index.vue
index deefeb0..8e43dbc 100644
--- a/src/views/modules/marketing/level/index.vue
+++ b/src/views/modules/marketing/level/index.vue
@@ -92,6 +92,10 @@ export default {
created() {
this.initData();
},
+ activated() {
+ // 每次进入页面都刷新数据,确保数据是最新的
+ this.getList();
+ },
methods: {
initData() {
// 默认选择所有摊铺
@@ -132,18 +136,40 @@ export default {
},
handleMemberToggle(row) {
- // 处理会员启用/禁用
- console.log(
- "Toggle member for shop:",
- row.shopName,
- "Enable:",
- row.enable
- );
- // 这里应该调用API更新状态
- // 可以根据需要添加更新接口调用
- this.$message.success(
- `${row.shopName} 会员功能已${row.enable ? "启用" : "禁用"}`
- );
+ // 检查是否有ID字段,没有则提示先设置会员等级明细
+ if (!row.id) {
+ // 恢复开关状态
+ row.enable = !row.enable;
+ this.$message.warning("请先设置会员等级明细");
+ return;
+ }
+
+ // 调用API更新状态
+ this.$api.mer_admin
+ .membershipEnableChange({
+ id: row.id,
+ enable: row.enable
+ })
+ .then(res => {
+ console.log("修改会员状态响应:", res);
+ if (res.data && res.data.code == 200) {
+ this.$message.success(
+ `${row.shopName} 会员功能已${row.enable ? "启用" : "禁用"}`
+ );
+ // 修改成功后刷新列表
+ this.getList();
+ } else {
+ // 修改失败,恢复开关状态
+ row.enable = !row.enable;
+ this.$message.error(res.data?.message || "修改会员状态失败");
+ }
+ })
+ .catch(err => {
+ console.error("修改会员状态失败:", err);
+ // 修改失败,恢复开关状态
+ row.enable = !row.enable;
+ this.$message.error("修改会员状态失败");
+ });
},
// 关闭已打开的等级明细页面
@@ -159,14 +185,15 @@ export default {
// 先关闭已打开的等级明细页面
this.closeLevelDetailTab();
+ // 直接跳转到等级明细页面
setTimeout(() => {
- // 跳转到等级明细页面,添加时间戳确保页面刷新
this.$router.push({
name: "marketing-level-detail",
query: {
shopId: row.shopId,
shopName: row.shopName,
- timestamp: Date.now() // 添加时间戳确保每次跳转都是新的
+ id: row.id || null,
+ timestamp: Date.now()
}
});
}, 200);