var util = require('../../../utils/util.js'); var api = require('../../../config/api.js'); var app = getApp(); Page({ data: { couponList: [], code: '', codeChannelType: '', //2是抖音 其他小商城 status: 0, page: 1, limit: 20, count: 0, scrollTop: 0, showPage: false, currentType: 0, typeList: [{ name: "全部", type: 0 }, // { // name: "会员专享", // type: 3 // }, { name: "立减券", type: 1 }, { name: "折扣券", type: 2 }, ], totalList: [], options: '', //页面参数 showTc:false, couponPackage:{}, coupon:{} }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { if (this.data.options == '') { this.setData({ options: options }); } console.log(3) console.info(options) let scene = options.scene; }, /** * 生命周期函数--监听页面显示 */ onShow: function () { if (app.globalData.hasLogin == false) { wx.navigateTo({ url: "/pages/auth/login/login" }); return; } setTimeout(() => { this.exchange(this.data.options); this.setData({ options: '' }) }, 500); }, exchange(options) { let that = this; if (options.scene) { console.log(2000) let scene = decodeURIComponent(options.scene); var couponId, fraId; if (scene && scene.indexOf("fraId") >= 0) { //fraId,加盟商id:优惠券id 加盟商发的优惠券 var paras = scene.split(",")[1]; fraId = paras.split(":")[0]; couponId = paras.split(":")[1]; } else if (scene && scene.indexOf("pkSn") >= 0) { //卡卷包领取 console.log(3000) console.log(scene) var paras = scene.split(",")[1]; let pkSn = paras.split(";")[0]; //查询可领取卡包券 util.request(api.getCouponPackageOne, { pkSn: pkSn }, "GET").then(res => { if (res.errno == 0) { this.setData({ showTc:true, couponPackage:res.data.couponPackage, coupon:res.data.coupon }) } else util.showErrorToast(res.errmsg); this.getCouponList(); }) return; } else { // id,12;type,0 var paras = scene.split(";"); console.info(paras) var couponId = paras[0].replace("id,", ""); console.info(couponId) } //开始领取优惠券 util.request(api.CouponReceive, { couponId: couponId, fraId:fraId }, "POST").then(res => { if (res.errno == 0) { wx.showToast({ title: '领取成功', icon: 'none', duration: 3000 }) } else util.showErrorToast(res.errmsg); this.getCouponList(); }) } else if (options.q) { //扫码url二维码过来的 let url = decodeURIComponent(options.q); console.info(url) if (url.indexOf("?coupon=") >= 0) { let coupon = url.substring(url.indexOf("?coupon=") + 8); console.info('兑换码:' + coupon) that.setData({ code: coupon }) //判断是否登录 if (app.globalData.hasLogin) { that.goExchange(); } else { wx.navigateTo({ url: "/pages/auth/login/login" }); } } } else if (options.type) { //2抖音 1其他 that.setData({ code: options.coupon, codeChannelType: options.type }); if (app.globalData.hasLogin) { if (options.type == 2) that.goDouyinExchange(); else that.goExchange(); } else { wx.navigateTo({ url: "/pages/auth/login/login" }); } //util.showErrorToast(options.coupon); } else that.getCouponList(); }, goExchange: function () { if (!this.data.code || this.data.code.length === 0) { util.showErrorToast("请输入兑换码"); return; } let that = this; wx.showModal({ title: '提示', content: '确定要兑换吗?兑换后将无法撤回', success: (res) => { if (res.confirm) { util.request(api.CouponExchange, { code: this.data.code }, 'POST').then(function (res) { if (res.errno === 0) { that.getCouponList(); that.clearExchange(); wx.showToast({ title: "领取成功", duration: 2000 }) } else { util.showErrorToast(res.errmsg); } }); } } }); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { }, /** * 生命周期函数--监听页面隐藏 */ onHide: function () { }, /** * 生命周期函数--监听页面卸载 */ onUnload: function () { }, goService(e) { let goodsvalue = e.currentTarget.dataset.goodsvalue; let id = e.currentTarget.dataset.id; console.log(goodsvalue); // if (goodsvalue.length == 1) { // wx.navigateTo({ // url: '/pages/goods/goods?id=' + goodsvalue[0], // }) // } else if (goodsvalue.length >= 1) { wx.navigateTo({ url: '/pages/ucenter/couponGoods/couponGoods?id=' + id }) } else { wx.switchTab({ url: '/pages/tabBar/catalog/catalog', }) } }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh() { wx.showNavigationBarLoading() //在标题栏中显示加载 this.getCouponList(); wx.hideNavigationBarLoading() //完成停止加载 wx.stopPullDownRefresh() //停止下拉刷新 }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, getCouponList: function () { let that = this; that.setData({ scrollTop: 0, showPage: false, couponList: [] }); util.request(api.CouponMyList, { status: that.data.status, page: that.data.page, limit: that.data.limit }).then(function (res) { if (res.errno === 0) { that.setData({ scrollTop: 0, couponList: res.data.list, showPage: res.data.total > that.data.limit, count: res.data.total }); if (that.data.status == 0) { that.setData({ totalList: res.data.list }); } } }); }, bindExchange: function (e) { this.setData({ code: e.detail.value }); }, clearExchange: function () { this.setData({ code: '' }); }, goDouyinExchange: function () { if (this.data.code.length === 0) { util.showErrorToast("请输入兑换码"); return; } let that = this; wx.showModal({ title: '提示', content: '确定要兑换抖音券吗?兑换后将无法撤回', success: (res) => { if (res.confirm) { util.request(api.CouponDouyinExchange, { code: this.data.code }, 'POST').then(function (res) { if (res.errno === 0) { that.getCouponList(); that.clearExchange(); wx.showToast({ title: "领取成功", duration: 2000 }) } else { util.showErrorToast(res.errmsg); } }); } } }); }, nextPage: function (event) { var that = this; if (this.data.page > that.data.count / that.data.limit) { return true; } that.setData({ page: that.data.page + 1, currentType: 0 }); this.getCouponList(); }, prevPage: function (event) { if (this.data.page <= 1) { return false; } var that = this; that.setData({ page: that.data.page - 1, currentType: 0 }); this.getCouponList(); }, switchTab: function (e) { this.setData({ couponList: [], status: e.currentTarget.dataset.index, page: 1, limit: 20, count: 0, scrollTop: 0, showPage: false }); this.getCouponList(); }, switchType(e) { let type = e.currentTarget.dataset.type; let currentList = []; if (type == 0) { currentList = this.data.totalList; } else if (type == 3) { //会员券 currentList = this.data.totalList.filter(item => { return item.type == 4 }); } else { currentList = this.data.totalList.filter(item => { return item.voucherType == type }); } this.setData({ currentType: type, couponList: currentList }); }, onTabChange(e) { let status = e.detail.name; this.setData({ couponList: [], status: status, page: 1, limit: 20, count: 0, scrollTop: 0, showPage: false }); this.getCouponList(); }, closePupCoupon(){ this.setData({ showTc:false }) }, drawDown(){ console.log('卡券包领取') let that=this util.request(api.couponPackageReceive, { pkSn: that.data.couponPackage.pkSn }, "POST").then(res => { if (res.errno == 0) { wx.showToast({ title: '领取成功,已发放至您的账户', icon: 'none' }) this.setData({ showTc:false, }) this.getCouponList(); } else { wx.showToast({ title: res.errmsg, icon: 'none' }) } }) } })