| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588 | 
							- // pages/submit-order/submit-order.js
 
- var http = require("../../utils/http.js");
 
- Page({
 
-   /**
 
-    * 页面的初始数据
 
-    */
 
-   data: {
 
-     popupShow: false,
 
-     // 订单入口 0购物车 1立即购买
 
-     orderEntry: "0",
 
-     userAddr: null,
 
-     orderItems: [],
 
-     shopCartOrders: [], //所有店铺的数据
 
-     couponSts: 1,
 
-     platformCoupons: {}, // 平台优惠券数据
 
-     showCoupons: {
 
-       canUseCoupons: [],
 
-       unCanUseCoupons: []
 
-     },
 
-     actualTotal: 0,
 
-     total: 0,
 
-     totalCount: 0,
 
-     transfee: 0,
 
-     reduceAmount: 0, //减免金额
 
-     couponIds: [],
 
-     orderReduce: 0,
 
-     userChangeCoupon: 0, // 用户有没有对优惠券进行改变
 
-     orderReduce: 0,
 
-     choose: true,
 
-     totalScoreAmount: 0, //积分抵扣金额
 
-     maxUsableScore: 0, //整个订单可以使用的积分数
 
-     isScorePay: 0, //用户是否选择积分抵现(0不使用 1使用 默认不使用)
 
-     isChecked: false, //是否选择会员积分抵现
 
-     totalLevelAmount: 0, //等级抵扣金额
 
-     freeTransfee: 0, //用户等级免运费金额
 
-     userUseScore: '', // 用于抵扣的金额数量
 
-     scorePopPlaceholder: '', // 积分弹窗输入框占位符
 
-     isPurePoints: false,
 
-     address_id: 0,
 
-     shop_id: 0,
 
-     deliveryAmount_num: 0,
 
-     shop_weight: 0,
 
-     is_distance:false,
 
-     dvyType:'',//配送方式
 
-     totalAvailableScore:0,//可用积分
 
-     totalUsableScore:0,//积分抵扣金额
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面加载
 
-    */
 
-   onLoad: function (options) {
 
-     this.setData({
 
-       orderEntry: options.orderEntry,
 
-     });
 
-     // 请求用户可用积分
 
-     this.getUserScore()
 
-   },
 
-   /**
 
-    * 获取用户可用积分
 
-    */
 
-   getUserScore() {
 
-     var params = {
 
-       url: '/p/user/userInfo',
 
-       method: 'GET',
 
-       callBack: res => {
 
-         this.setData({
 
-           accountScore: res.score
 
-         })
 
-       }
 
-     }
 
-     http.request(params)
 
-   },
 
-   // 会员积分抵现选择
 
-   useMemberPoints: function () {
 
-     this.data.isChecked = !this.data.isChecked
 
-     if (this.data.maxUsableScore > 0) { // maxUsableScore 整个订单可以使用的积分数
 
-       this.setData({
 
-         isScorePay: this.data.isChecked ? 1 : 0,
 
-         userUseScore: this.data.isChecked ? this.data.userUseScore : ''
 
-       })
 
-       this.loadOrderData()
 
-     }
 
-   },
 
-   /**
 
-    * 积分抵扣输入框
 
-    */
 
-   handleScoreInput(e) {
 
-     var maxScore = 0
 
-     if (this.data.maxUsableScore > this.data.accountScore) {
 
-       maxScore = this.data.accountScore
 
-     } else {
 
-       maxScore = this.data.maxUsableScore
 
-     }
 
-     this.setData({
 
-       userUseScore: e.detail.value > 0 ? e.detail.value > maxScore ? maxScore : e.detail.value : ''
 
-     })
 
-   },
 
-   /**
 
-    * 修改积分确定弹窗
 
-    */
 
-   confirmScore() {
 
-     this.loadOrderData()
 
-     this.closePopup()
 
-   },
 
-   //加载订单数据
 
-   loadOrderData: function () {
 
-     var addrId = 0;
 
-     if (this.data.userAddr != null) {
 
-       addrId = this.data.userAddr.addrId;
 
-     }
 
-     wx.showLoading({
 
-       mask: true
 
-     });
 
-     // 重置地址  避免超出配送 使用之前地址
 
-     this.setData({userAddr:null})
 
-     var params = {
 
-       url: "/p/order/confirm",
 
-       method: "POST",
 
-       data: {
 
-         addrId: addrId,
 
-         orderItem: this.data.orderEntry === "1" ? JSON.parse(wx.getStorageSync("orderItem")) : undefined,
 
-         basketIds: this.data.orderEntry === "0" ? JSON.parse(wx.getStorageSync("basketIds")) : undefined,
 
-         couponIds: this.data.couponIds,
 
-         userChangeCoupon: this.data.userChangeCoupon,
 
-         isScorePay: this.data.isScorePay,
 
-         userUseScore: this.data.userUseScore ? this.data.userUseScore : 0,
 
-         platform:1
 
-       },
 
-       callBack: res => {
 
-         wx.hideLoading();
 
-         if(res.code == 500){
 
-           return wx.showToast({
 
-             title: res.msg,
 
-             icon:'none'
 
-           })
 
-         }
 
-         
 
-         this.setData({
 
-           address_id: res.userAddr?res.userAddr.addrId:0,
 
-           shop_weight: res.weight
 
-         })
 
-         var shopCartOrders = res.shopCartOrders; //购物车店铺商品信息列表
 
-         var couponIds = []
 
-         let img=''
 
-         shopCartOrders.forEach(shopCart => {
 
-           shopCart.shopCartItemDiscounts.forEach(e=>{
 
-             e.shopCartItems.forEach(item=>{
 
-               img=item.pic.split(',')
 
-               item.pic=img[0]
 
-             })
 
-           })
 
-           this.setData({
 
-             shop_id: shopCart.shopId
 
-           })
 
-           shopCart.remarks = '';
 
-           shopCart.shopCoupons = this.splitCouponAndPushCouponIds(shopCart.coupons, couponIds)
 
-         })
 
-         // 平台优惠券
 
-         var platformCoupons = this.splitCouponAndPushCouponIds(res.coupons, couponIds) //平台优惠券
 
-         var dvyType
 
-         if(res.dvyType == 1){
 
-           dvyType = '运费(快递)'
 
-         }else if(res.dvyType == 3){
 
-           dvyType = '配送费(即时配送)'
 
-         }else{
 
-           dvyType = '自提'
 
-         }
 
-         // 平台优惠券end
 
-         this.setData({
 
-           dvyType:dvyType,
 
-           platformCoupons: platformCoupons, //整个订单可以使用的优惠券列表
 
-           shopCartOrders: shopCartOrders, //所有的店铺的购物车信息
 
-           actualTotal: res.actualTotal, //实际总值
 
-           total: res.total, //商品总值
 
-           totalCount: res.totalCount, //商品总数
 
-           userAddr: res.userAddr, //地址Dto
 
-           transfee: res.totalTransfee, //总运费
 
-           orderReduce: res.orderReduce, //订单优惠金额(所有店铺优惠金额和使用积分抵现相加)
 
-           totalScoreAmount: res.totalScoreAmount, //积分抵扣金额
 
-           totalUsableScore: res.totalUsableScore, //用于抵扣的积分数量
 
-           isScorePay: res.isScorePay, //用户是否选择积分抵现(0不使用 1使用 默认不使用)
 
-           totalLevelAmount: res.totalLevelAmount, //等级抵扣金额
 
-           freeTransfee: res.freeTransfee, //用户等级免运费金额
 
-           couponIds: couponIds,
 
-           maxUsableScore: res.maxUsableScore, //整个订单可以使用的积分数
 
-           scorePopPlaceholder: `剩余积分${this.data.accountScore},此订单最多可用${res.maxUsableScore}`,
 
-           scorePlaceholder: `使用${res.totalUsableScore}积分抵扣${res.totalScoreAmount}元`,
 
-           shopUseScore: res.shopUseScore, // 店铺积分抵扣比例; 
 
-           isPurePoints: res.actualTotal == 0 ? true : false,
 
-           totalUsableScore:res.totalUsableScore,
 
-           totalAvailableScore:res.totalAvailableScore,
 
-         });
 
-         if(!res.userAddr){
 
-           return wx.showToast({
 
-             title: '请添加收货地址',
 
-             icon:'none'
 
-           })
 
-         }
 
-         this.getDeliveryAmount()
 
-       },
 
-       errCallBack: res => {
 
-         setTimeout(()=>{
 
-           wx.showToast({
 
-             title:res.data,
 
-             icon: "none"
 
-           })
 
-         },1)
 
-         wx.hideLoading();
 
-       }
 
-     };
 
-     http.request(params);
 
-   },
 
-   /**
 
-    * 分割优惠券成
 
-    * 1. canUseCoupons 可使用优惠券列表
 
-    * 2. unCanUseCoupons 不可使用优惠券列表
 
-    * 3. couponAmount 选中的优惠券可优惠金额
 
-    * 4. 将选中的优惠券ids保存起来
 
-    * @param {*} coupons 优惠券列表
 
-    * @param {*} couponIds 选中的优惠券id
 
-    */
 
-   splitCouponAndPushCouponIds(coupons, couponIds) {
 
-     if (!coupons || !coupons.length) {
 
-       return
 
-     }
 
-     let canUseCoupons = []
 
-     let unCanUseCoupons = []
 
-     let couponAmount = 0;
 
-     coupons.forEach(coupon => {
 
-       if (coupon.canUse) {
 
-         canUseCoupons.push(coupon)
 
-       } else {
 
-         unCanUseCoupons.push(coupon)
 
-       }
 
-       if (coupon.choose) {
 
-         couponIds.push(coupon.couponId)
 
-         couponAmount = coupon.reduceAmount;
 
-       }
 
-     })
 
-     return {
 
-       canUseLength: canUseCoupons.length,
 
-       couponAmount: couponAmount,
 
-       canUseCoupons: canUseCoupons,
 
-       unCanUseCoupons: unCanUseCoupons,
 
-     }
 
-   },
 
-   /**
 
-    * 提交订单校验
 
-    */
 
-   toPay: function () {
 
-     // if (this.data.actualTotal < this.data.deliveryAmount_num) {
 
-     //   wx.showToast({
 
-     //     title: '商品总额需大于起送价~',
 
-     //     icon: "none"
 
-     //   })
 
-     //   return;
 
-     // }
 
-     if (!this.data.userAddr) {
 
-       wx.showToast({
 
-         title: '请选择地址',
 
-         icon: "none"
 
-       })
 
-       return;
 
-     }
 
-     if (this.data.shop_weight > 20000) {
 
-       wx.showToast({
 
-         title: '已超过单次配送限制20kg,请减少商品数',
 
-         icon: "none"
 
-       })
 
-     return
 
-     }
 
-     if(this.data.is_distance==false){
 
-       wx.showToast({
 
-         title: '超出配送范围',
 
-         icon: "none"
 
-       })
 
-       return
 
-     }
 
-     this.submitOrder();
 
-   },
 
-   /**
 
-    * 获取起送价
 
-    */
 
-   getDeliveryAmount: function () {
 
-     if(!this.data.shop_id||!this.data.address_id) return
 
-     var params = {
 
-       url: "/p/address/deliveryAmount/" + this.data.shop_id + '/' + this.data.address_id,
 
-       method: "GET",
 
-       callBack: res => {
 
-         this.setData({
 
-           deliveryAmount_num: res.deliveryAmount,
 
-           is_distance:true
 
-         })
 
-       },
 
-       errCallBack:(err)=>{
 
-         this.setData({
 
-           is_distance:false
 
-         })
 
-       }
 
-     }
 
-     http.request(params);
 
-   },
 
- /**
 
-  * 获取配送距离
 
-  */
 
- // getaddress_transports: function () {
 
- //   let _this = this
 
- //   var params = {
 
- //     url: "/p/address/transport2",
 
- //     method: "GET",
 
- //     data: {
 
- //       shopId: this.data.shop_id,
 
- //       addrId:this.data.address_id
 
- //     },
 
- //     callBack: function (res) {
 
- //       wx.setStorageSync('DISTANCE', res.distance)
 
- //       _this.setData({
 
- //       })
 
- //     }
 
- //   };
 
- //   http.request(params);
 
- // },
 
-   // 提交订单
 
-   submitOrder: function () {
 
-     wx.showLoading({
 
-       mask: true
 
-     });
 
-     var shopCartOrders = this.data.shopCartOrders;
 
-     var orderShopParam = [];
 
-     shopCartOrders.forEach(shopCart => {
 
-       orderShopParam.push({
 
-         remarks: shopCart.remarks,
 
-         shopId: shopCart.shopId
 
-       });
 
-     })
 
-     var params = {
 
-       url: "/p/order/submit",
 
-       method: "POST",
 
-       data: {
 
-         orderShopParam: orderShopParam,
 
-         // coupons: this.data.platformCoupons,
 
-         coupons: this.data.coupons,
 
-         isScorePay: this.data.isScorePay,
 
-         platform:1
 
-       },
 
-       callBack: res => {
 
-         wx.hideLoading();
 
-         if(res.nextPay){
 
-           this.calWeixinPay(res.orderNumbers);
 
-         }else{
 
-           wx.redirectTo({
 
-             url: `/pages/pay-result/pay-result?sts=1&orderNumbers=${res.orderNumbers}&orderType=${this.data.orderType}`,
 
-           })
 
-         }
 
-       },
 
-       errCallBack: res => {
 
-         wx.showModal({
 
-           showCancel: false,
 
-           title: '提示',
 
-           content: res.data
 
-         })
 
-       }
 
-     };
 
-     http.request(params);
 
-   },
 
-   /**
 
-    * 唤起微信支付
 
-    */
 
-   calWeixinPay: function (orderNumbers) {
 
-     wx.showLoading({
 
-       mask: true
 
-     });
 
-     var params = {
 
-       url: "/p/order/pay",
 
-       method: "POST",
 
-       data: {
 
-         payType: 1, //支付方式 (1:微信小程序支付 2:支付宝 3微信扫码支付 4 微信h5支付)
 
-         orderNumbers: orderNumbers
 
-       },
 
-       callBack: (res) => {
 
-         wx.hideLoading();
 
-         if (this.data.isPurePoints) {
 
-           wx.redirectTo({
 
-             url: `/pages/pay-result/pay-result?sts=1&orderNumbers=${orderNumbers}&orderType=${this.data.orderType}`,
 
-           })
 
-           return
 
-         }
 
-         wx.requestPayment({
 
-           timeStamp: res.timeStamp,
 
-           nonceStr: res.nonceStr,
 
-           package: res.package,
 
-           signType: res.signType,
 
-           paySign: res.paySign,
 
-           success: e => {
 
-             console.log('成功');
 
-             wx.redirectTo({
 
-               url: `/pages/pay-result/pay-result?sts=1&orderNumbers=${orderNumbers}&orderType=${this.data.orderType}`,
 
-             })
 
-           },
 
-           fail: err => {
 
-             console.log('失败',err);
 
-             wx.redirectTo({
 
-               url: `/pages/pay-result/pay-result?sts=0&orderNumbers=${orderNumbers}&orderType=${this.data.orderType}`,
 
-             })
 
-           }
 
-         })
 
-       }
 
-     };
 
-     http.request(params);
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面初次渲染完成
 
-    */
 
-   onReady: function () {
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面显示
 
-    */
 
-   onShow: function () {
 
-     var pages = getCurrentPages();
 
-     var currPage = pages[pages.length - 1];
 
-     if (currPage.data.selAddress == "yes") {
 
-       this.setData({ //将携带的参数赋值
 
-         userAddr: currPage.data.item
 
-       });
 
-     }
 
-     //获取订单数据
 
-     this.loadOrderData();
 
-     setTimeout(() => {
 
-       this.getDeliveryAmount()
 
-     }, 500)
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面隐藏
 
-    */
 
-   onHide: function () {
 
-   },
 
-   /**
 
-    * 生命周期函数--监听页面卸载
 
-    */
 
-   onUnload: function () {
 
-   },
 
-   /**
 
-    * 页面相关事件处理函数--监听用户下拉动作
 
-    */
 
-   onPullDownRefresh: function () {
 
-   },
 
-   /**
 
-    * 页面上拉触底事件的处理函数
 
-    */
 
-   onReachBottom: function () {
 
-   },
 
-   /**
 
-    * 用户点击右上角分享
 
-    */
 
-   onShareAppMessage: function () {
 
-   },
 
-   // 店铺切换可用/不可用优惠券列表
 
-   changeCouponSts: function (e) {
 
-     this.setData({
 
-       couponSts: e.currentTarget.dataset.sts
 
-     });
 
-   },
 
-   // 店铺优惠券弹框
 
-   showCouponPopup: function (e) {
 
-     var index = e.currentTarget.dataset.index;
 
-     var shopCartOrders = this.data.shopCartOrders;
 
-     this.setData({
 
-       showCoupons: index + '' === '-1' ? this.data.platformCoupons : shopCartOrders[index].shopCoupons,
 
-       popupShow: true,
 
-     });
 
-   },
 
-   closePopup: function () {
 
-     this.setData({
 
-       popupShow: false,
 
-       // platPopupShow: false
 
-       showScorePop: false
 
-     });
 
-   },
 
-   /**
 
-    * 去地址页面
 
-    */
 
-   toAddrListPage: function () {
 
-     wx.navigateTo({
 
-       url: '/pages/delivery-address/delivery-address?order=0',
 
-     })
 
-   },
 
-   /**
 
-    * 确定选择好的优惠券
 
-    */
 
-   choosedCoupon: function () {
 
-     var couponIds = this.data.couponIds
 
-     if (!this.data.showCoupons) {
 
-       this.setData({
 
-         popupShow: false
 
-       })
 
-       return
 
-     }
 
-     // 店铺优惠券单选操作
 
-     var canUseCoupons = this.data.showCoupons.canUseCoupons;
 
-     var checkedCouponId = ''
 
-     for (var canUseCouponIndex in canUseCoupons) {
 
-       var coupon = canUseCoupons[canUseCouponIndex];
 
-       if (!coupon.choose && couponIds.indexOf(coupon.couponId) !== -1) {
 
-         couponIds.splice(couponIds.indexOf(coupon.couponId), 1)
 
-       }
 
-       if (coupon.choose) {
 
-         checkedCouponId = coupon.couponId
 
-       }
 
-     }
 
-     couponIds.push(checkedCouponId)
 
-     this.setData({
 
-       couponIds: couponIds,
 
-       popupShow: false
 
-     });
 
-     this.loadOrderData();
 
-   },
 
-   /**-
 
-    * 优惠券子组件发过来
 
-    */
 
-   checkCoupon: function (e) {
 
-     var showCoupons = this.data.showCoupons;
 
-     // 店铺优惠券单选操作
 
-     var canUseCoupons = showCoupons.canUseCoupons;
 
-     for (var canUseCouponIndex in canUseCoupons) {
 
-       if (e.detail.couponId === canUseCoupons[canUseCouponIndex].couponId && canUseCouponIndex == e.detail.index) {
 
-         canUseCoupons[canUseCouponIndex].choose = !canUseCoupons[canUseCouponIndex].choose
 
-       } else {
 
-         canUseCoupons[canUseCouponIndex].choose = false
 
-       }
 
-     }
 
-     this.setData({
 
-       showCoupons: showCoupons,
 
-       userChangeCoupon: 1
 
-     });
 
-   },
 
-   /**
 
-    * 输入备注
 
-    */
 
-   onRemarkIpt: function (e) {
 
-     var index = e.currentTarget.dataset.index;
 
-     var shopCartOrders = this.data.shopCartOrders;
 
-     shopCartOrders[index].remarks = e.detail.value;
 
-     this.setData({
 
-       shopCartOrders: shopCartOrders
 
-     });
 
-   },
 
-   /**
 
-    * 积分输入弹窗显示
 
-    */
 
-   handleScorePop() {
 
-     this.setData({
 
-       showScorePop: true
 
-     })
 
-   },
 
- })
 
 
  |