affirm-order.js 8.7 KB
// pages/affirm-order/affirm-order.js
let method = require("../../utils/reuqest.js");
const util = require("../../utils/util.js");
const App=getApp();
Page({
  data: {
    iphone:'',
    userData: "", //收货地址
    id: '', //收货地址id
    goodsData: '', //商品信息
    show: false,
    maxlength: 50, //留言
    length: 0,
    leavaWord: '',
    skuId: '',
    orderId: '', //普通商品Id
    orderjfId: '', //积分商品Id
    couponId: '', //优惠券Id
    cardData: '',
    type: "", //优惠券类型
    cardAmount: '', //减优惠券金额
    amount: '', //满优惠券金额
    // count: '',
    stockNum: '', //商品库存
    discountText: '', //无门槛优惠券金额
    payment: '',
    deliveryTime: '', //配送时间年月
    timers: '', //配送时间
    resposeData: '', //支付
  },
  //选择配送时间
  selectTime(e) {
    console.log(e, 'e')
    if (e.detail.time && e.detail.time !== this.data.timers) {
      this.setData({
        timers: e.detail.time,
        // showTime: e.detail.flag,
        deliveryTime: e.detail.deliveryTime,
        showTime: false,
        timerId: e.detail.timerId
      })
    }
  },
  onClose() {
    this.setData({
      showTime: false
    });
  },
  onReady() {
    this.timepicker = this.selectComponent('#aaa')
  },
  chooseTime() {
    this.setData({
      showTime: true
    })
  },
  onClickButton() {
    this.setData({
      showModal: true
    })
  },
  //选择地址
  getAddress() {
    let index = wx.getStorageSync('addIndex')
    method.getRequest("/address", data => {
      if (data.statusCode == 0) {
        let list=data.data.reverse()
        this.setData({
          userData:list[index],
        })
      } else {
        wx.showToast({
          title: data.msg,
          icon: 'none'
        })
      }
    })
  },
  selectAdd() {
    wx.navigateTo({
      url: '/pages/select-address/select-address'
    })
  },
  //商品信息
  getList() {
    let postData = {
      skuId: this.data.skuId,
      num: this.data.count
    }
    method.postRequest("/order/goodsBuyNow", postData, data => {
      if (data.statusCode == 0) {
        this.setData({
          goodsData: data.data,
          // payment: 
        })
        wx.setStorageSync('couponVos', data.data.couponVos)
        if (wx.getStorageSync('couponVos')) {
          this.setData({
            discountText: wx.getStorageSync('cardAmount'),
          })
          wx.setStorageSync('cardAmount', '')
        }
        let payment = Number(this.data.goodsData.payment) - Number(this.data.discountText)
        let goodsData = this.data.goodsData;
        goodsData.payment = payment;
        this.setData({
          goodsData: goodsData
        })
      } else {
        // setTimeout(() => {
        //   util.getUser()
        // }, 2000)
      }
    })

  },
  //点击减少
  dec() {
    let that = this
    let count = that.data.count
    if (that.data.count > 1) {
      count--
    } else {
      wx.showToast({
        title: '已经是最少了哦~',
        icon: 'none'
      })
    }
    that.setData({
      count
    })
  },
  //点击增加
  add() {
    let that = this
    let count = that.data.count
    let stock = that.data.stockNum
    if (count < stock) {
      count++
      this.setData({

      })
    } else {
      wx.showToast({
        title: '不能超过库存哦~',
        icon: 'none'
      })
    }
    that.setData({
      count
    })
  },
  //留言
  userInput(e) {
    let value = e.detail.value
    let len = parseInt(value.length);
    if (value.length <= this.data.maxlength) {
      this.setData({
        content: value,
        length: len
      })
    } else {
      this.setData({
        content: value,
        length: this.data.maxlength
      })
    }
  },
  //优惠券
  goCardList() {
    wx.navigateTo({
      url: '/pages/my-discount-card/my-discount-card',
    })
  },
  //立即购买
  creatOrder: util.throttle(function () {
    if (this.data.userData == undefined) {
      wx.showToast({
        title: '请选择收货地址',
        icon: 'none'
      })
      return false;
    } else if (this.data.timers == '') {
      wx.showToast({
        title: '请选择配送时间',
        icon: 'none'
      })
      return false;
    } else {
      setTimeout(() => {
        let postData = {
          addressId: this.data.userData.id,
          couponId: this.data.couponId,
          deliveryTime: this.data.deliveryTime + this.data.timers,
          note: this.data.leavaWord,
          num: this.data.count,
          skuId: this.data.skuId
        }
        method.postRequest("/order/generateOrder", postData, data => {
          if (data.statusCode == 0) {
            this.setData({
              orderId: data.data.id
            })
            this.payment()
          } else {
            wx.showToast({
              title: data.msg,
              icon: 'none'
            })
          }
        })
        wx.removeStorageSync('type') //清除优惠券
        wx.setStorageSync('cardAmount', "")
      }, 1000)
    }
  }, 3000),
  //支付
  payment() {
    let obj = {}
    let _this = this;
    method.postRequest("/payment/payment/" + this.data.orderId, obj, data => {
      if (data.statusCode == 0) {
        this.setData({
          resposeData: data.data
        })
        wx.requestPayment({
          'timeStamp': this.data.resposeData.timeStamp,
          'nonceStr': this.data.resposeData.nonceStr,
          'package': this.data.resposeData.packages,
          'signType': 'MD5',
          'paySign': this.data.resposeData.paySign,
          'success': function (res) {
            wx.showToast({
              title: '支付成功',
            })
            setTimeout(() => {
              wx.reLaunch({
                url: '/pages/order-detail/order-detail?orderId=' + _this.data.orderId,
              })
            }, 1000)
          },
          'fail': function (res) {
            console.log(_this.data.orderId)
            wx.reLaunch({
              url: '/pages/order-detail/order-detail?orderId=' + _this.data.orderId,
            })
          },
          'complete': function (res) {}
        })
      } else {}
    })
  },
  //立即兑换
  change: util.throttle(function () {
    if (this.data.userData == undefined) {
      wx.showToast({
        title: '请选择收货地址',
        icon: "none"
      })
    } else if (this.data.timers == "") {
      wx.showToast({
        title: '请选择配送时间',
        icon: "none"
      })
    } else {
      let postData = {
        addressId: this.data.userData.id,
        deliveryTime: this.data.deliveryTime + this.data.timers,
        note: this.data.leavaWord,
        num: this.data.count,
        skuId: this.data.skuId
      }
      method.postRequest("/order/generateOrder", postData, data => {
        if (data.statusCode == 0) {
          this.setData({
            orderId:data.data.id
          })
          wx.showToast({
            title: '兑换成功',
            duration: 5000
          })
          setTimeout(() => {
            wx.reLaunch({
              url: '/pages/order-detail/order-detail?orderId=' + this.data.orderId,
            })
          }, 1000)
        } else {
          wx.showToast({
            title: data.msg,
            icon: 'none'
          })
        }
      })
    }
  }, 3000),
  onLoad: function (options) {
    this.setData({
      addressId: options.id,
      iphone: App.globalData.isIphoneX
    })
    let carts = wx.getStorageSync('carts')
    this.setData({
      carts: carts
    })
    this.setData({
      id: options.id,
      count: options.count,
      stockNum: options.stockNum,
      skuId: options.skuId
    })
  },

  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {

  },

  /**
   * 生命周期函数--监听页面显示
   */
  onShow: function () {
    this.getAddress();
    //优惠券
    let cardIds = wx.getStorageSync('cardId');
    let type = wx.getStorageSync('type');
    let amount = wx.getStorageSync('amount');
    let cardAmount = wx.getStorageSync('cardAmount');
    this.setData({
      couponId: cardIds,
      type: type,
      amount: amount,
      cardAmount: cardAmount
    })
    wx.removeStorageSync('cardId');
    wx.removeStorageSync('type');
    wx.removeStorageSync('amount');
    this.getList()
  },

  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})