// pages/cart/cart_wk/cart_wk.js var t = getApp(), oo = t.globalData.setting,app=t, os=oo; var ut=require("../../../../utils/util.js"); var util_pay=require("../../../../utils/pay.js"); var regeneratorRuntime = require('../../../../utils/runtime.js'); Page({ /** * 页面的初始数据 */ data: { imgUrl: t.globalData.setting.imghost, order_id: 0, //订单ID order: null, //订单所有字段 user_addr: null, //会员地址 pickup: null, //门店 goods: null, //商品 /*------------------------*/ userinfo: null, //获取会员 /*----------物流选择--------*/ wu_arr: null, index: 0, is_express: 0, //申请提现的金额 txmon: 0, yuer: 0, //判断页面是返回回来的还是 首次进入的 isclose: 1, //配送方式 0=用户自选 1=自提 2=物流 distr_type: 0, //实际配送方式 0物流 1自提 exp_type: 1, //------物流费用------ exp_price: 0, enterAddressPage: 0, //进入地址页面 is_no_by: {}, allpice: 0, show_pay_type: 0, teamgroup: null, submit:1, //默认按钮是灰色 show_submit:0, //不线上 dis_config: null, bn_use_commission: 0, //是不是使用佣金 bn_is_order_yh:1, //是不是订单优惠 bn_is_post_temp:1, //是不是进行计算包邮模板 paying:0, //支付中 same_ok:1, //同城配送的控制 formData:{ order_prom_amount:0, coupon_price:0 }, //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中-- ckeck_quan_price: 0, check_quan_price_list: '', check_quan_ware_list: '', check_quan_price_scj:0, //市场价取价 // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"} using_quan: {}, isget_by_quan: {}, //是否调用了接口获取包邮券 is_by:{}, get_by_quan_list: null, //立即购买的 first_entry: 0,//进入次数,如果是第一次进入,进行判断是否进行优惠券是否直接使用 def_coupon1: null,//购物车优惠券列表 def_coupon2: null,//直接购买优惠券列表 def_coupon3: null,//购物车包邮券列表 def_coupon4: null,//直接购买包邮券列表 }, /** * 生命周期函数--监听页面加载 */ onLoad: function (options) { //定义第一次进入 this.data.fir_in=1; //清空is_pick_up getApp().request.put("/api/weshop/useraddress/updatePickUp", { data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, success: function (s) { } }); var th = this; this.data.order_id = options.order_id; //--初始化-- getApp().getConfig2(function (e) { var json_d = JSON.parse(e.switch_list); //测试强行写死,后面一定要删除 //json_d.pickupway=2; th.data.json_d = json_d; var is_default_logistics = json_d.is_default_logistics; var is_same_city = json_d.is_same_city; th.setData({ is_default_logistics: is_default_logistics,is_same_city:is_same_city }); th.get_wuliu(th.get_info(th.show_page)); }, 1) //判断是不是佣金抵扣 getApp().is_distribut(this); }, /** * 生命周期函数--监听页面显示 */ onShow: function () { this.updateOrderCoupon(); var th = this; //判断是不是第一次进入 if(this.data.fir_in){ this.data.fir_in=0; }else{ //-- 富友插件的优化 -- ut.fy_back('',0); this.data.paying=0; util_pay.set_fir(); //-- 通联的第三方支付的返回优化 -- ut.is_pay_ok(th.data.ok_order_sn,"/packageG/pages/payment/pay_success/pay_success?type=1&order_sn=" + this.data.ok_order_sn,'back',function (){ if(!th.data.ok_order_sn) return false; getApp().request.promiseGet("/api/weshop/order/page", {data:{store_id:os.stoid,parent_sn:th.data.ok_order_sn}}).then(res=>{ if(ut.ajax_ok(res)){ var item=res.data.data.pageData[0]; //已经支付尾款,或者所有的会员都已经支付尾款 if(item.pt_status==4 || item.pt_status==5){ //支付支付,返回首页 ut.m_toast('支付成功'); setTimeout(()=>{ getApp().re_to("/packageG/pages/payment/pay_success/pay_success?type=1&order_sn=" + th.data.ok_order_sn); },1000) }else{ //支付支付,返回首页 ut.m_toast('支付失败'); setTimeout(()=>{ getApp().goto("/pages/index/index/index"); },1000) } } }) }); } getApp().check_can_share(); if (th.data.isclose == 0) { wx.navigateTo({ url: "/pages/index/index/index" }) } th.getuser_addr(function (addr) { if (addr == null || addr == undefined || addr.length == 0) { th.setData({ user_addr: null, enterAddressPage: 1,same_ok:1 }); } else { th.setData({ user_addr: addr, enterAddressPage: 0,same_ok:1 }); } if (th.data.goods) { th.calculatePrice2(); } }) //--更新默认地址--,看一下是不是跳到地址页面 if (!getApp().globalData.is_cart_old) { this.update_code(); } else { getApp().globalData.is_cart_old = 0; } }, /** * 用户点击右上角分享 */ onShareAppMessage: function () { getApp().globalData.no_clear=1 }, //---------------获取物流--------------- get_wuliu(func) { var th = this, to = getApp(); to.getwuliu(function (e) { //如果第一个不是开启默认,说明要让用户自己选 if (!e[0].is_default) { th.setData({ is_default_logistics: 0 }); } th.setData({ wu_arr: e }) typeof func == "function" && func(); }) }, //------获取会员信息-----先获取用户信息,在进行下一步--- get_info: function (func) { var user_id = t.globalData.user_id, to = getApp(); to.auth.get_u(func); }, //------获取会员收货地址----- getuser_addr: function (func) { var to = getApp(), a = to.request; a.get("/api/weshop/useraddress/page", { data: { user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600 }, success: function (su) { var user_addr = su.data.data.pageData; var item = null; var def_item = null; for (var i = 0; i < user_addr.length; i++) { if (user_addr[i]['is_default'] == 1) { def_item = user_addr[i]; } if (user_addr[i]['is_pickup'] == 1) { item = user_addr[i]; } } if (item == null) item = def_item; if (item == null) item = user_addr[0]; if (item == undefined) item = null; func(item); } }); }, //----------------展示页面,是再获取用户信息之后-------------- show_page: function () { var th = this, to = getApp(); th.setData({ userinfo: to.globalData.userInfo, }); //选获取地址 th.getuser_addr(function (addr) { if (addr == null || addr == undefined || addr.length == 0) { th.setData({ enterAddressPage: 1, }); } else { th.setData({ user_addr: addr, enterAddressPage: 0, }); } //获取立即购买的商品信息 th.get_buy_goods(th.data.order_id); }); //获取提现金额 getApp().request.get("/api/weshop/withdrawals/summoney", { data: { user_id: to.globalData.user_id, store_id: oo.stoid, status: 0 }, success: function (su) { console.log("withdrawals"); if (su.data.code == 0) { var yuer = parseFloat(th.data.userinfo.user_money - th.data.userinfo.frozen_money - su.data.data.summoney).toFixed(2); th.setData({ txmon: su.data.data.summoney, yuer: yuer }); } } }); }, //-----获取商品------ async get_buy_goods(ord) { var order = null, order_goods = null, goods = null, pickup = null, distr_type = 0, exp_type = 0, teamgroup = null, teamlist=null, th = this; let ord_m=null; //---获取订单--- await getApp().request.promiseGet("/api/weshop/order/get/" + oo.stoid + "/" + ord, {}).then(res => { order = res.data.data; }); //-- 如果有数据的话 -- let od_m=await getApp().request.promiseGet("/api/weshop/orderMore/get/" + os.stoid + "/" + order.order_sn, {}) if(od_m && od_m.data.code==0 && od_m.data.data){ ord_m=od_m.data.data; } //---获取订单从表--- await getApp().request.promiseGet("/api/weshop/ordergoods/page", { data: { store_id: oo.stoid, order_id: ord } }).then(res => { order_goods = res.data.data.pageData[0]; }); //---获取商品--- await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + order_goods.goods_id, {}).then(res => { goods = res.data.data; order.market_price = goods.market_price; order.show_img = oo.imghost + goods.original_img; }); //---获取门店--- await getApp().request.promiseGet("/api/weshop/pickup/get/" + oo.stoid + "/" + order.pickup_id, {}).then(res => { pickup = res.data.data; }); //---获取尾款价格--- await getApp().request.promiseGet("/api/weshop/teamgroup/page", { data: { store_id: oo.stoid, team_id: order.pt_prom_id, listno: order.pt_listno } }).then(res => { teamgroup = res.data.data.pageData[0]; }); await getApp().request.promiseGet("/api/weshop/teamlist/get/" + os.stoid + "/" + order.pt_prom_id, { data: { } }).then(res => { if(res.data.code==0) teamlist=res.data.data; }); var act_set=null; var url = '/api/weshop/activitylist/getActInfo1/'+os.stoid+'/6/'+order.pt_prom_id; await getApp().promiseGet(url, {}).then(res => { if(res.data.code==0){ act_set=res.data.data; } }) //-- 之前用的券要清理掉,从头选 -- if(order.coupon_no){ await getApp().request.promisePost('/api/weshop/users/frozenQuan/del/'+order.user_id+'/'+order.coupon_no,{}) } if(act_set.is_order_yh){ th.data.bn_is_order_yh=1; }else{ th.data.bn_is_order_yh=0; } if(act_set.is_post_temp){ th.data.bn_is_post_temp=1; }else{ th.data.bn_is_post_temp=0; } var jsarr = JSON.parse(teamgroup.jt_json); var count = teamgroup.jt_ct_num; if(teamgroup.is_xuni_ct) count=teamlist.ct_num; //要计算尾款的价钱 var price = 0; jsarr.forEach(function (value, index) { if (count >= value['rynum']) price = value['price']; }) var tail_money = (price * order_goods.goods_num - order['order_amount'] - order['user_money']).toFixed(2); order.pre_cut=0 if(ord_m && ord_m.pre_cut){ tail_money-=ord_m.pre_cut; order.pre_cut=ord_m.pre_cut; } tail_money = parseFloat(tail_money); order.tail_money = tail_money; if (!goods) return false; if(goods.is_minishop==1 && getApp().is_sp_hao()){ if(goods.distr_type==1 || pickup.distr_type==1) { wx.showToast({ title: "视频号仅支持物流", icon: 'none', duration: 2000 }) setTimeout(function(){ wx.navigateBack({delta: 1}) },1000) return false } goods.distr_type=2; th.setData({show_same_city:0}) } //--判断物流-- if (goods.distr_type) distr_type = goods.distr_type; else distr_type = pickup.distr_type; //-- 如果商品有同城配送的参数的时候,一件代发商品不能显示同城配送按钮 -- if(goods.is_same_city && th.data.is_same_city && goods.whsle_id<=0){ await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+order.pickup_id, {}).then(res=>{ if(res.data.code==0){ var pk=res.data.data; if(pk && pk.is_same_city){ th.setData({show_same_city:1}) } } }) } switch (distr_type) { case 0: exp_type = 1; //-- 系统后台有设置要默认的 -- if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) exp_type = 0; break; //自选 case 1: exp_type = 1; break //自提 case 2: exp_type = 0; break; //物流 } if(th.data.show_same_city==1 && th.data.json_d.pickupway && th.data.json_d.pickupway == 2 ){ exp_type = 2; } order.order_goods = order_goods; //-- 计算获得佣金的金额 -- if (getApp().globalData.userInfo.is_distribut && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { var fir_num = 0; var sec_num = 0; var thi_num = 0; if (th.data.dis_config.pattern == 1) { fir_num = (teamlist.fir_rate || 0) * order_goods.goods_num; sec_num = (teamlist.sec_rate || 0) * order_goods.goods_num; thi_num = (teamlist.thi_rate || 0) * order_goods.goods_num; } else { fir_num = parseFloat((teamlist.commission || 0) * order_goods.goods_num * (th.data.dis_config.firstRate || 0) / 100).toFixed(2); sec_num = parseFloat((teamlist.commission || 0) * order_goods.goods_num * (th.data.dis_config.secondRate || 0) / 100).toFixed(2); thi_num = parseFloat((teamlist.commission || 0) * order_goods.goods_num * (th.data.dis_config.thirdRate || 0) / 100).toFixed(2); } var c_num = getApp().get_commission(fir_num, sec_num, thi_num, th); goods.use_commission = parseFloat(c_num.toFixed(2)); } if(teamlist.is_quan){ let q_ch_money= parseFloat(price * order_goods.goods_num).toFixed(2); th.data.ckeck_quan_price = q_ch_money; th.data.check_quan_price_list = q_ch_money + ""; th.data.check_quan_ware_list = goods.erpwareid + ""; let scj_money= parseFloat( order.market_price * order_goods.goods_num).toFixed(2); th.data.check_quan_price_scj = scj_money; }else{ goods.is_xz_yh = 1; } this.setData({ order: order, distr_type: distr_type, pickup: pickup, bn_pick: pickup.pickup_id, exp_type: exp_type, goods: goods, teamgroup: teamgroup, teamlist: teamlist, }); //--计算价格-- th.calculatePrice2(); th.get_buy_now_quan(); }, calculatePrice2: async function () { wx.showLoading(); var th = this; th.setData({submit: 1,same_ok:1}) var allpice = th.data.order.order_amount + th.data.order.user_money + th.data.order.tail_money; //---如果有选择优惠券的情况下--- var quan_price = 0, bn_pick = th.data.bn_pick; var quan_no = null; if (th.data.using_quan[bn_pick] != null && th.data.using_quan[bn_pick] != undefined) quan_no = th.data.using_quan[bn_pick].coupon_no; if (quan_no) { //如果是一件代发就不要找商品 if (th.data.using_quan[bn_pick].isby != 1) { //---获取优惠券优惠--- await getApp().request.promiseGet("/api/weshop/couponList/getUseCouponPrice", { data: { storeId: oo.stoid, CashRepNo: quan_no, WaresSum: th.data.ckeck_quan_price, WareIds: th.data.check_quan_ware_list } }).then(res => { if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { quan_price = res.data.data[0].WareCashSum; if(quan_price>th.data.order.tail_money){ quan_price=th.data.order.tail_money } allpice=allpice-quan_price; } }) } } var order_prom_txt3 = "formData.coupon_price"; th.setData({[order_prom_txt3]: quan_price}) var o_condition = allpice; var ord_prom=null; var order_prom_amount=0; if (th.data.bn_is_order_yh) { await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { data: {store_id: os.stoid, orderAmount: o_condition, user_id: getApp().globalData.user_id} }).then(res => { if (res.data.code == 0) { ord_prom = res.data.data; //如果订单促销的取价不是实收,清空订单促销 if(ord_prom && ord_prom.discount_field>0) ord_prom=null; } }) } //如果有使用优惠券,如何订单促销有控制使用优惠券不参与此活动的话 if(quan_price>0 && ord_prom && ord_prom.is_xz_yh ){ ord_prom=null; } th.data.ord_prom=ord_prom; //--计算物流-- if (th.data.exp_type == 0) { th.calculate_wuliu(allpice); return false; }else if(th.data.exp_type == 2){ th.calculate_same_city(allpice); return false; } else { var order_prom_id=0; if (ord_prom) { order_prom_id = ord_prom['id']; switch (ord_prom['type']) { case 0: allpice = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 order_prom_amount = (o_condition - allpice).toFixed(2); break; case 1: //-- 如果有优惠促销倍减的时候 -- var bs = 1; if (ord_prom.is_bz) { bs = Math.floor(o_condition / ord_prom.money); } allpice = o_condition - bs * ord_prom['expression'];//满额优惠金额 order_prom_amount = ord_prom['expression']; break; } } //--订单优惠的显示-- var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if (order_prom_id > 0) { th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount}) } else { th.setData({[order_prom_txt1]: 0, [order_prom_txt2]: 0}) } if (th.data.bn_use_commission) { allpice -= th.data.goods.use_commission; } allpice = allpice.toFixed(2); th.setData({exp_price: 0, allpice: allpice, submit: 0, show_submit: 1}) th.def_coupon_fn() // wx.hideLoading(); } }, //--图片失败,默认图片-- bind_bnerr: function (e) { var _errImg = e.target.dataset.errorimg; var _errObj = {}; _errObj[_errImg] = this.data.imgUrl + "/miniapp/images/del/logo.jpg"; this.setData(_errObj) //注意这里的赋值方式,只是将数据列表中的此项图片路径值替换掉 ; }, //-------------------获取物流--------------- get_wuliu(func) { var th = this, to = getApp(); to.getwuliu(function (e) { th.setData({ wu_arr: e }) typeof func == "function" && func(); }) }, //--------点击选择---------- set_wuliu: function (e) { var type = e.currentTarget.dataset.type, th = this; this.setData({ exp_type: type,same_ok:1,first_entry:0 }); //--计算物流的值-- if (th.data.goods) { th.calculatePrice2(); } }, //关闭支付 close_show_pay: function () { this.setData({ show_pay_type: 0 }); }, //--弹起支付框-- to_pay() { let order=this.data.order; let formData=this.data.formData; let exp_price=this.data.exp_price; let bn_use_commission=this.data.bn_use_commission; //如果支付为0的时候 if(order.tail_money+exp_price-formData.coupon_price-(bn_use_commission?goods.use_commission:0)-(formData.order_prom_amount?formData.order_prom_amount:0)<=0 ){ this.to_pay_type(1); return false; } //如果有再计算价格的过程中,不能提交订单 if(this.data.submit){ return false} if(!this.data.same_ok){ return false} //--物流支付时要有地址-- if (this.data.exp_type == 0 && this.data.user_addr == null) { return getApp().my_warnning("请选择收货地址", 0, this); } this.setData({ show_pay_type: 1 }); }, //选择支付方式 set_pay_type: function (e) { if(this.data.paying) return false; this.data.paying=1; var type = e.currentTarget.dataset.type; this.to_pay_type(type); }, //--立即支付-- to_pay_type: function (ind) { var th = this; //--物流支付时要有地址-- //if (th.data.exp_type == 0 && th.data.user_addr == null) { if (getApp().is_no_addr(th,th.data.exp_type)) { this.data.paying=0; return getApp().my_warnning("请选择收货地址", 0, th); } th.data.exp_type=parseInt(th.data.exp_type+''); //---支付参数-- var dd = { order_sn: th.data.order.order_sn, order_id: th.data.order.order_id, store_id: oo.stoid, exp_type: th.data.exp_type, user_id: t.globalData.user_id, listno: th.data.order.pt_listno, prom_id: th.data.order.pt_prom_id, tail_pay_type: ind,//0微信支付 1余额支付 }; //组装优惠券的钱 if (parseFloat(th.data.formData.coupon_price) > 0) { dd.coupon_price = th.data.formData.coupon_price; dd.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; } if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].coupon_no && th.data.using_quan[th.data.bn_pick].isby) { dd.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; dd.coupon_price = 0; } if (th.data.exp_type == 0 || th.data.exp_type == 2) { var index = th.data.index; dd.shipping_code = th.data.wu_arr[index].code; dd.shipping_name = th.data.wu_arr[index].name; dd.shipping_price = parseFloat(th.data.exp_price); dd.addressid = th.data.user_addr.address_id; } //如果是同城配送的时候 // if(th.data.exp_type==2){ // dd.shipping_price = parseFloat(th.data.exp_price); // } if(dd.exp_type==2){ dd.lon=th.data.lon?th.data.lon:0; dd.lat=th.data.lat?th.data.lat:0; dd.goods_weight=th.data.bn_gd_w; dd.samecity_order_amount=th.data.bn_samecity_order_amount; } if(getApp().globalData.scene){ dd.scene=getApp().globalData.scene; } if(th.data.bn_use_commission){ dd.use_commission=th.data.goods.use_commission; } if(th.data.bn_use_commission){ dd.use_commission=th.data.goods.use_commission; } //--判断有没有优惠活动-- if (th.data.formData.order_prom_amount > 0) { var order_prom_list = {}; order_prom_list.order_prom_id = th.data.formData.order_prom_id; order_prom_list.order_prom_amount = th.data.formData.order_prom_amount; dd.order_prom_list = order_prom_list; } var arr = []; arr.push(dd); //console.log(JSON.stringify(arr)); getApp().request.promisePost("/api/weshop/order/pay/payTuanWk", { data: arr,is_json:1,is_normal:1 }).then(t => { //---用微信支付--- if (dd.tail_pay_type == 0) { if (t.data.code != 0) { getApp().my_warnning(t.data.msg, 1, th); th.data.paying=0; return false; } //-- 把订单号记录起来 -- th.data.ok_order_sn=th.data.order.order_sn; util_pay.pay_data(t,function (){ var allmoney = th.data.allpice; th.jumpPaymentPage(th.data.order.order_sn, allmoney); },function (){ th.data.paying=0; //getApp().my_warnning("支付失败", 0, th); th.updateOrderCoupon(); //取消祝福 }) //var n = t.data.data; // th.weixinPay(n, // function () { // var allmoney = th.data.allpice; // th.jumpPaymentPage(th.data.order.order_sn, allmoney); // }, function () { // th.data.paying=0; // getApp().my_warnning("支付失败", 0, th); // }) } else { if (t.data.code == 0) { //---用余额支付--- // getApp().my_warnning("支付成功", 1, th); wx.showToast({ title: '支付成功', icon: 'success', duration: 2000 }); setTimeout(function () { th.setData({ isclose: 0 }); th.data.paying=0; wx.redirectTo({ url: "/pages/user/order_list/order_list" }) }, 1000) } else { th.data.paying=0; getApp().my_warnning(t.data.msg, 1, th); } } }).catch(function(err) { th.data.paying=0; }) }, //检查区域是不是包邮 check_area: function (arr) { var user_addr = this.data.user_addr; if (!user_addr) return 0; for (var i in arr) { var item = arr[i]; if (user_addr.twon == item || user_addr.district == item || user_addr.city == item || user_addr.province == item) { return 0; } } return 1; }, //检查立即购买的商品是不是不包邮 check_good: function (arr, goods_id) { if (!goods_id) goods_id = this.data.goods.goods_id; for (var i in arr) { var item = arr[i]; if (goods_id == item) return 0; } return 1; }, check_by_area: function (region_list) { var arr = region_list.split(","); var check = this.check_area(arr); return !check; }, check_by_goods: function (goods_list, goods_id) { var arr = goods_list.split(","); var check = this.check_good(arr, goods_id); return !check; }, //----计算物流的钱---- async calculate_wuliu(p_allpice) { //让按钮变灰色 this.setData({submit: 1}); var to = getApp(), th = this; //to.getwuliuprice(async function (rs) { var o_shipping_price = 0, goods_weight = -1, goods_piece = -1, good = th.data.goods; var out_of_weight = null; //超出多少重量 good.buynum = th.data.order.order_goods['goods_num']; var gd_arr_list = []; gd_arr_list.push(good); var ord_prom = this.data.ord_prom; var order_prom_id=0; var order_prom_amount=0; //--全部金额-- var allpice = th.data.order.order_amount + th.data.order.user_money + th.data.order.pt_tail_money; if(p_allpice) allpice=p_allpice; // if(th.data.bn_use_commission){ // allpice-=th.data.goods.use_commission; // } var pickid=th.data.bn_pick; var o_condition=allpice; var quan_no = null; if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) quan_no = th.data.using_quan[pickid].coupon_no; //-----------当地址不为空,且是物流时,计算物流费用---------- if (th.data.user_addr != null && th.data.exp_type == 0 && good.is_free_shipping == 0) { //看是不是有调用过包邮券 if (!th.data.isget_by_quan[th.data.pickid] && good.is_xz_yh != 1) { //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { data: { store_id: os.stoid, isuse: 0, condition: o_condition, user_id: getApp().globalData.user_id, pageSize: 2000 } }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { //此时要循环判断包邮的地区,不包邮商品是不是符合 var arr = [], quanlist = res.data.data.pageData; quanlist = th.check_is_frozenQuan(quanlist, th.data.frozenQuan, 1); for (var i in quanlist) { var item = quanlist[i]; if (item.region_list && th.check_by_area(item.region_list)) continue; //如果是不包邮区域 if (item.goods_list) { var no_goods_arr = item.goods_list.split(","); if (ut.isContained(no_goods_arr, gd_arr_list)) continue; //如果是不包邮商品 } arr.push(item); } if (arr) { th.setData({ get_by_quan_list: arr,def_coupon3: arr }); } th.data.isget_by_quan[th.data.bn_pick] = 1; } }) } //订单促销的包邮模板 和 活动的包邮模板要一起判断 if ((!ord_prom || ord_prom.is_post_temp) && th.data.bn_is_post_temp) { var user_addr = th.data.user_addr; var req_d = { province: user_addr.province, city: user_addr.city, district: user_addr.district, wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid } var back_data = null; await getApp().request.promisePost("/api/weshop/order/areaFreight", { is_json: 1, data: req_d }).then(rs => { if (rs.data.code == 0) back_data = rs.data.data; }); } var is_by_quan = 0; var quan_no_goods_arr=null; //如果是包邮券的时候,要看看券的情况,判断一下包邮有没有不包邮模板 if (quan_no && th.data.using_quan[pickid].isby == 1) { var quan = th.data.using_quan[pickid]; if (quan.goods_list) { quan_no_goods_arr = quan.goods_list.split(","); } else { is_by_quan = 1; } } //如果有包邮券的不包邮商品的时候 if (quan_no_goods_arr) { if (back_data && back_data.no_free_goods) { back_data['is_by_all'] = 1; var arr3 = back_data.no_free_goods.filter(item => { return quan_no_goods_arr.includes(item) }) back_data.no_free_goods = null; if (arr3.length) { back_data.no_free_goods = arr3; } } if (!back_data || !back_data.no_free_goods) { if (!back_data) back_data = {}; back_data['is_by_all'] = 1; back_data['no_free_goods'] = quan_no_goods_arr; } } if(!is_by_quan){ var cut_good_weight = 0; for (let i in gd_arr_list) { let item = gd_arr_list[i]; if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { if(back_data.weight_free* 1000 0) { if (goods_weight < 0) goods_weight = 0; goods_weight += item['weight'] * item['buynum']; cut_good_weight += item['weight'] * item['buynum']; } if (back_data.weight_free > 0) { out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; } } continue; } switch (item['exp_sum_type']) { case 1: //统一运费 o_shipping_price += item['uniform_exp_sum']; break; case 2: if (goods_weight < 0) goods_weight = 0; //累积商品重量 每种商品的重量 * 数量 goods_weight += item['weight'] * item['buynum']; if (back_data && back_data.is_by_all && !back_data.no_free_goods) { cut_good_weight += item['weight'] * item['buynum']; if (back_data.weight_free > 0) { out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; } } break; case 3: if (goods_piece < 0) goods_piece = 0; //累积商品数量 goods_piece += item['buynum']; break; } } //如果是正值的时候 if (out_of_weight >= 0) out_of_weight = -cut_good_weight; else out_of_weight = -back_data.weight_free * 1000; if (!th.data.wu_arr) { wx.hideLoading(); wx.showToast({ title: "物流配置未启用物流公司", icon: 'none', duration: 2000 }) //th.setData({ show_submit:0, }); th.setData({show_submit: 1, submit: 0, same_ok: 0}) return false; } var code = th.data.wu_arr[th.data.index].code; //--------------开始计算物流------------------ var shipping_price = 0; // ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, // goods_piece, th.data.user_addr, back_data, rs); var w_data = { store_id: os.stoid, code: code, o_shipping_price: o_shipping_price, goods_weight: goods_weight, out_of_weight: out_of_weight, goods_piece: goods_piece, user_addr_province: th.data.user_addr.province, user_addr_city: th.data.user_addr.city, user_addr_district: th.data.user_addr.district, is_by_all: back_data && back_data.is_by_all ? 1 : 0, no_free_goods: back_data && back_data.no_free_goods && back_data.no_free_goods.length > 0 ? 1 : 0, } var is_ok = 0; await getApp().request.promisePost('/api/weshop/order/getOrderWuLiPrice', { data: w_data, is_json: 1 }).then(res => { if (res.data.code == 0) { shipping_price = res.data.data; is_ok = 1; } else { getApp().confirmBox("计算物流错误:" + res.data.msg); } }) if (!is_ok) { th.setData({show_submit: 1, submit: 0, same_ok: 0}) wx.hideLoading(); return false; } } //-- 计算一下订单促销 -- if (ord_prom) { order_prom_id = ord_prom['id']; switch (ord_prom['type']) { case 0: allpice = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 order_prom_amount = (o_condition - allpice).toFixed(2); break; case 1: //-- 如果有优惠促销倍减的时候 -- var bs = 1; if (ord_prom.is_bz) { bs = Math.floor(o_condition / ord_prom.money); } allpice = o_condition - bs * ord_prom['expression'];//满额优惠金额 order_prom_amount = ord_prom['expression']; break; } } //--订单优惠的显示-- var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if (order_prom_id > 0) { th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount}) } else { th.setData({[order_prom_txt1]: 0, [order_prom_txt2]: 0}) } var exp_price = parseFloat(shipping_price).toFixed(2); allpice = parseFloat(exp_price) + parseFloat(allpice); if (allpice < th.data.goods.use_commission) { if (th.data.bn_use_commission) { wx.showToast({ title: '应付金额小于本单佣金,不可使用!', icon: 'none', duration: 2000 }) } th.setData({ bn_use_commission: 0 }); } if (th.data.bn_use_commission) { allpice -= th.data.goods.use_commission; } allpice = allpice.toFixed(2); exp_price = parseFloat(exp_price); th.setData({exp_price: exp_price, allpice: allpice, submit: 0, show_submit: 1}) } else { var allpice = th.data.order.order_amount + th.data.order.user_money + th.data.order.tail_money; //-- 计算一下订单促销 -- if (ord_prom) { order_prom_id = ord_prom['id']; switch (ord_prom['type']) { case 0: allpice = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 order_prom_amount = (o_condition - allpice).toFixed(2); break; case 1: //-- 如果有优惠促销倍减的时候 -- var bs = 1; if (ord_prom.is_bz) { bs = Math.floor(o_condition / ord_prom.money); } allpice = o_condition - bs * ord_prom['expression'];//满额优惠金额 order_prom_amount = ord_prom['expression']; break; } } //--订单优惠的显示-- var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if (order_prom_id > 0) { th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount}) } else { th.setData({[order_prom_txt1]: 0, [order_prom_txt2]: 0}) } if (allpice < th.data.goods.use_commission) { if (th.data.bn_use_commission) { wx.showToast({ title: '应付金额小于本单佣金,不可使用!', icon: 'none', duration: 2000 }) } th.setData({ bn_use_commission: 0 }); } if (th.data.bn_use_commission) { allpice -= th.data.goods.use_commission; } allpice = allpice.toFixed(2); th.setData({exp_price: 0, allpice: allpice, submit: 0, show_submit: 1}) } th.def_coupon_fn() // wx.hideLoading(); //}); }, //----计算物流的钱--- async calculate_same_city(p_allpice) { //让按钮变灰色 this.setData({submit:1}); var th = this; var good = th.data.goods; good.buynum=th.data.order.order_goods['goods_num']; var ord_prom = this.data.ord_prom; var order_prom_id=0; var order_prom_amount=0; //--全部金额-- var allpice = p_allpice; var o_condition=p_allpice; //-----------当地址不为空,且是物流时,计算物流费用---------- if (th.data.user_addr != null) { var lon=0;var lat=0; //-- 获取距离 -- await getApp().request.promisePost("/api/weshop/order/sameCityExp/getGeocoder", { is_json: 1, data: {address:th.data.user_addr.more_address+th.data.user_addr.address,store_id:os.stoid} }).then(res=>{ if(res.data.code==0){ var data= JSON.parse(res.data.data); if(data.status==0){ lon=data.result.location.lng; lat=data.result.location.lat; } } }) var gd_w = good['weight'] * good['buynum']; //--------------开始计算物流------------------ var shipping_price =0; //-- 获取距离 -- var req_data={ store_id:os.stoid, order_amount:allpice, lon:lon,lat:lat, pickup_id:th.data.pickup.pickup_id, goods_weight:gd_w } var is_next=1; //获取同城配送参数 await getApp().request.promisePost("/api/weshop/order/sameCityExp/getMoney", {is_json:1,data:req_data}).then(res=>{ if(res.data.code==0){ shipping_price=res.data.data; }else{ is_next=0; wx.showToast({ title: res.data.msg, icon: 'none', duration: 2000 }) } }) if(!is_next) { th.setData({show_submit:1, submit: 0,same_ok:0 }) return false } //-- 计算一下订单促销 -- if (ord_prom) { order_prom_id = ord_prom['id']; switch (ord_prom['type']) { case 0: allpice = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 order_prom_amount = (o_condition - allpice).toFixed(2); break; case 1: //-- 如果有优惠促销倍减的时候 -- var bs = 1; if (ord_prom.is_bz) { bs = Math.floor(o_condition / ord_prom.money); } allpice = o_condition - bs * ord_prom['expression'];//满额优惠金额 order_prom_amount = ord_prom['expression']; break; } } //--订单优惠的显示-- var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if (order_prom_id > 0) { th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount}) } else { th.setData({[order_prom_txt1]: 0, [order_prom_txt2]: 0}) } th.data.lon=lon; th.data.lat=lat; th.data.bn_gd_w=gd_w; th.data.bn_samecity_order_amount=req_data.order_amount; var exp_price = parseFloat(shipping_price).toFixed(2); allpice = parseFloat(exp_price) + parseFloat(allpice); if(th.data.bn_use_commission){ allpice-=th.data.goods.use_commission; } allpice = allpice.toFixed(2); exp_price = parseFloat(exp_price); th.setData({ exp_price: exp_price, allpice: allpice,submit:0,show_submit:1 }) } else { //-- 计算一下订单促销 -- if (ord_prom) { order_prom_id = ord_prom['id']; switch (ord_prom['type']) { case 0: allpice = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 order_prom_amount = (o_condition - allpice).toFixed(2); break; case 1: //-- 如果有优惠促销倍减的时候 -- var bs = 1; if (ord_prom.is_bz) { bs = Math.floor(o_condition / ord_prom.money); } allpice = o_condition - bs * ord_prom['expression'];//满额优惠金额 order_prom_amount = ord_prom['expression']; break; } } //--订单优惠的显示-- var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if (order_prom_id > 0) { th.setData({[order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount}) } else { th.setData({[order_prom_txt1]: 0, [order_prom_txt2]: 0}) } if(th.data.bn_use_commission){ allpice-=th.data.goods.use_commission; } allpice = allpice.toFixed(2); th.setData({ exp_price: 0, allpice: allpice,submit:0,show_submit:1}) } th.def_coupon_fn() // wx.hideLoading(); }, //---------------检查是否有收货地址------------------- checkAddressList: function () { var t = this; return !(!this.data.order || null == this.data.order.userAddress) || (wx.showModal({ title: "请先填写或选择收货地址~", success: function (a) { a.confirm ? t.enterAddressPage() : wx.navigateBack(); }, fail: function () { wx.navigateBack(); } }), !1); }, //--进入收货地址的编辑页面-- enterAddressPage: function () { getApp().globalData.is_cart_old = 1; this.data.enterAddressPage = 1, wx.navigateTo({ url: "/packageF/pages/user/address_list/address_list?is_back=1" }); }, //------------循环获取config----------- get_wuliu_config: function (region_id, code, rs) { var item = null, rslist = rs.pageData; for (var i = 0; i < rslist.length; i++) { if (rslist[i].code == code && rslist[i].region_id == region_id) { item = rslist[i]; } } return item; }, //-------循环获取config,code default------- get_wuliu_default: function (code, rs) { var item = null, rslist = rs.pageData; for (var i = 0; i < rslist.length; i++) { if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { item = rslist[i]; } } return item; }, //-------获取物流选项------- bindPickerChange: function (e) { var ind = e.detail.value; this.setData({ index: ind }); }, //------支付成功页面-------- jumpPaymentPage: function (order_sn, order_amount) { wx.setStorageSync("order:order_list:update", !0), wx.redirectTo({ url: "/packageG/pages/payment/pay_success/pay_success?order_sn=" + order_sn + "&type=1", }); }, //------调起支付框-------- weixinPay: function (n, success, fail) { if (!n) return false; var th = this; getApp().globalData.no_clear=1; wx.requestPayment({ timeStamp: String(n.timeStamp), nonceStr: n.nonceStr, package: n.packageValue, signType: n.signType, paySign: n.paySign, success: function (n) { // console.log(n), getApp().showSuccess("支付成功!"); wx.showToast({ title: '支付成功', icon: 'success', duration: 2000 }); "function" == typeof success && success(); }, fail: function (n) { console.log(n), "requestPayment:fail" == n.errMsg ? getApp().my_warnning("支付失败", 0, th) : "requestPayment:fail cancel" == n.errMsg ? getApp().my_warnning("您已取消支付", 0, th) : getApp().my_warnning("支付失败:" + n.errMsg.substr("requestPayment:fail ".length), 0, th), "function" == typeof fail && fail(); } }); }, //更新下默认,在onshow里面 update_code() { var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; var uii = setInterval(function () { if (th.data.wu_arr) { clearInterval(uii); if(th.data.is_default_logistics) return false; for (var k = 0; k < th.data.wu_arr.length; k++) { var item = th.data.wu_arr[k]; if (def_exp_code == item.code) { m_wind = k; } } //--如果是立即购买-- th.setData({ index: m_wind, is_express: m_wind }); } }, 500) }, //// 开启物流的弹窗 show_wu_arr: function (e) { this.setData({ open_express: 1 }); }, // 关闭物流的弹窗 close_express: function () { this.setData({ open_express: 0 }); }, // 选择物流 click_express_name: function (e) { var express_name = e.currentTarget.dataset.name, shippingcode = e.currentTarget.dataset.shippingcode; var index = e.currentTarget.dataset.idxe; var ob = { is_express: index, is_shipping_code: shippingcode, index: index }; this.setData(ob); }, //点击确定物流 determine_expres: function (e) { this.setData({ open_express: 0 }); this.calculatePrice2(); }, //设置默认物流 select_default_logistics: function () { var th = this; var is_shipping_code = this.data.is_shipping_code getApp().request.put("/api/weshop/users/update", { data: { user_id: getApp().globalData.user_id, store_id: oo.stoid, def_exp_code: is_shipping_code }, success: function (rse) { if (rse.data.code == 0) { getApp().globalData.userInfo.def_exp_code = is_shipping_code; th.setData({ open_express: 0 }); //----计算此时购物车的价格,这个页面没有calculatePrice(),2021.7.19---- //if (th.data.is_b_now == 1) th.calculatePrice2(); //else th.calculatePrice(); th.calculatePrice2(); } } }) }, //使用 set_bn_commission:function(){ var th = this; th.setData({bn_use_commission: !th.data.bn_use_commission}); th.calculatePrice2(); }, //------ 获取立即购买的购物车的劵 -------- get_buy_now_quan: function () { var quanlist = null, th = this, frozenQuan = null; var good = this.data.goods; //一件代发商品不使用优惠券 if (good.whsle_id) return false; if(!th.data.check_quan_ware_list) return false; //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- if (th.data.is_close_quan != 1 && good.is_xz_yh != 1 && th.data.check_quan_ware_list) { var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; var url = "/api/weshop/couponList/getUseCouponList"; let quan_rq={ storeId: oo.stoid, userId: app.globalData.user_id, BuySum: th.data.ckeck_quan_price, WareIds: encodeURIComponent(th.data.check_quan_ware_list), pageSize: 100, }; if(parseFloat(th.data.ckeck_quan_price)>=parseFloat(th.data.check_quan_price_scj)){ quan_rq.BuyPosSum=th.data.ckeck_quan_price; quan_rq.PosWareIds=encodeURIComponent(th.data.check_quan_ware_list) } app.request.promiseGet(url0, { 1: 1 }).then(res => { if (res.data.code == 0) { frozenQuan = res.data.data; th.data.frozenQuan = frozenQuan; } app.request.time_limit_get(6, url, { data: quan_rq, success: function (res) { if (res.data.code == 0) { quanlist = res.data.data.pageData; if (quanlist) { quanlist = th.check_is_frozenQuan(quanlist, frozenQuan); th.setData({ selected_quan_list: quanlist,def_coupon2: quanlist }) } } } }) }) } }, //--验证是否已经冻结-- check_is_frozenQuan: function (quanlist, frozenQuan, isby) { console.log("券列表", quanlist); if (!quanlist) return null; if (!frozenQuan) return quanlist; var arr = []; for (var i = 0; i < quanlist.length; i++) { var item = quanlist[i]; var is_find = 0; var Q_no = quanlist[i].CashRepNo; if (isby) Q_no = quanlist[i].no; for (var j = 0; j < frozenQuan.length; j++) { var q_no = frozenQuan[j].cashRepNo; if (Q_no == q_no) { is_find = 1; break; } } if (!is_find) arr.push(item); } return arr; }, /*----券的所有操作----*/ open_coupon_list: function (e) { var th = this; var pickid = e.currentTarget.dataset.pickid; var bn = e.currentTarget.dataset.bn; var cindx = e.currentTarget.dataset.cind; if (bn == 1) { th.setData({ open_quan: 1, selected_quan_pick: pickid, disabled: 1 }); } else { //---多单打开券的时候,就要判断券在其他门店是否有使用--- var quanlist = th.data.cartlist[cindx].quan_list; var exp_type = th.data.cartlist[cindx].exp_type; //对于在其他门店已经选择了的券 要判断是否显示到界面 var t_user = th.data.using_quan[pickid]; for (var i in quanlist) { quanlist[i].is_using = th.check_in_sele(quanlist[i].CashRepNo, pickid); if (t_user && quanlist[i].CashRepNo == t_user.coupon_no) quanlist[i].show_red = 1; else quanlist[i].show_red = 0; } if (get_by_quan_list_cart) { for (var i in get_by_quan_list_cart) { get_by_quan_list_cart[i].is_using = th.check_in_sele(get_by_quan_list_cart[i].no, pickid); if (t_user && get_by_quan_list_cart[i].no == t_user.coupon_no) get_by_quan_list_cart[i].show_red = 1; else get_by_quan_list_cart[i].show_red = 0; } th.setData({ by_quan_list_cart: get_by_quan_list_cart }); } else { th.setData({ by_quan_list_cart: null }); } console.log("2222222券的列表", quanlist); th.setData({ sele_cart_ind: cindx, sele_exp_type: exp_type, open_quan: 1, selected_quan_pick: pickid, selected_quan_list: quanlist, disabled: 1 }); } }, close_coupon: function (e) { var th = this; th.setData({ open_quan: 0, disabled: 0 }); }, /*--点击选择券--*/ sele_quan_item_befor: function (e) { var ind = 0; var quan_item = this.data.selected_quan_list[ind]; var pickid = this.data.selected_quan_pick; //现在选择的是哪一个门店 //--如果券是单品使用的时候-- if (quan_item && quan_item.UseObjectType && quan_item.UseObjectType == "20") { //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- var gg = getApp().get_b_now(); if (this.data.is_b_now == 0 || gg.prom_type == 5) { var arr = this.data.order_prom_list_cart; var t_pk_item = null; for (var ii in arr) { var ep = arr[ii]; if (pickid == ep.pickup_id) { t_pk_item = ep; break; } } //--寻找券指定的商品-- var gd = null; if (t_pk_item) { var goods = t_pk_item.goods; for (var gid in goods) { if (quan_item.UseObjectID == goods[gid].erpwareid) { gd = goods[gid]; } } } if (!gd) { // getApp().my_warnning("未找到指定商品使用", 0, this, 600); return false; } //计算价格,如果有平摊的实收要计算实收的金额 var item_price = gd.goods_price * gd.goods_num; //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- if (gd.account_fir != null && gd.account_fir != undefined) { item_price = gd.account_fir * gd.goods_num; } if (item_price < parseFloat(quan_item.BuySum)) { // getApp().my_warnning("该单品金额没有大于等于" + quan_item.BuySum + "元时不能使用优惠券", 0, this, 600); return false; } } } var quanlist = this.data.selected_quan_list; //---所有的券的显示红色选择都清理一遍--- for (var i in quanlist) { quanlist[i].show_red = 0; } this.setData({ selected_quan_list: quanlist }); var by_quanlist = this.data.get_by_quan_list; if (by_quanlist) { //---所有的券的显示红色选择都清理一遍--- for (var inb in by_quanlist) { by_quanlist[inb].show_red = 0; } this.setData({ get_by_quan_list: by_quanlist }); } var by_cart_list = this.data.by_quan_list_cart; if (by_cart_list) { //---所有的券的显示红色选择都清理一遍--- for (var inc in by_cart_list) { by_cart_list[inc].show_red = 0; } this.setData({ by_quan_list_cart: by_cart_list }); } var using_quan = this.data.using_quan; var th = this; //---如果是不使用优惠券--- // if (no_use == 1) { // console.log("有进来吗券", no_use); // if (using_quan[th.data.selected_quan_pick]) { // using_quan[th.data.selected_quan_pick].is_nouse_red = 1; // } // else { // using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; // } // this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); // return; // } var txt = "selected_quan_list[" + ind + "].show_red"; var obj = {}; obj[txt] = 1; if (quan_item.show_red) { obj[txt] = 0; } this.setData(obj); console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt); if (using_quan[th.data.selected_quan_pick]) { using_quan[th.data.selected_quan_pick].is_nouse_red = 0; } else { using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; } this.setData({ using_quan: using_quan }); return true }, /*--点击选择券--*/ sele_quan_item: function (e) { var ind = e.currentTarget.dataset.ind; var quan_item = this.data.selected_quan_list[ind]; var pickid = this.data.selected_quan_pick; //现在选择的是哪一个门店 //--如果券是单品使用的时候-- if (quan_item && quan_item.UseObjectType && quan_item.UseObjectType == "20") { //---只有多件购买的时候才要计算,//购物车购买和搭配勾的时候--- var gg = getApp().get_b_now(); if (this.data.is_b_now == 0 || gg.prom_type == 5) { var arr = this.data.order_prom_list_cart; var t_pk_item = null; for (var ii in arr) { var ep = arr[ii]; if (pickid == ep.pickup_id) { t_pk_item = ep; break; } } //--寻找券指定的商品-- var gd = null; if (t_pk_item) { var goods = t_pk_item.goods; for (var gid in goods) { if (quan_item.UseObjectID == goods[gid].erpwareid) { gd = goods[gid]; } } } if (!gd) { getApp().my_warnning("未找到指定商品使用", 0, this, 600); return false; } //计算价格,如果有平摊的实收要计算实收的金额 var item_price = gd.goods_price * gd.goods_num; //-- 如果有平摊下去,有实收价格的时候,就要用account_fir来计算价格 -- if (gd.account_fir != null && gd.account_fir != undefined) { item_price = gd.account_fir * gd.goods_num; } if (item_price < parseFloat(quan_item.BuySum)) { getApp().my_warnning("该单品金额没有大于等于" + quan_item.BuySum + "元时不能使用优惠券", 0, this, 600); return false; } } } var no_use = e.currentTarget.dataset.no, quanlist = this.data.selected_quan_list; //---所有的券的显示红色选择都清理一遍--- for (var i in quanlist) { quanlist[i].show_red = 0; } this.setData({ selected_quan_list: quanlist }); var by_quanlist = this.data.get_by_quan_list; if (by_quanlist) { //---所有的券的显示红色选择都清理一遍--- for (var inb in by_quanlist) { by_quanlist[inb].show_red = 0; } this.setData({ get_by_quan_list: by_quanlist }); } var by_cart_list = this.data.by_quan_list_cart; if (by_cart_list) { //---所有的券的显示红色选择都清理一遍--- for (var inc in by_cart_list) { by_cart_list[inc].show_red = 0; } this.setData({ by_quan_list_cart: by_cart_list }); } var using_quan = this.data.using_quan; var th = this; //---如果是不使用优惠券--- if (no_use == 1) { console.log("有进来吗券", no_use); if (using_quan[th.data.selected_quan_pick]) { using_quan[th.data.selected_quan_pick].is_nouse_red = 1; } else { using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; } this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); return; } var txt = "selected_quan_list[" + ind + "].show_red"; var obj = {}; obj[txt] = 1; if (quan_item.show_red) { obj[txt] = 0; } this.setData(obj); console.log(this.data.selected_quan_list, "选中的券的下标", quan_item, "数据都在这里", txt); if (using_quan[th.data.selected_quan_pick]) { using_quan[th.data.selected_quan_pick].is_nouse_red = 0; } else { using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; } this.setData({ using_quan: using_quan }); }, /*----- 点击选择包邮券 -----*/ sele_quan_item_by_befor: function (e) { // var no_use = e.currentTarget.dataset.no; //立即购买的包邮券 var by_quanlist = this.data.get_by_quan_list; if (by_quanlist) { //---所有的券的显示红色选择都清理一遍--- for (var ind in by_quanlist) { by_quanlist[ind].show_red = 0; } this.setData({ get_by_quan_list: by_quanlist }); } //普通券 var quanlist = this.data.selected_quan_list; if (quanlist) { //---所有的券的显示红色选择都清理一遍--- for (var ind in quanlist) { quanlist[ind].show_red = 0; } this.setData({ selected_quan_list: quanlist }); } var th = this; var using_quan = this.data.using_quan; //---如果是不使用优惠券--- // if (no_use == 1) { // if (using_quan[th.data.selected_quan_pick]) { // using_quan[th.data.selected_quan_pick].is_nouse_red = 1; // } // else { // using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; // } // this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); // return; // } var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店 var ind = 0; //--如果是立即购买的部分-- var txt = ""; var txt1 = ""; var quan_item = null; quan_item = this.data.get_by_quan_list[ind]; txt = "get_by_quan_list[" + ind + "].show_red"; var obj = {}; obj[txt] = 1; this.setData(obj); if (using_quan[th.data.selected_quan_pick]) { using_quan[th.data.selected_quan_pick].is_nouse_red = 0; } else { using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; } this.setData({ using_quan: using_quan }); }, /*----- 点击选择包邮券 -----*/ sele_quan_item_by: function (e) { var no_use = e.currentTarget.dataset.no; //立即购买的包邮券 var by_quanlist = this.data.get_by_quan_list; if (by_quanlist) { //---所有的券的显示红色选择都清理一遍--- for (var ind in by_quanlist) { by_quanlist[ind].show_red = 0; } this.setData({ get_by_quan_list: by_quanlist }); } //普通券 var quanlist = this.data.selected_quan_list; if (quanlist) { //---所有的券的显示红色选择都清理一遍--- for (var ind in quanlist) { quanlist[ind].show_red = 0; } this.setData({ selected_quan_list: quanlist }); } var th = this; var using_quan = this.data.using_quan; //---如果是不使用优惠券--- if (no_use == 1) { if (using_quan[th.data.selected_quan_pick]) { using_quan[th.data.selected_quan_pick].is_nouse_red = 1; } else { using_quan[th.data.selected_quan_pick] = { is_nouse_red: 1 }; } this.setData({ using_quan: using_quan, is_coupon: th.is_coupon }); return; } var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店 var ind = e.currentTarget.dataset.ind; //--如果是立即购买的部分-- var txt = ""; var txt1 = ""; var quan_item = null; quan_item = this.data.get_by_quan_list[ind]; txt = "get_by_quan_list[" + ind + "].show_red"; var obj = {}; obj[txt] = 1; this.setData(obj); if (using_quan[th.data.selected_quan_pick]) { using_quan[th.data.selected_quan_pick].is_nouse_red = 0; } else { using_quan[th.data.selected_quan_pick] = { is_nouse_red: 0 }; } this.setData({ using_quan: using_quan }); }, //--确认使用券--- confirm_quan_befor: function () { var using_quan = this.data.using_quan; //正在使用中的券列表 var pickid = this.data.selected_quan_pick; //选中的门店ID var th = this; var selected_quan_list = this.data.selected_quan_list; //选择了那个门店的券列表 var get_by_quan_list = this.data.get_by_quan_list; //立即购买的包邮券列表 var by_quan_list_cart = this.data.by_quan_list_cart; //购物车购买的包邮券列表 //选择了的券 var sele_quan = null; //循环普通的券 for (var i in selected_quan_list) { var item = selected_quan_list[i]; if (item.show_red) { th.insert_into_using_quan(item, using_quan, pickid,0,false); return; } } //循环包邮的券,立即购买的 for (var i in get_by_quan_list) { var item = get_by_quan_list[i]; if (item.show_red) { if (th.data.is_no_by[pickid] == 1) { // getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); return false; } if (th.data.is_by[pickid] == 1) { // getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); return false; } th.insert_into_using_quan(item, using_quan, pickid, 1,false); return; } } //循环包邮的券 for (var i in by_quan_list_cart) { var item = by_quan_list_cart[i]; if (item.show_red) { if (th.data.is_no_by[pickid] == 1) { // getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); return false; } if (th.data.is_by[pickid] == 1) { // getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); return false; } th.insert_into_using_quan(item, using_quan, pickid, 1,false); return; } } //选择了的券,看是不是点击了不使用券,点击了不使用优惠券 if (using_quan[pickid]) { if (using_quan[pickid].is_nouse_red == 1) { using_quan[pickid] = { is_nouse_red: 1 }; th.setData({ using_quan: using_quan }); th.calculatePrice2(); th.setData({ open_quan: 0 }); return; } } }, //--确认使用券--- confirm_quan: function () { var using_quan = this.data.using_quan; //正在使用中的券列表 var pickid = this.data.selected_quan_pick; //选中的门店ID var th = this; var selected_quan_list = this.data.selected_quan_list; //选择了那个门店的券列表 var get_by_quan_list = this.data.get_by_quan_list; //立即购买的包邮券列表 var by_quan_list_cart = this.data.by_quan_list_cart; //购物车购买的包邮券列表 //选择了的券 var sele_quan = null; //循环普通的券 for (var i in selected_quan_list) { var item = selected_quan_list[i]; if (item.show_red) { th.insert_into_using_quan(item, using_quan, pickid); return; } } //循环包邮的券,立即购买的 for (var i in get_by_quan_list) { var item = get_by_quan_list[i]; if (item.show_red) { if (th.data.is_no_by[pickid] == 1) { getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); return false; } if (th.data.is_by[pickid] == 1) { getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); return false; } th.insert_into_using_quan(item, using_quan, pickid, 1); return; } } //循环包邮的券 for (var i in by_quan_list_cart) { var item = by_quan_list_cart[i]; if (item.show_red) { if (th.data.is_no_by[pickid] == 1) { getApp().my_warnning("已全场不能包邮,不能选择包邮券", 0, th); return false; } if (th.data.is_by[pickid] == 1) { getApp().my_warnning("已全场包邮,不能选择包邮券", 0, th); return false; } th.insert_into_using_quan(item, using_quan, pickid, 1); return; } } //选择了的券,看是不是点击了不使用券,点击了不使用优惠券 if (using_quan[pickid]) { if (using_quan[pickid].is_nouse_red == 1) { using_quan[pickid] = { is_nouse_red: 1 }; th.setData({ using_quan: using_quan }); th.calculatePrice2(); th.setData({ open_quan: 0 }); return; } } }, //默认选择优惠券 def_coupon_fn() { // setTimeout(() => { // this.def_coupon_fn_aft() // }, 100); wx.showLoading({ title: '加载中', mask:true }) try { setTimeout(() => { wx.hideLoading() this.def_coupon_fn_aft() }, 1000); } catch (error) { } }, //默认选择优惠券 def_coupon_fn_aft() { console.error('进入默认优惠券选择'); let th = this; let first_entry = th.data.first_entry; console.error(first_entry); if (first_entry > 0) { return } first_entry += 1; th.setData({ first_entry }) let length1 = th.data.def_coupon1 ? th.data.def_coupon1.length : 0 let length2 = th.data.def_coupon2 ? th.data.def_coupon2.length : 0 let length3 = th.data.def_coupon3 ? th.data.def_coupon3.length : 0 let length4 = th.data.def_coupon4 ? th.data.def_coupon4.length : 0 let length = length1 + length2 if (th.data.exp_type==0) { length+= length3 + length4 } console.error(length); if (length != 1) { return } if (length1 == 1) { console.error('优惠券1'); let first_entry = th.data.first_entry; let quan_list = th.data.def_coupon1 if (quan_list && quan_list.length == 1 && first_entry == 1) { // first_entry += 1; th.setData({ sele_cart_ind: 0, sele_exp_type: th.data.cartlist[0].exp_type, selected_quan_pick: th.data.cartlist[0].pickup_id, selected_quan_list: th.data.cartlist[0].quan_list, // first_entry }) let quan_off = th.sele_quan_item_befor(); if (quan_off) { th.confirm_quan_befor() } } return } if (length2 == 1) { console.error('优惠券2'); let first_entry = th.data.first_entry; let quanlist = th.data.def_coupon2 if (quanlist && quanlist.length == 1 && first_entry == 1) { // first_entry += 1; th.setData({ selected_quan_pick: th.data.bn_pick, // first_entry }) let quan_off = th.sele_quan_item_befor(); if (quan_off) { th.confirm_quan_befor() } } return } if (length3 == 1 && th.data.exp_type == 0) { console.error('优惠券3'); let first_entry = th.data.first_entry; let quanlist = th.data.def_coupon3 if (quanlist && quanlist.length == 1 && first_entry == 1) { // first_entry += 1; th.setData({ selected_quan_pick: th.data.bn_pick, // first_entry }) th.sele_quan_item_by_befor(); th.confirm_quan_befor() } return } }, //----把券插入之后的操作,同时还要重新计算价格---- insert_into_using_quan: async function (item, using_quan, pickid, isby, showToast = true) { var th = this; var old_quan = null; if (isby == 1) { using_quan[pickid] = { coupon_no: item.no, money: 0, is_nouse_red: 0, region_list: item.region_list, goods_list: item.goods_list }; using_quan[pickid].isby = 1; } else { if (using_quan[pickid]) old_quan = using_quan[pickid]; using_quan[pickid] = { coupon_no: item.CashRepNo, money: item.Sum, is_nouse_red: 0 }; using_quan[pickid].isby = 0; } this.setData({ using_quan: using_quan }); th.calculatePrice2(function () { // if (old_quan) using_quan[pickid] = old_quan; // else using_quan[pickid] = null; // th.setData({ using_quan: using_quan, submit: 0 }); // wx.showToast({ // title: "不能使用优惠券,同城起送价不足", // icon: 'none', // duration: 2000 // }) }); th.setData({ open_quan: 0 }); }, //优惠券锁定后解锁方法 async updateOrderCoupon(){ try{ let req_data={ store_id:oo.stoid, user_id:(getApp().globalData.userInfo.user_id || 0), order_id:this.data.order_id, } await getApp().request.promisePost("/api/weshop/order/updateOrderCoupon",{ is_json:1, data:req_data }).then(res=>{ console.log(111) }) }catch(error){ } }, //点击打开优惠券使用说明 clik_coupons: function (e) { var ind = e.currentTarget.dataset.idx; var is_open = this.data.selected_quan_list[ind].is_open; if (is_open == 1) is_open = 0; else is_open = 1; var txt = "selected_quan_list[" + ind + "].is_open" var obj = {}; obj[txt] = is_open; this.setData(obj); this.setData({ disabled: 1 }) }, clik_coupons3: function (e) { var ind = e.currentTarget.dataset.idx; var is_open = this.data.city_coupon_list[ind].is_open; if (is_open == 1) is_open = 0; else is_open = 1; var txt = "city_coupon_list[" + ind + "].is_open" var obj = {}; obj[txt] = is_open; this.setData(obj); this.setData({ disabled: 1 }) }, })