cart-affirm-order.js 8.3 KB
// pages/affirm-order/affirm-order.js
let method = require("../../utils/reuqest.js");
const util = require("../../utils/util.js");
Page({
  data: {
    userData: "",
    addressId: '',
    startTime: '',
    cartList: [], //商品列表
    goodsData: '',
    goodsList: '',
    showTime: false, //配送时间弹框
    // storePickupTime: '',
    deliveryTime: '', //配送时间年月
    timers: '',   //  配送时间
    timerId: '',
    show: false,
    currentDate: '12:00',
    currentDateTwo: '13:00',
    minHour: 1,
    maxHour: 23,
    length: 0,
    maxlength: 50,
    leavaWord: '',
    discountText: '',
    id: '',
    date: '',
    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;
      this.setData({
        goodsList: goodsList
      })
    })
  },
  //地址信息
  getAddress() {
    let index = wx.getStorageSync('addIndex')
    method.getRequest("/address", data => {
      if (data.statusCode == 0) {
        this.setData({
          userData: data.data[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
    })
    // this.timepicker.getDliveryTime();
  },
  onClickButton() {
    this.setData({
      showModal: true
    })
  },
  getDayTime() {
    var myDate = new Date();
    var year = myDate.getFullYear();
    var month = myDate.getMonth();
    var day = myDate.getDate();
    var dayNow = year + '-' + (month + 1) + "-" + day;
    this.setData({
      startTime: dayNow
    })
  },
  //点击减少
  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() {
    //生成订单
    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)
  
    }
  
  },
  //购物车-立即购买
  buys() {
    method.getRequest("/order/buyNow/" + this.data.cartIds, data => {
      if (data.statusCode == 0) {
        this.payment();
        wx.setStorageSync('cardAmount', "")
      } else {}
    })
  },
  //支付
  payment() {
    let obj = {};
    let resposeData = {};
    method.postRequest("/payment/payment/" + this.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: '支付成功',
            })
            wx.switchTab({
              url: '/pages/shopping-cart/shopping-cart',
            })
          },
          'fail': function (res) {
            wx.switchTab({
              url: '/pages/shopping-cart/shopping-cart',
            })
          },
          'complete': function (res) {}
        })
      }
    })
  },
  onLoad: function (options) {
    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 date = wx.getStorageSync('date');
    let type = wx.getStorageSync('type') //优惠券类型
    let amount = wx.getStorageSync('amount') //优惠券类型
    let cardId = wx.getStorageSync('cardId')

    that.setData({
      cartsId: cartsId,
      cartList: goodsCarts,
      couponId: cardId,
      // date: date,
      type: type,
      amount: amount
    })
    that.getTotalPrice();
    that.getAddress();
    that.getDayTime(); //获取当天时间
    // that.buy();
    that.getList(); //
    //   wx.removeStorageSync('pitchCart')
    // wx.removeStorageSync('pitchList')
    wx.removeStorageSync('cardId')
    wx.setStorageSync('amount', "")
  },

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

  },

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

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

  },

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

  },

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

  }
})