var __request = require('../../utils/request.js') var _handle = require('../../utils/handle.js') var validator = require('../../utils/validator.js') Page({ data: { orderId: 0, payData: {}, address: null, pick_address: null, selectaddress:false, selectpickaddress:false, balanceInfo: {}, centInfo:{}, cashInfo:{}, userInfo: {}, radish: 0, pwd: '', pwdDialog: false, useRadishSelect: false, useRadishSelectVal: 'select', showModal: false, luoboCount: '', countMoney: '', curPayway: 'weixinpay', payway: { weixin: 'weixinpay', balance: 'balance', cent: 'cent' }, total:0, yunfei:0, _yunfei:0, payFlag:false, useBalance:false, afterdec:0,//使用提货券扣除后的总额 remark:'', receivetype:0,//提货方式 pickdepartsList:[], repickdepartsList:[], pickindex:0, pickid:0, has_unuse_quan:false, use_silver:0, pay_cash:0,//佣金抵扣 freight_limit:9900, unquan_silver:0//不能使用提货券抵扣的银豆 }, onLoad: function (options) { this.data.orderId = options.orderId; this.getOrderInfo() // this.getBalanceInfo() wx.setStorageSync('use_address', false); wx.setStorageSync('use_pick_address', false); wx.setStorageSync('receivetype', 0); this.getpickdeparts(); }, onShow: function () { this.getUserInfo() var receivetype = wx.getStorageSync('receivetype'); if(receivetype == 0){ var address = wx.getStorageSync('use_address'); if(address){ this.setData({ address: address, selectaddress:true, receivetype : receivetype, yunfei : this.data._yunfei }); } }else{ var address = wx.getStorageSync('use_pick_address'); if(address){ this.setData({ pick_address: address, selectpickaddress:true, receivetype : receivetype, yunfei : 0 }); } } this.setData({ payFlag: false }) }, inputPwd: function (e) { this.setData({ pwd: e.detail.value }) }, checkboxChange: function (e) { if (e.detail.value[0]) { this.setData({ useRadishSelect: true, useRadishSelectVal: 'select' }) } else { this.setData({ useRadishSelect: false }) } }, getOrderInfo: function () { var that = this var url = "v1/order/" + that.data.orderId; var params = {} var check_has_unuse_quan = false; var success = function (val) { if (val.data && val.data.product && !val.data.product.robo_balance_price) { that.setData({ curPayway: 'weixinpay' }) } var total = 0; for(var i in val.data.product_list){ if(!val.data.product_list[i].send) total = total + (val.data.product_list[i].price * val.data.product_list[i].count) } var canusebalance = 0; var nousebalance = 0; var use_silver = 0; var unquan_silver = 0;//使用的silver for(var i in val.data.product_list){ var item = val.data.product_list[i]; if(!item.send){ if(val.data.special_promotion){//新增双十一促销判断 canusebalance = canusebalance + (item.price * item.count); }else{ // if(item.pv >= item.price){ // canusebalance = canusebalance + (item.price * item.count); // }else{ // nousebalance = nousebalance + (item.price * item.count); // } if(!item.use_quan){ nousebalance = nousebalance + (item.price * item.count); check_has_unuse_quan = true; unquan_silver = unquan_silver + item.silver; }else{ canusebalance = canusebalance + (item.price * item.count); } } use_silver = use_silver + item.silver; } } console.log('canusebalance',canusebalance); console.log('nousebalance',nousebalance); that.setData({ payData: val.data, project: val.data.product_list, total:total, yunfei:that.data.receivetype == 0 ? total 0 && that.data.payData.order_type == 0)) //获取订单最高可用银豆 var max_silver = that.data.payData.total_silver; //获取账户持有银豆 // var user_silver = val.data.silver_total; // var use_silver = 0;//使用银豆 // if(user_silver > 0){ // use_silver = user_silver >= max_silver ? max_silver : user_silver; // } //新直接使用计算好的值 var use_silver = that.data.use_silver; //总额和canuse&nouse减去银豆 var has_balance = val.data.total; var sour_total = that.data.total; var mins_total = that.data.total - use_silver; var mins_canuse = that.data.canusebalance; var mins_nouse = that.data.nousebalance; var afterdec = 0; var dis_amount = 0; // sour_total = sour_total - use_silver; //canuse的扣除银豆 // if(mins_canuse - use_silver < 0){ // mins_canuse = 0; // left_silver = use_silver - mins_canuse; // }else{ // mins_canuse = mins_canuse - use_silver; // left_silver = 0; // } // console.log('mins_canuse',mins_canuse); // console.log('left_silver',left_silver); // //nouse的扣除剩余的银豆 // if(mins_nouse - left_silver < 0){ // mins_nouse = 0; // left_silver = left_silver - mins_nouse; // }else{ // mins_nouse = mins_nouse - left_silver; // left_silver = 0; // } // console.log('left_silver',left_silver); //重写分别扣除的银豆 var quan_silver = use_silver - that.data.unquan_silver; mins_canuse = mins_canuse - quan_silver; mins_nouse = mins_nouse - that.data.unquan_silver; //新增剩余的根据等级和订单类型做折扣 // if(val.data.show_invite_mode == 1 && that.data.payData.order_type == 0){//店长可以享受优惠 // var disbi = val.data.discount_bl == 0? 100 : val.data.discount_bl; // sour_total = sour_total * (disbi/100); // dis_amount = parseInt(mins_total - (mins_total * (disbi/100))); // mins_canuse = mins_canuse * (disbi/100); // mins_nouse = mins_nouse * (disbi/100); // } //新已减银豆 if(that.data.payData.pay_way == ''){ if(that.data.receivetype == 0){ if(parseInt(has_balance) >= parseInt(mins_canuse) + parseInt(that.data.yunfei)){ console.log('1'); afterdec = mins_nouse; }else{ console.log('2'); afterdec = Math.abs((mins_canuse + that.data.yunfei)-has_balance) + mins_nouse; } }else{ if(parseInt(has_balance) >= parseInt(mins_canuse)){ console.log('3'); afterdec = mins_nouse; }else{ console.log('4'); afterdec = Math.abs((mins_canuse)-has_balance) + mins_nouse; } } }else{ console.log('5'); // afterdec = (that.data.total - that.data.payData.paied_silver - that.data.payData.dis_amount)+that.data.yunfei-that.data.payData.coupon_price; afterdec = that.data.total + that.data.yunfei - that.data.payData.paied_silver - that.data.payData.coupon_price -that.data.payData.dis_amount; } var source_afterdec = afterdec; //canuse的扣除银豆 // mins_canuse = mins_canuse - use_silver < 0 ? 0 : mins_canuse - use_silver; // left_silver = mins_canuse - use_silver < 0 ? use_silver - mins_canuse : 0; // //nouse的扣除剩余的银豆 // mins_nouse = mins_nouse - left_silver < 0 ? 0 : mins_nouse - left_silver; // left_silver = mins_nouse - left_silver < 0 ? left_silver - mins_nouse : 0; console.log('afterdec',afterdec); console.log('mins_canuse',mins_canuse); console.log('mins_nouse',mins_nouse); console.log('use_silver',use_silver); console.log('sour_total',sour_total); //旧未减银豆 // if(that.data.payData.pay_way == ''){ // if(that.data.receivetype == 0){ // if(parseInt(val.data.total) >= parseInt(that.data.canusebalance) + parseInt(that.data.yunfei)){ // afterdec = that.data.nousebalance; // }else{ // afterdec = Math.abs((that.data.canusebalance + that.data.yunfei)-val.data.total) + that.data.nousebalance; // } // }else{ // if(parseInt(val.data.total) >= parseInt(that.data.canusebalance)){ // afterdec = that.data.nousebalance; // }else{ // afterdec = Math.abs((that.data.canusebalance)-val.data.total) + that.data.nousebalance; // } // } // }else{ // afterdec = that.data.total+that.data.yunfei-that.data.payData.coupon_price; // } var minus_cash = 0; var trueafter = afterdec - that.data.payData.dis_amount; if(that.data.cashInfo.available > 0 && trueafter > 0){ minus_cash = that.data.cashInfo.available < trueafter ? that.data.cashInfo.available : trueafter; } console.log('minus_cash',minus_cash); that.setData({ balanceInfo: val.data, cache: false, // curPayway:val.data.total >= (that.data.total + that.data.yunfei)?'balance':'weixinpay' curPayway:'weixinpay', // useBalance:(val.data.total > 0 && that.data.payData.order_type == 0 && that.data.payData.pv >= that.data.payData.total_price)? true:false, useBalance: /* (val.data.total > 0 && that.data.payData.order_type == 0) || */ !that.data.payData.shut_wechat ? true:false, afterdec: afterdec, hasSeilver: val.data.silver_total, useSeilver: use_silver, minusTotal: sour_total, discountBl: val.data.discount_bl, sourceAfterdec: source_afterdec, pay_cash: minus_cash, freight_limit:val.data.freight_limit // disAmount:dis_amount }); } __request.$get(url, params, success) }, getCentInfo: function () { var that = this var url = "v1/user/cent/info"; var params = {} var success = function (val) { // console.log('showusebalance:',(val.data.total > 0 && that.data.payData.order_type == 0)) that.setData({ centInfo: val.data, cache: false, curPayway:'cent', useBalance:false, afterdec:that.data.receivetype == 0 ? parseInt(val.data.total) >= parseInt(that.data.total) + parseInt(that.data.yunfei)?'0':(that.data.total + that.data.yunfei)-val.data.total : 0 }); } __request.$get(url, params, success) }, switchChange:function(e){ var that = this; that.setData({ useBalance:e.detail.value }) }, getUserInfo: function () { var that = this var url = "v1/user/info"; var params = { cache: false } var success = function (val) { that.setData({ userInfo: val.data }); } __request.$get(url, params, success) }, cancelDialog: function () { this.setData({ pwdDialog: false }) }, toPay: function (e) { if(this.data.payFlag){ wx.showToast({ title: '支付中,请稍后...', icon: 'none', duration: 2000 }) return false; } _handle.setFormId(e) var that = this this.setData({ payFlag: true }) if (that.data.receivetype == 0 && !that.data.address) { wx.showToast({ title: '请先填写地址', icon: 'none', duration: 2000 }) that.setData({ payFlag: false }) } else if (that.data.receivetype == 0 && !validator.required1(this.data.address.contact)) { wx.showToast({ title: '国家安全局规定:运单禁止出现“先生”,“小姐”,“女士”等,请重新填写地址', icon: 'none', duration: 2000 }) that.setData({ payFlag: false }) }else if (that.data.receivetype == 1 && !that.data.pick_address) { wx.showToast({ title: '请先选择提货人', icon: 'none', duration: 2000 }) that.setData({ payFlag: false }) }else if (that.data.receivetype == 1 && !that.data.pickid) { wx.showToast({ title: '请选择自提门店', icon: 'none', duration: 2000 }) that.setData({ payFlag: false }) } else { if (that.data.curPayway === 'balance') { var p if (that.data.project) { p = that.data.balanceInfo.total - that.data.project.robo_balance_price * that.data.payData.count } if (p < 0) { this.setData({ luoboCount: -(that.data.balanceInfo.total - that.data.project.robo_balance_price * that.data.payData.count), showModal: true, countMoney: -(that.data.balanceInfo.total - that.data.project.robo_balance_price * that.data.payData.count) / 100, payFlag: false }) } else { that.pay() } } else if (that.data.curPayway === 'cent') { // var b // if (that.data.project) { // b = that.data.balanceInfo.dc_total - that.data.project.mall_balance_price * that.data.payData.count // } // if (b < 0) { // this.setData({ // luoboCount: that.data.project.mall_balance_price * that.data.payData.count - that.data.balanceInfo.dc_total, // showModal: true, // payFlag: false // }) // } else { that.pay() // } } else if (that.data.curPayway === 'weixinpay') { // if(that.data.useBalance && that.data.afterdec > 0){ // wx.showModal({ // title: '提示', // content: '订单将抵扣 '+ (that.data.payData.coupon_price>0?that.data.payData.coupon_price/100:((that.data.total+that.data.yunfei)-that.data.afterdec) / 100)+' 元提货券,剩下 '+(that.data.afterdec / 100)+' 元将由微信支付,祝您购物愉快!' , // success: function (sm) { // if (sm.confirm) { // that.pay() // } else if (sm.cancel) { // console.log('用户点击取消') // that.setData({ // payFlag: false // }) // } // } // }) // }else{ that.pay() // } } // if (!that.data.userInfo.user.has_trade_pwd) { // that.setPwdDialog() // } else { // if (that.data.balanceInfo.total - that.data.project.price * that.data.payData.count < 0) { // this.setData({ // luoboCount: -(that.data.balanceInfo.total - that.data.project.price * that.data.payData.count), // showModal: true, // countMoney: -(that.data.balanceInfo.total - that.data.project.price * that.data.payData.count) / 100 // }) // } else { // that.setData({ // pwdDialog: true // }) // if (that.data.useRadishSelect) { // that.setData({ // pwdDialog: true // }) // } else { // that.openToast('请勾选使用提货券兑换~') // } // } // } } }, onCancel: function () { this.setData({ showModal: false }); }, onConfirm: function () { wx.navigateTo({ url: '/packageUser/pages/user/exchange/exchange' }) }, onConfirm1: function() { wx.navigateTo({ url: '/packageUser/pages/user/buy/buy?path=/pages/pay/pay&orderId=' + this.data.orderId + '&luoboCount=' + this.data.luoboCount + '&countMoney=' + this.data.countMoney }) // /pages/pay/pay?order_id=EX201807206A91F25E }, onConfirm2: function () { wx.navigateTo({ url: '/pages/parse/parse?id=8' }) }, preventTouchMove: function () { }, selectClick: function (e) { var that = this that.setData({ curPayway: e.target.dataset.payway }); }, pay: function () { var that = this var url = "v1/pay"; var params; if(that.data.receivetype == 0){ params = { pick_way: 0, order_id: that.data.orderId, trad_pwd: that.data.pwd, pay_way: that.data.curPayway, address_id: that.data.address.id, s: 'xcx', use_coupon:that.data.useBalance, remark:that.data.remark } }else{ params = { pick_way: 1, order_id: that.data.orderId, trad_pwd: that.data.pwd, pay_way: that.data.curPayway, s: 'xcx', use_coupon:that.data.useBalance, remark:that.data.remark, pick_dept:that.data.pickid, pick_addr_id:that.data.pick_address.id } } console.log('onpay',params) var success = function (val) { console.log(val); if(val.statusCode === 200){ if (that.data.curPayway === 'weixinpay' && val.data.need_wx) { wx.requestPayment({ 'timeStamp': val.data.pay_data.timeStamp, 'nonceStr': val.data.pay_data.nonceStr, 'package': val.data.pay_data.package, 'signType': val.data.pay_data.signType, 'paySign': val.data.pay_data.paySign, 'success':function(res){ wx.showToast({ title: '支付成功', icon: 'success', duration: 1000 }) wx.navigateTo({ // url: '/packageUser/pages/user/orders/orders' url: '/pages/projects/project-success/project-success?id=' + that.data.orderId }) }, 'fail':function(res){ that.setData({ payFlag: false }) that.getOrderInfo() } }) } else { that.setData({ pay: val.data }); wx.redirectTo({ // url: '/packageUser/pages/user/orders/orders' url: '/pages/projects/project-success/project-success?id=' + that.data.orderId }) } that.setData({ payFlag: false }) that.getOrderInfo() }else{ that.setData({ payFlag: false }) that.getOrderInfo() } } var fail = function(err){ that.setData({ payFlag: false }) } __request.$post(url, params, success, fail) }, setPwdDialog: function () { wx.showModal({ title: '提示', confirmColor: '#eab86a', content: '您未设置交易密码,是否前往设置?', success: function(res) { if (res.confirm) { wx.navigateTo({ url: '/packageUser/pages/user/safe/safe' }) } else if (res.cancel) { } } }) }, onShareAppMessage: function (val) { return _request.share({ sc: 'xcx_pay' }) }, bindremark (e) { this.setData({ remark: e.detail.value }) }, receivetbn(e){ if(this.data.payData.pay_way == ''){ this.setData({ receivetype: e.target.dataset.value, yunfei : e.target.dataset.value == 0 ? this.data._yunfei : 0 }) wx.setStorageSync('receivetype', e.target.dataset.value) //存入 this.getBalanceInfo() }else{ wx.showToast({ title: '当前提货方式已确定', icon: 'none', duration: 2000 }) } }, getpickdeparts: function () { var that = this var url = "v1/pick_departs"; var params = {} var success = function (val) { console.log('pick_departs-val',val); let list = []; for(var i in val.data){ list.push(val.data[i]['pick_address']+'-'+val.data[i]['pick_title']) } that.setData({ pickdepartsList:val.data, repickdepartsList:list, pickindex: 0, pickid:val.data[0]?val.data[0]['id']:0 }) } __request.$get(url, params, success) }, bindPickerChange: function(e) { var that = this; console.log('picker发送选择改变,携带值为', e.detail.value) this.setData({ pickindex: e.detail.value, pickid:that.data.pickdepartsList[e.detail.value]['id'] }) }, getAddress(id) { var that = this var url = 'v1/address/' var params = { } var success = function (res) { var setaddress; for(var i in res.data){ if(res.data[i]['id'] == id){ setaddress = res.data[i]; } } that.setData({ address:setaddress }) } __request.$get(url, params, success) }, getPickAddress(id) { var that = this var url = 'v1/pick_address' var params = { } var success = function (res) { var setaddress; for(var i in res.data){ if(res.data[i]['id'] == id){ setaddress = res.data[i]; } } that.setData({ pick_address:setaddress }) } __request.$get(url, params, success) } })