| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127 |
- import memberService from '../../utils/member.js';
- Page({
- data: {
- memberInfo: {},
- pointsProducts: [],
- selectedProduct: null,
- showExchangeModal: false,
- coupons: []
- },
- onLoad() {
- this.loadData();
-
- // 添加数据变化监听器
- this.memberDataListener = (memberInfo) => {
- this.loadData();
- };
- memberService.addListener(this.memberDataListener);
- },
- onUnload() {
- // 移除监听器
- if (this.memberDataListener) {
- memberService.removeListener(this.memberDataListener);
- }
- },
- onShow() {
- // 每次显示页面时刷新数据
- this.loadData();
-
- // 清理过期积分
- memberService.cleanExpiredPoints();
- },
- loadData() {
- const memberInfo = memberService.getUserMemberInfo();
- const pointsProducts = memberService.POINTS_PRODUCTS;
- const coupons = memberService.getAvailableCoupons();
- this.setData({
- memberInfo,
- pointsProducts,
- coupons
- });
- },
- // 选择商品兑换
- selectProduct(e) {
- const productId = e.currentTarget.dataset.id;
- const product = this.data.pointsProducts.find(p => p.id === productId);
-
- this.setData({
- selectedProduct: product,
- showExchangeModal: true
- });
- },
- // 关闭兑换弹窗
- closeExchangeModal() {
- this.setData({
- showExchangeModal: false,
- selectedProduct: null
- });
- },
- // 确认兑换
- confirmExchange() {
- const { selectedProduct } = this.data;
-
- if (!selectedProduct) return;
-
- wx.showLoading({
- title: '兑换中...'
- });
- const result = memberService.exchangePoints(selectedProduct.id);
-
- wx.hideLoading();
-
- if (result.success) {
- wx.showToast({
- title: '兑换成功',
- icon: 'success'
- });
-
- // 刷新数据
- this.loadData();
- this.closeExchangeModal();
-
- // 显示获得的优惠券信息
- setTimeout(() => {
- wx.showModal({
- title: '兑换成功',
- content: `恭喜您获得${result.coupon.name},有效期${Math.ceil((new Date(result.coupon.expireDate) - new Date()) / (1000 * 60 * 60 * 24))}天`,
- showCancel: false
- });
- }, 1500);
-
- } else {
- wx.showToast({
- title: result.message,
- icon: 'none'
- });
- }
- },
- // 查看积分明细
- viewPointsHistory() {
- wx.navigateTo({
- url: '../points-history/points-history'
- });
- },
- // 查看我的优惠券
- viewMyCoupons() {
- wx.navigateTo({
- url: '../my-coupons/my-coupons'
- });
- },
- // 返回上一页
- goBack() {
- wx.navigateBack();
- }
- });
|