123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899 |
- const WXAPI = require('apifm-wxapi')
- const AUTH = require('../../utils/auth')
- Page({
- data: {
- },
- onLoad: function (options) {
- this.mergeCouponsRules();
- },
- onShow: function () {
- },
- async mergeCouponsRules() {
- const res = await WXAPI.mergeCouponsRules()
- if (res.code == 0) {
- this.setData({
- mergeCouponsRules: res.data
- })
- }
- },
- onPullDownRefresh() {
- this.mergeCouponsRules()
- wx.stopPullDownRefresh()
- },
- async merge(e) {
- const idx = e.currentTarget.dataset.idx
- const mergeCouponsRule = this.data.mergeCouponsRules[idx]
- this.setData({loading: true})
- let res = await WXAPI.myCoupons({
- token: wx.getStorageSync('token'),
- status: 0
- })
- if (res.code == 700) {
- wx.showToast({
- title: '您暂无可用的优惠券',
- icon: 'none'
- })
- this.setData({loading: false})
- return
- }
- if (res.code != 0) {
- wx.showToast({
- title: res.msg,
- icon: 'none'
- })
- this.setData({loading: false})
- return
- }
- const myCoupons = res.data.reverse()
- const couponIds = [] // 用来合成的优惠券id
- let ok = true
- let msg = ''
- mergeCouponsRule.rules.filter(rule => {
- return rule.type == 0
- }).forEach(rule => {
- for (let i = 0; i < rule.number; i++) {
- const couponIndex = myCoupons.findIndex(ele => { return ele.pid == rule.couponId})
- if (couponIndex == -1) {
- ok = false
- msg = rule.couponName
- return
- }
- const coupon = myCoupons[couponIndex]
- couponIds.push(coupon.id)
- myCoupons.splice(couponIndex, 1)
- }
- })
- if (!ok) {
- wx.showToast({
- title: '缺少优惠券:' + msg,
- icon: 'none'
- })
- this.setData({loading: false})
- return
- }
- res = await WXAPI.mergeCoupons({
- token: wx.getStorageSync('token'),
- mergeId: mergeCouponsRule.id,
- couponIds: couponIds.join()
- })
- if (res.code != 0) {
- wx.showToast({
- title: res.msg,
- icon: 'none'
- })
- this.setData({loading: false})
- return
- }
- wx.showToast({
- title: '兑换成功'
- })
- this.setData({loading: false})
- setTimeout(() => {
- wx.navigateBack({
- delta: 0,
- })
- }, 1000);
- }
- })
|