true4Sorder.js 9.4 KB
import {
  request
} from "../../request/index.js"
const a = getApp()
Page({
  data: {
    imagesUrl: a.globalData.baseUrl,
    img: false,
    img1: false,
    address_id: '', //地址ID;不传则找默认地址
    gou_arr: '', //购物车的ID数组[从购物车过来,传这个]
    id: '', //普通商品的ID[从商品详情过来,传id和gui_arr和num,单规格则传id和num]
    gui_arr: '', // 规格ID数组[从商品详情过来]
    num: '', //购买数量[从商品详情过来]
    ConfirmAnOrder: [],
    orderContent: '',
    address: {},
    order_no: '', // 订单号
    type: 3, //1=平台积分抵扣;2=4s店积分抵扣;3=不抵扣.
    bei: '选填,给商家留言', // 备注,
    service: '快递配送',
    shifu: {
      red_name: ''
    },
    list_id: '', // 优惠券id
    all_pay: ' ', // 实付金额
    timeStamp: '',
    nonceStr: '',
    package: '',
    signType: 'MD5',
    paySign: '',
    pathed: 4,
    address_id: '',
    msg: '',
    use_fen_id: '',
  },

  onLoad: function (options) {
    let that = this
     console.log(options, "接口");
    this.setData({
      gou_arr: options.gouarr
    })
    that.getConfirmAnOrder()
  },
  onShow: function () {},
  goRedPacketd(e) {
    let order_no = e.currentTarget.dataset.order_no
    wx.navigateTo({
      url: '/pages/usePacket/usePacket?order_no=' + order_no
    })
  },
  getConfirmAnOrder() { // 获取订单
    let that = this
    wx.showLoading({
      mask: true
    })
    request({
      url: 'api/gou/order',
      data: {
        gou_arr: that.data.gou_arr
      }
    }).then(res => {
      that.setData({
        ConfirmAnOrder: res.data.data.order_good,
        address: res.data.data.address ? res.data.data.address : {},
        address_id: res.data.data.address ? res.data.data.address.id : '',
        orderContent: res.data.data,
        all_pay: res.data.data.all_pay,
        order_no: res.data.data.order_no,
        use_fen_id: res.data.data.use_fen_id
      })
      //  console.log(res, that.data.all_pay, "订单");
      wx.hideLoading()
    }).catch(err => {
      //  console.log(err);
      that.setData({
        msg: err.msg
      })
      that.popTest()
    })
  },
  changeReceiverAddress() {
    let pathed = this.data.pathed
    let gou_arr = this.data.gou_arr
    wx.navigateTo({
      url: '/pages/receiverAddress/receiverAddress'
    })
  },
  goTOpay() { // 订单支付
    let that = this
    let obj = {
      order_no: that.data.order_no,
      type: that.data.type,
      bei: that.data.bei,
      address_id: that.data.address.id,
      list_id: that.data.list_id
    }
    if (obj.address_id) {
      if (that.data.all_pay != 0) {
        request({
          url: 'api/gou/buy2',
          data: obj
        }).then(res => {
          if (res.data.data.type == 0) {
            wx.requestPayment({
              timeStamp: res.data.data.timeStamp,
              nonceStr: res.data.data.nonceStr,
              package: res.data.data.package,
              signType: 'MD5',
              paySign: res.data.data.paySign,
              success(res) {
                //  console.log(res);
                wx.redirectTo({
                  url: '/pages/MyOrder/MyOrder',
                })
              },
              fail(res) {
                //  console.log(res)
                wx.redirectTo({
                  url: '/pages/MyOrder/MyOrder',
                })
              }
            })
          } else {
            that.setData({
              msg: '支付成功'
            })
            that.popSuccessTest()
            setTimeout(() => {
              wx.redirectTo({
                url: '/pages/MyOrder/MyOrder',
              })
            }, 2000);
          }
        }).catch(err => {
          that.setData({
            msg: err.msg
          })
          this.popTest()
          //  console.log(err);
        })
      } else {
        wx.showModal({
          title: '提示',
          content: '您的积分可以完全抵扣! 纯积分支付商品不支持退款',
          success: function (res) {
            if (res.confirm) {
              request({
                url: 'api/gou/buy2',
                data: obj
              }).then(res => {
                that.setData({
                  msg: '支付成功'
                })
                that.popSuccessTest()
                setTimeout(() => {
                  wx.redirectTo({
                    url: '/pages/MyOrder/MyOrder',
                  })
                }, 2000);
              }).catch(err => {
                //  console.log(err);
                that.setData({
                  msg: err.msg
                })
                that.popTest()
              })
            } else {
              //  console.log('点击取消回调')
              that.setData({
                msg: '请重新选择付款方式'
              })
              that.popTest()
            }
          }
        })
      }
    } else {
      that.setData({
        msg: '请先选择收货地址'
      })
      that.popTest()
    }




  },
  changeChe() { //同放积分
    if (this.data.img1) {
      this.setData({
        img1: false,
        img: true,
        type: 1
      })
      this.actualPacket()
    } else {
      if (this.data.img) {
        this.setData({
          img: false,
          type: 3
        })
        this.actualPacket()
      } else {
        this.setData({
          img: true,
          type: 1
        })
        this.actualPacket()

      }
    }


  },
  change4S() { //4S店积分
    if (this.data.img) {
      this.setData({
        img1: true,
        img: false,
        type: 2
      })
      this.actualPacket()
    } else {
      if (this.data.img1) {
        this.setData({
          img1: false,
          type: 3
        })
        this.actualPacket()

      } else {
        this.setData({
          img1: true,
          type: 2
        })
        this.actualPacket()

      }
    }


  },
  clickme() { //备注
    this.showModal();
  },
  formSubmit(e) { //备注提交信息
    this.setData({
      bei: e.detail.value.value
    })
    this.hideModal()
  },
  async actualPacket() {
    let that = this
    let obj = {}
    obj.list_id = that.data.list_id
    obj.order_no = that.data.order_no
    obj.type = that.data.type
    const {
      data
    } = await request({
      url: 'api/red/shiPay',
      data: obj
    })
    that.setData({
      shifu: data.data,
      all_pay: data.data.shi
    })

  },
  //显示对话框
  showModal() {
    // 显示遮罩层
    var animation = wx.createAnimation({
      duration: 200,
      timingFunction: "linear",
      delay: 0
    })
    this.animation = animation
    animation.translateY(300).step()
    this.setData({
      animationData: animation.export(),
      showModalStatus: true
    })
    setTimeout(function () {
      animation.translateY(0).step()
      this.setData({
        animationData: animation.export()
      })
    }.bind(this), 100)
  },
  //隐藏对话框
  hideModal() {
    // 隐藏遮罩层
    var animation = wx.createAnimation({
      duration: 200,
      timingFunction: "linear",
      delay: 0
    })
    this.animation = animation
    animation.translateY(300).step()
    this.setData({
      animationData: animation.export(),
    })
    setTimeout(function () {
      animation.translateY(0).step()
      this.setData({
        animationData: animation.export(),
        showModalStatus: false
      })
    }.bind(this), 100)
  },
  popTest() {
    wx.showToast({ //纯文字弹窗
      title: this.data.msg,
      icon: 'none', //如果要纯文本,不要icon,将值设为'none'
      duration: 2000
    })
  },
  popSuccessTest() { // 消息提示
    wx.showToast({
      title: this.data.msg,
      icon: '', //默认值是success,就算没有icon这个值,就算有其他值最终也显示success
      duration: 2000, //停留时间
    })
  },
  chooseAddress() {

    wx.chooseAddress({ //首次调用
      //同意授权
      success: res => {
        //  console.log(res) //地址列表信息
      },
      fail: err => {
        wx.getSetting({
          success: res => {
            if (res.authSetting['scope.address'] == false) {
              wx.showModal({
                //弹出框
                title: '我爱我家申请获取你的通讯地址?',
                content: '',
                confirmColor: '#48A63E',
                cancelText: '拒绝',
                confirmText: '允许',
                success: res => {
                  if (res.cancel) {
                    //再次拒绝
                  } else {
                    wx.openSetting({
                      success: res => {
                        wx.chooseAddress({
                          success: res => {
                            //opensetting后同意
                            //  console.log(res)
                          },
                          fail: err => {
                            //  console.log(err)
                          }
                        })
                      },
                      fail: err => {
                        wx.showToast({
                          title: '取消收货地址授权',
                          icon: 'none'
                        })
                      }
                    })
                  }

                },
                fail: err => {

                }
              })

            }
          },
          fail: err => {
            //  console.log(err)
          }
        })
      }
    })
  },

})