| 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(); | 
|   }, | 
|   | 
|   | 
|   | 
|   | 
| }) |