4SshopcartOrder.js 9.8 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: 0, //1=平台积分抵扣;0=不抵扣.
    bei: '选填,给商家留言', // 备注,
    service: '快递配送',
    shifu: {
      red_name: ''
    },
    list_id: '',
    all_pay: ' ', // 实付金额
    timeStamp: '',
    nonceStr: '',
    package: '',
    signType: 'MD5',
    paySign: '',
    di_pay: '',
    pathed: 3,
    // 配送改
    pei:[
      {
        name:'快递配送',
        id:1
      },
      {
        name:'自提',
        id:2
      },
    ],
    pei_type:1
  },

  onLoad: function (options) {
    //  console.log(options, "接口");
    this.setData({
      id: options.id,
      num: options.num,
    })
    this.getConfirmAnOrder()
  },


  onReady: function () {

  },
  onShow: function () {

  },
  // nextDeliveryservice() {
  //   wx.navigateTo({
  //     url: '/pages/deliveryservice/deliveryservice?title=' + this.data.service
  //   })
  // },
  // 配送改
  choosePeiType(e){
    this.setData({
      pei_type:e.currentTarget.dataset.type
    })
    console.log(this.data.pei_type)
  },
  goRedPacketd(e) {
    let order_no = e.currentTarget.dataset.order_no
    wx.navigateTo({
      url: '/pages/usePacket/usePacket?order_no=' + order_no
    })
  },
  getConfirmAnOrder() { // 获取订单
    let that = this
    request({
      method: 'get',
      url: 'api/shop4s/orderPei',
      data: {
        id: that.data.id,
        num: that.data.num,
      }
    }).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
      })
      //  console.log(res.data.data, that.data.all_pay, "订单");
    }).catch(err => {
      //  console.log(err);
      if (err.code == 0) {
        that.setData({
          msg: err.msg
        })
        that.popTest()
        setTimeout(() => {
          wx.navigateBack({
            delta: 2, // 返回上一级页面。
          })
        }, 1800);
      }
    })
  },
  changeReceiverAddress() {
    wx.navigateTo({
      url: '/pages/receiverAddress/receiverAddress'
    })
  },
  goTOpay() { // 订单支付
    let that = this
    if (that.data.address_id != '') {
      if (that.data.all_pay != 0) {
        request({
          url: 'api/shop4s/buyPei2',
          data: {
            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,
            pei_type:that.data.pei_type
          }
        }).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?order_no=' + that.data.order_no,
                })
              },
              fail(res) {
                //  console.log(res)
                wx.redirectTo({
                  url: '/pages/MyOrder/MyOrder?order_no=' + that.data.order_no,
                })
              }
            })
          } 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/shop4s/buyPei2',
                data: {
                  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

                }
              }).then(res => {
                that.setData({
                  msg: '支付成功'
                })
                that.popSuccessTest()
                setTimeout(() => {
                  wx.redirectTo({
                    url: '/pages/MyOrder/MyOrder',
                  })
                }, 1700);
              }).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.img) {
      this.setData({
        img: false,
        type: 0
      })
      this.actualPacket()
    } else {
      this.setData({
        img: true,
        type: 1
      })
      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
    try {
      const {
        data
      } = await request({
        url: 'api/red/shiPay2',
        data: obj
      })
      //  console.log(data);
      that.setData({
        shifu: data.data,
        all_pay: data.data.shi
      })

    } catch (err) {
      that.setData({
        msg: err.msg
      })
      that.popTest()
    }

  },

  //显示对话框
  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, //停留时间
      mask: true
    })
  },
  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)
          }
        })
      }
    })
  },

})