cart-affirm-order.js 8.0 KB
// pages/affirm-order/affirm-order.js
let method = require("../../utils/reuqest.js");
const util = require("../../utils/util.js");
Page({
  data: {
    userData: {
      address: '请选择收货地址'
    },
    addressId: '',
    startTime: '',
    cartList: [], //商品列表
    goodsData: '',
    goodsList: '',
    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: '',
  },
  //商品
  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'), //选择使用优惠券金额
        })
      }
      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',
    })
  },
  //选择时间
  //配送时间
  bindDateChange: function (e) {
    this.setData({
      date: e.detail.value
    })
  },
  //获取当天时间
  getDayTime() {
    var myDate = new Date();
    var year = myDate.getFullYear();
    var month = myDate.getMonth();
    var day = myDate.getDate();
    var dayNow = year + '-' + (month + 1) + "-" + day;
    console.log(dayNow, 'daynow')
    this.setData({
      startTime: dayNow
    })
  },
  showPopupTwo() {
    this.setData({
      show: true
    });
  },
  showPopup() {
    this.setData({
      show: true
    });
  },
  onClose() {
    this.setData({
      show: false
    });
  },
  onInput(e) {
    this.setData({
      currentDate: e.detail,
    });
  },
  onInputTwo(e) {
    this.setData({
      currentDateTwo: e.detail,
    });
  },
  cancel() {
    this.setData({
      show: false
    });
  },
  confirm() {
    this.setData({
      show: false
    });
  },
  cancelTwo() {
    this.setData({
      show: false
    });
  },
  confirmTwo() {
    this.setData({
      show: false
    });
  },

  //选择时间
  selectTime() {
    this.bindStartTimeChange()
  },
  bindStartTimeChange: function (e) {
    this.setData({
      startTime: e.detail.value
    })
  },
  bindEndTimeChange: function (e) {
    this.setData({
      endTime: e.detail.value
    })
  },
  //点击减少
  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();
    setTimeout(() => {
      let postData = {
        addressId: this.data.addressId,
        carts: this.data.cartsId,
        couponId: this.data.couponId,
        deliveryTime: this.data.date,
        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 cardId = wx.getStorageSync('cardId')

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

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

  },

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

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

  },

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

  },

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

  }
})