const app = getApp(); 
 | 
var util = require('../../utils/util.js'); 
 | 
var api = require('../../utils/service-api.js'); 
 | 
Page({ 
 | 
  
 | 
  data: { 
 | 
    address: {}, 
 | 
    addrDefault: "", 
 | 
    hasAddress: false, 
 | 
    total: 0, 
 | 
    couponsShow: false, //优惠券 
 | 
    delivery: [], 
 | 
    key: 0, 
 | 
    keydelivery: 0, 
 | 
    isShow: true, 
 | 
    selected: "", 
 | 
    hidden: false, 
 | 
    goodsList: [], 
 | 
    skuList: [], 
 | 
    usefulCoupon: [], 
 | 
    coupons: '暂无可用优惠券', // 优惠券金额 
 | 
    couponReceiveId: null, // 优惠券Id 
 | 
    postage: '', //邮费 
 | 
    showCoupon: false, //是否存在优惠券 
 | 
    carId: '', //购物车id 
 | 
    buttonClicked: false, 
 | 
    checkedValue: false, 
 | 
    deliverySelect: "物流配送", 
 | 
    qsfy: "", 
 | 
    pageScen: "", 
 | 
    discountExplain: {}, 
 | 
    shopInfo:{}, 
 | 
  }, 
 | 
  
 | 
  onLoad(options) { 
 | 
    var _this = this; 
 | 
  
 | 
  this.setData({ 
 | 
    shopInfo:app.shopInfo 
 | 
  }); 
 | 
  
 | 
  }, 
 | 
  
 | 
  onShow: function () { 
 | 
    var _this = this; 
 | 
    _this.jsjg(); 
 | 
  
 | 
    //获取收货地址 
 | 
    _this.getAddress(); 
 | 
  
 | 
  }, 
 | 
  
 | 
  
 | 
  //计算订单价格 
 | 
  jsjg() { 
 | 
    var _this = this; 
 | 
    var param = { 
 | 
      deliverySelect: _this.data.deliverySelect, 
 | 
      shopId:app.shopInfo.id, 
 | 
    }; 
 | 
    if (this.data.address) { 
 | 
      param["receiveAddrId"] = this.data.address.addrId; 
 | 
    } 
 | 
  
 | 
    if (this.data.couponReceiveId) { 
 | 
      param["couponReceiveId"] = this.data.couponReceiveId; 
 | 
    } 
 | 
  
 | 
    util.request({ 
 | 
      method: "POST", 
 | 
      api: api.order.calculationCartOrder, 
 | 
      data: param, 
 | 
      callback: function(data) { 
 | 
        var goodsList = []; 
 | 
        goodsList = goodsList.concat(data.rows); 
 | 
        var skuList = []; 
 | 
        for (var i = 0; i < goodsList.length; i++) { 
 | 
          var sku = { 
 | 
            "skuId": goodsList[i].cartSkuId, 
 | 
            "count": goodsList[i].cartNumber 
 | 
          } 
 | 
          skuList.push(sku); 
 | 
        } 
 | 
        if (data.mapInfo.defaultAddress) { 
 | 
          _this.setData({ 
 | 
            "hasAddress": true, 
 | 
          }) 
 | 
        } 
 | 
  
 | 
        if (data.mapInfo.shopCoupon.receiveId) { 
 | 
          _this.setData({ 
 | 
            "coupons": data.mapInfo.shopCoupon.cName, 
 | 
            "couponReceiveId": data.mapInfo.shopCoupon.receiveId, 
 | 
            "showCoupon": true 
 | 
          }); 
 | 
        } 
 | 
        _this.setData({ 
 | 
          "goodsList": goodsList, 
 | 
          "skuList": skuList, 
 | 
          "discountExplain": data.mapInfo.discountExplain, 
 | 
          "address": data.mapInfo.defaultAddress, 
 | 
          "usefulCoupon": data.mapInfo.usefulCoupon, 
 | 
          "shopCoupon": data.mapInfo.shopCoupon, 
 | 
          "deliverySelect": data.mapInfo.deliverySelect, 
 | 
        }); 
 | 
      } 
 | 
    }); 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  }, 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  mySelect(e) { 
 | 
    var name = e.currentTarget.dataset.name 
 | 
    this.setData({ 
 | 
      tihuoWay: name, 
 | 
      select: false 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  //获取textarea里的值 
 | 
  txtInput(e) { 
 | 
    this.setData({ 
 | 
      txtContent: e.detail.value 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  
 | 
  onShowText(e) { 
 | 
    this.setData({ 
 | 
      isShow: true, 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  
 | 
  onReady() { 
 | 
    this.getTotalPrice(); 
 | 
  }, 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  /** 
 | 
   * 计算总价 
 | 
   */ 
 | 
  getTotalPrice() { 
 | 
  
 | 
  }, 
 | 
  
 | 
  
 | 
  bindTextAreaBlur(event) { 
 | 
    var value = event.detail.value; 
 | 
    this.setData({ 
 | 
      txtContent: value, 
 | 
    }); 
 | 
  }, 
 | 
  
 | 
  
 | 
  // 支付 
 | 
  startPayment() { 
 | 
  
 | 
    // console.log("支付"); 
 | 
    var _this = this; 
 | 
    if (!_this.data.address) { 
 | 
      wx.showToast({ 
 | 
        title: "请选择收货地址", 
 | 
        icon: "none" 
 | 
      }); 
 | 
      return; 
 | 
    } 
 | 
  
 | 
  
 | 
    wx.showLoading({ 
 | 
      title: '加载中', 
 | 
      mask: true, 
 | 
      duration: 2000 
 | 
    }); 
 | 
  
 | 
    util.buttonClicked(this); 
 | 
  
 | 
    var goods = this.data.goodsList[0]; 
 | 
    var couponReceiveId = _this.data.couponReceiveId; 
 | 
    var checkedValue = _this.data.checkedValue; 
 | 
    if (checkedValue) { 
 | 
      couponReceiveId: '' 
 | 
    } 
 | 
  
 | 
    var sendData = { 
 | 
      receiveAddrId: this.data.address.addrId, //收货地址ID  
 | 
      couponReceiveId: couponReceiveId, //优惠券ID 
 | 
      remarks: this.data.txtContent, 
 | 
      skuId: goods.cartSkuId, 
 | 
      productId: goods.cartProductId, 
 | 
      number: goods.cartNumber, 
 | 
      shopId: app.shopInfo.id, 
 | 
      deliverySelect: this.data.deliverySelect, 
 | 
    } 
 | 
    console.log("订单请求参数", sendData) 
 | 
  
 | 
  
 | 
    util.request({ 
 | 
  
 | 
      api: "/wxapi/shopOrder/addShopOrder", 
 | 
      data: sendData, 
 | 
      callback: function(data) { 
 | 
        var couponReceiveId = _this.data.couponReceiveId; 
 | 
        wx.requestPayment({ 
 | 
          'timeStamp': data.rows[0].timeStamp, 
 | 
          'nonceStr': data.rows[0].nonceStr, 
 | 
          'package': data.rows[0].prepay_id, 
 | 
          'signType': 'MD5', 
 | 
          'paySign': data.rows[0].paySign, 
 | 
          'success': function(res) { 
 | 
            // console.log(res.errMsg) 
 | 
            console.log("成功后的回调") 
 | 
            console.log(res) 
 | 
            if (res.errMsg == 'requestPayment:ok') { 
 | 
              // console.log(data.mapInfo.orderId); 
 | 
              //成功后的回调; 
 | 
              util.request({ 
 | 
                method: "GET", 
 | 
                api: '/wxapi/shopOrder/findOrderPayStatus/' + data.mapInfo.orderId, 
 | 
                mask: true, 
 | 
                callback: function(payRes) { 
 | 
  
 | 
                  if (payRes.mapInfo.status == 'success') { 
 | 
  
 | 
                    wx.redirectTo({ 
 | 
                      url: '../payOrder/paySuccess', 
 | 
                    }); 
 | 
                    wx.showToast({ 
 | 
                      title: payRes.mapInfo.msg, 
 | 
                      icon: 'success' 
 | 
                    }) 
 | 
                  } else { 
 | 
                    wx.showToast({ 
 | 
                      title: payRes.mapInfo.msg, 
 | 
                      duration: 2000, 
 | 
                      image: "/image/fail.png" 
 | 
                    }) 
 | 
                    wx.redirectTo({ 
 | 
                      url: '../payOrder/payError', 
 | 
                    }) 
 | 
                  } 
 | 
                } 
 | 
              }); 
 | 
            } else { 
 | 
              // console.log("支付失败"); 
 | 
              wx.redirectTo({ 
 | 
                url: '../order/order', 
 | 
              }) 
 | 
            } 
 | 
            //{errMsg: "requestPayment:ok"} 
 | 
          }, 
 | 
  
 | 
          'fail': function(res) { 
 | 
            wx.redirectTo({ 
 | 
              url: '../order/order?status=1', 
 | 
            }) 
 | 
          } 
 | 
        }); 
 | 
  
 | 
  
 | 
  
 | 
      } 
 | 
    }); 
 | 
  }, 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  
 | 
  // 进入收货地址列表 
 | 
  goAddress(e) { 
 | 
    wx.navigateTo({ 
 | 
      url: '../editAddress/editAddress?pageScen=2', 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  
 | 
  
 | 
  // 进入添加收货地址 
 | 
  addAddress() { 
 | 
    wx.navigateTo({ 
 | 
      url: '../editAddress/editAddress?pageScen=2', 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  //设置地址 
 | 
  setAddress(address) { 
 | 
    debugger 
 | 
    this.setData({ 
 | 
      "address": address, 
 | 
      hasAddress: true 
 | 
    }); 
 | 
  }, 
 | 
  
 | 
  //隐藏弹窗 
 | 
  popupTap(e) { 
 | 
    this.setData({ 
 | 
      couponsShow: false, 
 | 
      isShow: false 
 | 
    }) 
 | 
  }, 
 | 
  total(e) { 
 | 
    this.setData({ 
 | 
      isShow: true 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  
 | 
  // 获取默认地址 
 | 
  getAddress() { 
 | 
    var _this = this; 
 | 
    util.request({ 
 | 
      api: api.address.queryaddress, 
 | 
      callback: function(data) { 
 | 
        if (data.rows.length != 0) { 
 | 
          _this.setData({ 
 | 
            address: data.rows[0], 
 | 
            hasAddress: true 
 | 
          }); 
 | 
        } else { 
 | 
          _this.setData({ 
 | 
            hasAddress: false 
 | 
          }) 
 | 
        } 
 | 
  
 | 
      } 
 | 
    }); 
 | 
  }, 
 | 
  
 | 
  // 不使用优惠券按钮 
 | 
  checkedTap: function () { 
 | 
    var checked = this.data.checkedValue; 
 | 
    var couponReceiveId = this.data.couponReceiveId; 
 | 
    if (!checked) { 
 | 
      couponReceiveId = 1 
 | 
      this.setData({ 
 | 
        coupons: '不使用优惠券', 
 | 
        couponReceiveId: couponReceiveId 
 | 
      }) 
 | 
    } 
 | 
    this.setData({ 
 | 
      checkedValue: !checked, 
 | 
      couponsShow: false 
 | 
    }) 
 | 
    this.jsjg(); 
 | 
  
 | 
  
 | 
  }, 
 | 
   
 | 
  //优惠券 
 | 
  couponsChoice(e) { 
 | 
    this.setData({ 
 | 
      couponsShow: true, 
 | 
      isShow: true 
 | 
    }) 
 | 
  }, 
 | 
  
 | 
  
 | 
  //优惠券 
 | 
  radioCouponsChange(e) { 
 | 
    var checked = e.detail.value; 
 | 
    var changed = {} 
 | 
  
 | 
  }, 
 | 
  //优惠券选择 
 | 
  couponsEvent(e) { 
 | 
    var _this = this; 
 | 
    var coupon = e.currentTarget.dataset.coupon; 
 | 
    var index = e.currentTarget.dataset.index; 
 | 
    var id = e.currentTarget.dataset.id; 
 | 
    var usefulCoupon = _this.data.usefulCoupon; 
 | 
    var changed = {}; 
 | 
    for (var i = 0; i < usefulCoupon.length; i++) { 
 | 
      if (i == index) { 
 | 
        changed['usefulCoupon[' + i + '].checked'] = true; 
 | 
  
 | 
      } else { 
 | 
        changed['usefulCoupon[' + i + '].checked'] = false 
 | 
      } 
 | 
    } 
 | 
    _this.setData(changed) 
 | 
    _this.setData({ 
 | 
      coupons: coupon.cName, 
 | 
      couponsShow: false, 
 | 
      isShow: false, 
 | 
      couponReceiveId: id, 
 | 
      checkedValue: false 
 | 
    }) 
 | 
  
 | 
    this.jsjg(); 
 | 
  }, 
 | 
  
 | 
  
 | 
  
 | 
  
 | 
}) 
 |