// pages/coupon/coupon_store.js var app = getApp(); Page({ /** * 页面的初始数据 */ data: { language: '', coupon_list: [], page: 1, goload: true, total_page: 0, loading: true, allLoaded: false, isLoadMore: true, types: [], typesIndex: 0, kFootshow: true, coupon_form: '', visibleIntegralPopup: false, exchangeForm: {}, integralPluginName: "", }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { this._initData(); this._getNetData(); }, /** * 生命周期函数--监听页面初次渲染完成 */ onReady: function () { let language = wx.getStorageSync('langIndex'); this.setData({ 'language': language.en }); }, //右下角悬浮按钮 gocouponStore() { wx.redirectTo({ url: '/packageA/member/coupon_v2/coupon_v2', }); }, tapurl(e) { console.log(e.currentTarget.dataset.link); let link = e.currentTarget.dataset.link; wx.navigateTo({ url: link, }); }, setTypesIndex(evt) { let index = evt.currentTarget.dataset.index; if (index == this.data.typesIndex) return; this.setData({ typesIndex: index }); this._getNetData(); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { }, /** * 页面相关事件处理函数--监听用户下拉动作 */ onPullDownRefresh: function () { this._initData(); this._getNetData(); }, /** * 页面上拉触底事件的处理函数 */ onReachBottom: function () { if (this.data.isLoadMore) { this._getMoreData(this.data.page); } else { console.log('没有更多数据'); // wx.showToast({ // title: '没有更多数据', // icon: 'none', // duration: 1000 // }) } }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { }, _initData() { this.setData({ coupon_list: [], page: 1, goload: true, total_page: 0, loading: true, allLoaded: false, isLoadMore: true }); }, _getNetData() { let that = this; let urlStr = app.getNetAddresss("coupon.member-coupon.coupons-for-member"); if (app.globalData.store_alone_temp == 1) { // 开启门店独立模块 urlStr = app.getNetAddresss("plugin.store-alone-temp.frontend.coupon.coupons-for-member"); } urlStr += "&page=" + that.data.page; urlStr += "&coupon_type=" + that.data.typesIndex; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { var myData = res.data; console.log(myData); for (let i = 0; i < myData.data.data.length; i++) { let couponItem = myData.data.data[i]; // 是否显示积分兑换 couponItem.isIntegralExchange = (couponItem.is_integral_exchange_coupon != 0) && (couponItem.exchange_coupon_integral > 0); if (couponItem.coupon_type_name == '平台商品') { couponItem.type = 1; } else if (couponItem.coupon_type_name == '兑换券') { couponItem.type = 2; } else if (couponItem.coupon_type_name == '分类商品') { couponItem.type = 3; } else if (couponItem.coupon_type_name == '指定商品') { couponItem.type = 4; } else if (couponItem.coupon_type_name == '酒店商品') { couponItem.type = 5; } else if (couponItem.coupon_type_name == '门店商品') { couponItem.type = 6; } else if (couponItem.coupon_type_name == '商品和门店') { couponItem.type = 8; } } that.setData({ total_page: res.data.data.last_page, coupon_list: myData.data.data, types: (myData.search_array instanceof Object)?Object.values(myData.search_array):myData.search_array, slide_shows: myData.slide_shows, integralPluginName: myData.integral_plugin_name ? myData.integral_plugin_name : '消费积分' }); if (that.data.page >= res.data.data.last_page) { that.setData({ isLoadMore: false }); } if (res.data.coupon_form) { // 插件 领券中心表单 that.setData({ coupon_form: res.data.coupon_form }); } } else { that.setData({ coupon_list: res.data }); wx.showToast({ icon: 'none', title: res.msg, duration: 1000 }); } wx.stopPullDownRefresh(); }, fail: function (res) { console.log(res); } }); }, selectedcoupon(type_in, item, index) { // 关闭积分兑换 if (!item.isIntegralExchange) { if (!app._isTextEmpty(this.data.coupon_form)) { wx.navigateTo({ url: '/packageC/diyform/diyform?scene=' + this.data.coupon_form + '&tag=coupon', }); return; } if (type_in == 2) { wx.navigateTo({ url: '/packageE/team_sell/getCouponShare/getCouponShare?id=' + item.id, }); return; } } //领取 let that = this; let urlStr = app.getNetAddresss("coupon.member-coupon.get-coupon"); urlStr += "&coupon_id=" + item.id; if (item.isIntegralExchange && this.data.exchangeForm.couponTotal > 0) { urlStr += "&exchange_total=" + this.data.exchangeForm.couponTotal; } app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { var temp = res.data; let list = that.data.coupon_list; temp.isIntegralExchange = (temp.is_integral_exchange_coupon != 0) && (temp.exchange_coupon_integral > 0); list[index] = temp; for (let i = 0; i < list.length; i++) { if (list[i].coupon_type_name == '平台商品') { list[i].type = 1; } else if (list[i].coupon_type_name == '兑换券') { list[i].type = 2; } else if (list[i].coupon_type_name == '分类商品') { list[i].type = 3; } else if (list[i].coupon_type_name == '指定商品') { list[i].type = 4; } else if (list[i].coupon_type_name == '酒店商品') { list[i].type = 5; } else if (list[i].coupon_type_name == '门店商品') { list[i].type = 6; } else if (list[i].coupon_type_name == '商品和门店') { list[i].type = 8; } } wx.showToast({ title: item.isIntegralExchange?'兑换成功':'领取成功', icon: 'none', duration: 1000 }); that.setData({ coupon_list: list }); // that._getNetData(); } else { wx.showModal({ title: res.data.reason?res.msg:'', content: res.data.reason?res.data.reason:res.msg, showCancel: false }); } }, fail: function (res) { console.log(res); } }); }, selectedcouponBtn(e) { // let type_in = e.currentTarget.dataset.item.use_type; wx.navigateTo({ url: '/packageE/team_sell/getCouponShare/getCouponShare?id=' + item.id, }); }, _getMoreData(page) { if (this.data.page == this.data.total_page) { this.setData({ loading: true, allLoaded: true, isLoadMore: false }); return; } var that = this; let urlStr = app.getNetAddresss("coupon.member-coupon.coupons-for-member"); if (app.globalData.store_alone_temp == 1) { // 开启门店独立模块 urlStr = app.getNetAddresss("plugin.store-alone-temp.frontend.coupon.coupons-for-member"); } if (this.data.page >= this.data.total_page) { that.setData({ loading: true, allLoaded: true }); return; } else { that.setData({ page: this.data.page + 1 }); urlStr += "&page=" + that.data.page; urlStr += "&coupon_type=" + that.data.typesIndex; app._getNetWork({ url: urlStr, success: function (resdata) { var res = resdata.data; if (res.result == 1) { let myData = res.data; for (let i = 0; i < myData.data.data.length; i++) { let couponItem = myData.data.data[i]; couponItem.isIntegralExchange = (couponItem.is_integral_exchange_coupon != 0) && (couponItem.exchange_coupon_integral > 0); if (couponItem.coupon_type_name == '平台商品') { couponItem.type = 1; } else if (couponItem.coupon_type_name == '兑换券') { couponItem.type = 2; } else if (couponItem.coupon_type_name == '分类商品') { couponItem.type = 3; } else if (couponItem.coupon_type_name == '指定商品') { couponItem.type = 4; } else if (couponItem.coupon_type_name == '酒店商品') { couponItem.type = 5; } else if (couponItem.coupon_type_name == '门店商品') { couponItem.type = 6; } else if (couponItem.coupon_type_name == '商品和门店') { couponItem.type = 8; } } if (res.data.coupon_form) { // 插件 领券中心表单 that.setData({ coupon_form: res.data.coupon_form }); } else { that.setData({ coupon_form: '' }); } that.setData({ loading: false, allLoaded: false, coupon_list: that.data.coupon_list.concat(myData.data.data), }); } else { that.setData({ page: that.page - 1, loading: true, allLoaded: true, isLoadMore: false }); return; } }, fail: function (res) { console.log(res); } }); } }, claim(evt) { console.log(evt); let index = evt.detail.index; let item = evt.detail.item; let type_in = evt.detail.item.use_type; this.selectedcoupon(type_in, item, index); }, tabrshowbtn(e) { let bol = e.detail; if (bol) { this.setData({ kFootshow: false }); } }, showIntegralPopup (evt) { let index = evt.detail.index; let item = evt.detail.item; let type_in = evt.detail.item.use_type; let form = { couponTotal: 1, exIntegral: item.exchange_coupon_integral }; this.setData({ exchangeForm: form, visibleIntegralPopup: true, callbackFn: this.selectedcoupon.bind(this, type_in, item, index) }); }, // 步进器 changeTotal (e) { this.setData({ 'exchangeForm.couponTotal': e.detail }); }, cancelExchange () { this.setData({visibleIntegralPopup: false}); }, exchangeCoupon () { if (this.data.exchangeForm.couponTotal <= 0) { return wx.showToast({ title: '请输入兑换优惠券的数量!', }); } this.data.callbackFn(); this.setData({visibleIntegralPopup: false}); }, });