cart-affirm-order.js 8.4 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:'',
    orderId: '', //订单Id
    userData: "", //地址
    addressId: '',
    cartList: [], //商品列表
    goodsList: '',
    showTime: false, //配送时间弹框
    deliveryTime: '', //配送时间年月
    timers: '', //配送时间
    show: false,
    length: 0,
    maxlength: 50,
    leavaWord: '',
    discountText: '',
    id: '',
    skuId: '',
    orderId: '',
    count: '',
    stockNum: '', //库存
    totalPrice: '',
    cartIds: '', //购物车id
    cartsId: [], //列表商品id
    couponId: '', //优惠券id
    payment: '',
    amount: '' //优惠券金额
  },
  //商品
  getList() {
    let pitchList = wx.getStorageSync('pitchList')
    method.getRequest("/order/buyNow/" + pitchList, data => {
      this.setData({
        goodsList: data.data,
      })
      wx.setStorageSync('couponVos', data.data.couponVos)
      if (wx.getStorageSync('couponVos')) {
        this.setData({
          discountText: wx.getStorageSync('cardAmount'), //选择使用优惠券金额
        })
        wx.setStorageSync('cardAmount', '')
      }
      let payment = Number(this.data.goodsList.payment) - Number(this.data.discountText)
      let goodsList = this.data.goodsList;
      goodsList.payment = payment;
      goodsList.payment=goodsList.payment.toFixed(2)
      this.setData({
        goodsList: goodsList
      })
    })
  },
  //地址信息
  getAddress() {
    let index = wx.getStorageSync('addIndex')
    method.getRequest("/address", data => {
      if (data.statusCode == 0) {
        let list=data.data.reverse()
        this.setData({
          userData: list[index],
          addressId: data.data[index].id
        })
      }
    })
  },
  //地址页面跳转
  emit() {
    wx.navigateTo({
      url: '/pages/select-address/select-address',
    })
  },
  //配送时间
  selectTime(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
    })
  },
  //点击减少
  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',
    })
  },
  //计算总价
  getTotalPrice() {
    let carts = this.data.cartList;
    let total = 0;
    for (let i = 0; i < carts.length; i++) {
      total += carts[i].num * carts[i].goodsPrice
    }
    this.setData({
      //carts: carts,
      totalPrice: total.toFixed(2)
    });
  },
  //立即购买
  buy: util.throttle(function () {
    //生成订单
    this.getAddress();
    if (this.data.userData == undefined) {
      wx.showToast({
        title: '请选择收货地址',
        icon: "none"
      })
    } else if (this.data.timers == "") {
      wx.showToast({
        title: '请选择配送时间',
        icon: "none"
      })
    } else {
      setTimeout(() => {
        let postData = {
          addressId: this.data.addressId,
          carts: this.data.cartsId,
          couponId: this.data.couponId,
          deliveryTime: this.data.deliveryTime + this.data.timers,
          note: this.data.leavaWord,
        }
        method.postRequest("/order/buyNow", postData, data => {
          if (data.statusCode == 0) {
            this.setData({
              cartIds: data.data.id
            })
            // this.buys()
            this.payment();
          } else {
            wx.showToast({
              title: data.msg,
              icon: 'none'
            })
            // setTimeout(() => {
            //   util.getUser()
            // }, 2000)
          }
        })
      }, 500)

    }

  }, 3000),
  //购物车-立即购买
  buys() {
    method.getRequest("/order/buyNow/" + this.data.cartIds, data => {
      if (data.statusCode == 0) {
        this.setData({
          orderId: data.data.id
        })
        console.log(this.data.orderId,'id')
        this.payment();      
        wx.setStorageSync('cardAmount', "")
      } else {}
    })
  },
  //支付
  payment() {
    let that = this;
    let obj = {};
    let resposeData = {};
    method.postRequest("/payment/payment/" + that.data.cartIds, obj, data => {
      if (data.statusCode == 0) {
        resposeData = data.data;
        wx.requestPayment({
          'timeStamp': resposeData.timeStamp,
          'nonceStr': resposeData.nonceStr,
          'package': resposeData.packages,
          'signType': 'MD5',
          'paySign': resposeData.paySign,
          'success': function (res) {
            wx.showToast({
              title: '支付成功',
            })
            setTimeout(() => {
              wx.reLaunch({
                url: '/pages/order-detail/order-detail?orderId=' + that.data.cartIds,
              })
            }, 1000)
          },
          'fail': function (res) {
            wx.switchTab({
              url: '/pages/shopping-cart/shopping-cart',
            })
          },
          'complete': function (res) {}
        })
      }
    })
  },
  onLoad: function (options) {
    this.setData({
      iphone: App.globalData.isIphoneX
    })
    wx.setStorageSync('type', "")
    console.log(wx.getStorageSync('sendTime').substring(12, 23), 'sendtime')
    let sendTime = wx.getStorageSync('sendTime')
    if (sendTime !== '') {
      this.setData({
        deliveryTime: sendTime.substring(0, 12),
        timers: sendTime.substring(12, 23)
      })
    }
    this.getList();
    if (this.data.cardId) {
      this.setData({
        couponId: cardId,
        id: options.id,
        count: options.count,
        stockNum: options.stockNum,
        skuId: options.skuId,
      })
      wx.removeStorageSync('couponId')
    } else {
      this.setData({
        id: options.id,
        count: options.count,
        stockNum: options.stockNum,
        skuId: options.skuId,
      })
    }
    this.getTotalPrice();
    this.getAddress()
  },

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

  },

  onShow: function () {
    let that = this;
    //优惠券
    let cartsId = wx.getStorageSync('pitchList');
    let goodsCarts = wx.getStorageSync('pitchCart');
    let type = wx.getStorageSync('type') //优惠券类型
    let amount = wx.getStorageSync('amount') //优惠券满金额
    let cardId = wx.getStorageSync('cardId') //优惠券id
    that.setData({
      cartsId: cartsId,
      cartList: goodsCarts,
      couponId: cardId,
      type: type,
      amount: amount
    })
    that.getTotalPrice();
    that.getAddress();
    that.getList();
    wx.removeStorageSync('cardId')
    wx.setStorageSync('amount', "")
  },

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

  },

  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {
    wx.setStorageSync('pitchList', "")
    wx.setStorageSync('pitchCart', "")
  },

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

  },

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

  },

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

  }
})