//预售全款 var t = getApp(), app = t, a = t.request, e = require("../../../../utils/common.js"), s = require("../../../../utils/util.js"), ut = s, to = getApp(); var oo = t.globalData.setting, os = oo; var regeneratorRuntime = require('../../../../utils/runtime.js'); var util_pay = require("../../../../utils/pay.js"); const t_pay = require("../../../../utils/pay2.js"); Page({ data: { url: t.globalData.setting.url, resourceUrl: t.globalData.setting.resourceUrl, imgUrl: t.globalData.setting.imghost, goods: null, order: null, orderPrices: null, coupons: null, coupon: null, invoiceToggle: !0, payWithUserMoney: !0, payWithPoints: !0, maxWord: 0, enterAddressPage: !1, firstEnter: !0, //页面获取的参数 param: null, //提交订单的格式 formData: { order_amount: 0,//支付金额 total_amount: 0,//总价 all_price: 0,//商品卖的总价 pay_points: 0,//使用积分 user_money: 0,//使用余额 couponCode: "",//使用优惠券(多单就用逗号隔开) shipping_price: 0,//物流费用 }, /*-----------当是购物车结算的时候-------------*/ cartlist: null, old_cartlist: null, cartlist_y: null, //购物车原始列表 js_use_money: 0, //是否使用余额 is_all_zt: 1, //是否全部都是自提 /*----------------立即购买---------------------*/ is_b_now: 1, //0是购物车结算 1立即购买 bn_goods: null, //立即购买时候的调用商品 bn_use_money: 0,//是否使用余额 bn_exp_type: 1, //0是物流 1自提 bn_pick: 0, //选择的门店 bn_pickname: "", //选择的门店名称 bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流 bn_plus_cut_price: 0, //显示等级卡会优惠多少钱 /*------------------------*/ user_addr: null,//物流 userinfo: null, //获取会员 /*----------物流选择--------*/ wu_arr: null, index: 0, w_sele_index: 0, //判断页面是返回回来的还是 首次进入的 isclose: 1, //申请提现的金额 txmon: 0, yuer: 0, //提交中,不重复提交 is_summit_ing: 0, //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入cartlist数组中-- ckeck_quan_price: 0, check_quan_price_list: '', check_quan_ware_list: '', // 设计一个数组来存放已经选择了的券编号,coupon_no是券号,money是面值,coupon_price是真正优惠的价格,数组的下标是pickid //using_quan[11]={coupon_no:"1212121",money:"20",coupon_price:"45"} using_quan: {}, open_quan: 0, //选择的券列表 selected_quan_list: null, //选择的券的门店 selected_quan_pick: null, is_close_quan: 0, disabled: 0, open_express: 0,//控制选择物流名列表 的属性 is_express: 0, //选中物流的属性 expres_name: "", //点击选定 isopen: 0, //券的说明 is_coupon: null, //选择券的控制属性 is_shipping_code: "",//插入用户默认地址 wu_arr_txt: "", //要更新的物流的字段 sales_rules: 1, //默认是显示线上库存 isget_by_quan: {}, //是否调用了接口获取包邮券 get_by_quan_list: null, //立即购买的 get_by_quan_list_cart: {}, //购物车的 by_quan_list_cart: null, //点击选择的包邮列表 //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 is_no_by: {}, is_by: {}, is_quan_by: {}, //--购买赠送的商品-- buy_now_gift_goods: null, //--订单优惠-- order_prom: {}, //-- 购物车优惠活动 -- prom_goods_map: {}, //-- order_prom_list -- order_prom_list_cart: null, ispt_goods: 0, //是否平摊至单品,0要平摊 1不平摊 rank_switch: 0, //是不是开同等级卡 show_card: null, //显示的等级卡 card_name: '', //显示的卡的名称 card_cut_price: null,//减价多少钱 show_submit: 0, //提交按钮变正常显示 is_get_offline: 1, tabs: ['门店自提', '快递邮寄'], currentTabIndex: 1, in_zhact_gdmap: {}, //不同门店参与同一活动的限购 hid_inp: 1, user_note: {}, dis_config:null, bn_use_commission:0, //是不是使用佣金 same_ok:1, appoint_pick_keyid: '', bconfig:null, showFold:true, is_fwk:0 //-- 判断是不是服务卡项订单 -- }, onReady() { setTimeout(() => { wx.createSelectorQuery().selectAll(".showArea, .hideArea").boundingClientRect(res => { if (res.length != 0) { this.setData({ showFold: res[0].height < res[1].height, }); }; }).exec(); }, 1000); }, clickCollapse() { this.setData({ flag: !this.data.flag, }) }, onLoad: function (t) { //定义第一次进入 this.data.fir_in=1; wx.setNavigationBarTitle({ title: "填写订单", }) var th = this; //清理一下,确保最新的系统配置 getApp().globalData.config2 = null; //清空is_pick_up getApp().request.put("/api/weshop/useraddress/updatePickUp", { data: { user_id: getApp().globalData.user_id, is_pickup: 0 }, success: function (s) { } }); getApp().getConfig2(function (e) { th.setData({ bconfig: e }); }, 1); //判断是不是佣金抵扣 getApp().is_distribut(this); var gg = to.get_b_now(); if(gg.fwk){ this.setData({is_fwk: 1}); } }, onUnload: function () { this.setData({ isclose: 1 }) }, onHide: function () { this.setData({ isget_by_quan: {}, is_no_by: {}, is_by: {} }) }, //----------子页返回父页触发---------- onShow: function () { var th = this; //判断是不是第一次进入 if(this.data.fir_in){ this.data.fir_in=0; }else{ //富友支付插件 var fy= ut.fy_back('',0,function (){ var cps = getCurrentPages(); if (cps.length > 1) { wx.navigateBack({ delta: 1 }) } else { getApp().goto("/pages/index/index/index"); } }) if(fy) return false; util_pay.set_fir(); t_pay.set_fir(); let err_url="/pages/user/order_list/order_list"; let ok_url="/packageG/pages/payment/pay_success/pay_success?type=2&order_sn=" + this.data.ok_order_sn; if(th.data.is_fwk){ err_url='/pages/user/order_list/order_list?index=2&tabindex=1'; ok_url="/packageG/pages/payment/pay_success/pay_success?card=1&order_id=" + this.data.order_id; } //-- 通联的第三方支付的返回优化 -- ut.is_pay_ok(th.data.ok_order_sn,ok_url,err_url,function (){ if(!th.data.ok_order_sn) return false; let ord_url=''; let ord_req={}; //如果是服务卡项的时候 if(th.data.is_fwk){ ord_url="/api/weshop/recharge/user/page"; ord_req={store_id:os.stoid,order_sn:th.data.ok_order_sn,user_id:getApp().globalData.user_id}; }else{ ord_url="/api/weshop/order/page" ord_req={store_id:os.stoid,parent_sn:th.data.ok_order_sn}; } getApp().request.promiseGet(ord_url, {data:ord_req}).then(res=>{ console.log(ord_url); console.log(ord_req); console.log(res); if(ut.ajax_ok(res)){ var item=res.data.data.pageData[0]; if(item.pay_status==1){ //支付支付,返回首页 ut.m_toast('支付成功'); setTimeout(()=>{ getApp().re_to(ok_url); },1000) }else{ //支付支付,返回首页 ut.m_toast('支付失败'); setTimeout(()=>{ getApp().re_to(err_url); },1000) } } }) }); } th.data.g_cart_q_time = null; if (th.data.isclose == 0) { wx.navigateTo({ url: "/pages/index/index/index" }) } else { this.getuser_addr(function (ie) { //地址切换要把包邮券清空 if (!th.data.user_addr || !ie || th.data.user_addr.address_id != ie.address_id) { var using_quan = th.data.using_quan; for (var i in using_quan) { var item = using_quan[i]; if (item.isby == 1) { var ob = {}, txt = "using_quan[" + i + "]"; ob[txt] = {}; th.setData(ob); } } th.data.isget_by_quan = {}; } th.data.prom_goods_map = {}; th.data.is_summit_ing = 0; //更换地址回来要重新调用计算价钱的接口 if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) { th.setData({ user_addr: ie,show_submit:0 }); if (th.data.is_b_now == 1) { if (th.data.bn_goods) { th.setData({ add_back: 1,same_ok:1 }); //th.calculatePrice2(); } } else { if (th.data.cartlist) { th.setData({ add_back: 1 }); //th.calculatePrice(); } } } else { th.setData({ user_addr: ie,show_submit:0 }); } var going = 0; }); var is_card_back = getApp().globalData.is_card_back; //--更新默认地址--,看一下是不是跳到地址页面,同时也不是购买等级卡返回的,这里很重要,否则会重新更新收货物流公司 if (!getApp().globalData.is_cart_old && !is_card_back && !getApp().globalData.plus_buy_back) { this.update_code(); } else { getApp().globalData.is_cart_old = 0; getApp().globalData.plus_buy_back = 0; } } //先获取是否有关闭使用优惠券 getApp().getConfig2(function (ee) { var json_d = JSON.parse(ee.switch_list); //测试强行写死,后面一定要删除 //json_d.pickupway=2; th.data.json_d = json_d; th.data.ispt_goods = json_d.ispt_goods; //是不是平摊到单品的控制参数赋值 var is_default_logistics = json_d.is_default_logistics; var is_same_city = json_d.is_same_city; th.setData({ is_close_quan: json_d.is_close_quan, sales_rules: ee.sales_rules, rank_switch: json_d.rank_switch, is_default_logistics: is_default_logistics, is_same_city: is_same_city, appoint_pick_keyid: json_d.appoint_pick_keyid }); var rank_switch = json_d.rank_switch; var max_price = -1; var show_card = null; var name = ""; //如果有开等级卡的时候, //因为都是调接口,要返回在计算 if (rank_switch == 2) { //-- 获取所有的等级卡, -- getApp().request.promiseGet("/api/weshop/plus/vip/mem/bership/list?storeId=" + os.stoid, {}).then(res => { if (res.data.code == 0) { var plusCard = res.data.data; //-- 循环判断,拿到最贵的那张卡 -- for (var ih in plusCard) { if (plusCard[ih].IsStopBuy == true) { continue; } if (max_price < 0) { max_price = plusCard[ih].CardFee; name = 'card' + plusCard[ih]['CorrPrice']; show_card = plusCard[ih]; } else { if (max_price < plusCard[ih].CardFee) { max_price = plusCard[ih].CardFee; name = 'card' + plusCard[ih]['CorrPrice']; show_card = plusCard[ih]; } } } if (show_card) { name = name.toLowerCase(); th.setData({ card_name: name, show_card: show_card }) } } //-----先获取物流,再获取用户信息,再展示页面----- th.get_wuliu(th.get_info(th.show_page)); }) } else { //-----先获取物流,再获取用户信息,再展示页面----- th.get_wuliu(th.get_info(th.show_page)); } }, 1); //值在这里换 getApp().globalData.plus_buy_back = 0; }, //-------------------获取物流--------------- get_wuliu(func) { var th = this; to.getwuliu(function (e) { //系统是是否开启了默认的物流 if (th.data.is_default_logistics) { //如果第一个不是开启默认,说明要让用户自己选 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.auth.get_u(func); }, //------获取会员收货地址----- getuser_addr: function (func) { var th = this; a.get("/api/weshop/useraddress/page", { data: { user_id: to.globalData.user_id, store_id: oo.stoid, pageSize: 600, t: Math.random() }, success: function (su) { /*--- var user_addr=[ { 'address_id': 882, 'user_id': 2661, 'consignee': '测试测试测', 'province': 3102, 'city': 3431, 'district': 3466, 'address': 'ed', 'more_address': '山西-长治市-襄垣县-虎(音si)亭镇', 'mobile': 13012345678,'is_default':1}, ];---*/ var item = null; if (su.data.code == 0 && su.data.data && su.data.data.pageData) { var user_addr = su.data.data.pageData; 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; if (!item) th.setData({ user_addr: null }); //地址为空的时候,要清空,因为返回的时候,有缓存 func(item); } }); }, //----------------展示页面,是再获取用户信息之后-------------- show_page: function () { var th = this; //th.setData({ userinfo: getApp().globalData.userInfo,}); //这个余额被缓存了 //会员的信息,要获取最新 var user = getApp().globalData.userInfo; getApp().request.get("/api/weshop/users/get/" + oo.stoid + "/" + user.user_id, { data: { r: Math.random() }, success: function (e) { getApp().globalData.userInfo = e.data.data; th.setData({ userinfo: e.data.data }); //选获取地址 th.getuser_addr(function (addr) { th.setData({ user_addr: addr }); //--------------------------立即购买------------------ //读取门店 to.get_allsto(function (e) { th.setData({ allsto: e }); //获取立即购买的商品信息 th.get_buy_goods(); }); }); //获取提现金额 getApp().request.get("/api/weshop/withdrawals/summoney", { data: { user_id: to.globalData.user_id, store_id: oo.stoid, status: 0 }, success: function (su) { if (su.data.code == 0) { var yuer = parseFloat(th.data.userinfo.user_money - (th.data.userinfo.frozen_money > 0 ? th.data.userinfo.frozen_money : 0) - su.data.data.summoney).toFixed(2); th.setData({ txmon: su.data.data.summoney, yuer: yuer }); } } }); }, }); }, //-----获取立即购买的商品信息,入口---- get_buy_goods:async function (e) { var th = this; th.data.gg = to.get_b_now(); //定义变量 var gg = th.data.gg, act = null, prelist = null; var url = "/api/weshop/marketing/marketingPresellForm/get/" + os.stoid + "/" + gg.prom_id; await getApp().request.promiseGet(url, {}).then(res => { if (res.data.code == 0) { act = res.data.data; } }) if (!act) { wx.showToast({ title: "未找到活动", icon: 'none', duration: 3000 }); return false; } if (act.is_end == 1) { wx.showToast({ title: '活动已经结束', icon: 'none', duration: 3000 }); return false; } if (ut.gettimestamp() > act.end_time) { wx.showToast({ title: "活动定金支付时间已过期", icon: 'none', duration: 3000 }); return false; } var url = "/api/weshop/marketing/marketingPresellList/get/" + os.stoid + "/" + gg.presell_list_id; await getApp().request.promiseGet(url, {}).then(res => { if (res.data.code == 0) { prelist = res.data.data; } }) if (!prelist) { wx.showToast({ title: "未找到商品", icon: 'none', duration: 3000 }); return false; } //如果是服务卡是时候 if(gg.fwk){ th.get_card_detail(act, prelist,gg); } //如果是商品的时候 else{ th.get_goods_detail(act, prelist,gg); } }, //-- 获取到服务卡项的详情 -- get_card_detail(act, prelist,gg){ var th = this; //--------如果goods_id一样,就是要立即购买----- var cd_url="/api/weshop/serviceCard/get/" + oo.stoid + "/" + th.data.gg.goods_id getApp().request.get(cd_url, { success: async function (t) { var gd = t.data.data; if (!gd) return false; //-- 如果商品有同城配送的参数的时候,一件代发商品不能显示同城配送按钮 -- if(gd.is_same_city && th.data.is_same_city && gd.whsle_id<=0){ await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+th.data.gg.pick_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}) } } }) } t.data.data.original_img = oo.imghost + t.data.data.imgUrl; t.data.data['buynum'] = th.data.gg.goods_num; t.data.data.prom_id=th.data.gg.prom_id; t.data.data.prom_type=8; t.data.data.goods_name=t.data.data.serviceName; //这个位置要拿活动的预售价 t.data.data.shop_price = prelist.presell_money; th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_pick: gg.pick_id, act: act, }); //计算价格 th.calculatePrice2(); }, }); }, //-- 获取到服务卡项的详情 -- get_goods_detail(act, prelist,gg){ var th = this; //--------如果goods_id一样,就是要立即购买----- getApp().request.get("/api/weshop/goods/get/" + oo.stoid + "/" + th.data.gg.goods_id, { success: async function (t) { var gd = t.data.data; if (!gd) return false; //-- 如果商品有同城配送的参数的时候,一件代发商品不能显示同城配送按钮 -- if(gd.is_same_city && th.data.is_same_city && gd.whsle_id<=0){ await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+th.data.gg.pick_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}) } } }) } t.data.data.original_img = oo.imghost + t.data.data.original_img; t.data.data['buynum'] = th.data.gg.goods_num; t.data.data.prom_id=th.data.gg.prom_id; t.data.data.prom_type=8; var distr_t = 0, et = 0; if(t.data.data.is_minishop==1 && getApp().is_sp_hao()){ if(t.data.data.distr_type==1 || gg.pick_dis==1) { wx.showToast({ title: "视频号仅支持物流", icon: 'none', duration: 2000 }) setTimeout(function(){ wx.navigateBack({delta: 1}) },1000) return false } t.data.data.distr_type=2; th.setData({show_same_city:0}) } if (t.data.data.distr_type == 0) { distr_t = th.data.gg.pick_dis; } else { distr_t = t.data.data.distr_type; } switch (distr_t) { case 0: et = 1; //-- 系统后台有设置要默认的 -- if (th.data.json_d.pickupway && th.data.json_d.pickupway == 1) et = 0; break; case 1: et = 1; break; case 2: et = 0; break; } if(th.data.show_same_city==1 && th.data.json_d.pickupway && th.data.json_d.pickupway == 2 ){ et = 2; } var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; if (et == 0 && def_exp_code && !th.data.is_default_logistics) { 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; } } } if (th.data.bn_goods) { et = th.data.bn_exp_type; m_wind = th.data.index; } //---是不是购买等级卡成功的返回---等级卡显示的判断--- var is_card_back = getApp().globalData.is_card_back; if (is_card_back) { th.data.card_name = th.data.userinfo.card_field; th.data.gg.goods_price = gd[th.data.card_name]; getApp().globalData.is_card_back = 0; th.setData({ card_cut_price: 0 }); //如果是秒杀的返回 if (gd.prom_type == 1) gd.prom_type = 0; } else { //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 -- if (!th.data.gg.collocation_goods && gd['prom_type'] != 6 && th.data.card_name && gd[th.data.card_name] > 0 && th.data.gg.goods_price > gd[th.data.card_name] && !th.data.userinfo.card_field) { var cut_p = (th.data.gg.goods_price - gd[th.data.card_name]) * th.data.gg.goods_num; th.setData({ card_cut_price: cut_p }); } } //如果有开启佣金抵扣,同时会员是分销商的时候 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=(t.data.data.fir_rate || 0)*gg.goods_num; sec_num=(t.data.data.sec_rate || 0)*gg.goods_num; thi_num=(t.data.data.thi_rate || 0)*gg.goods_num; }else{ fir_num=parseFloat((t.data.data.commission || 0) *gg.goods_num*(th.data.dis_config.firstRate || 0)/100).toFixed(2); sec_num=parseFloat((t.data.data.commission || 0)*gg.goods_num*(th.data.dis_config.secondRate || 0)/100).toFixed(2); thi_num=parseFloat((t.data.data.commission || 0)*gg.goods_num*(th.data.dis_config.thirdRate || 0)/100).toFixed(2); } var c_num=getApp().get_commission(fir_num,sec_num,thi_num,th); gd.use_commission=c_num; t.data.data.use_commission=c_num; } //这个位置要拿活动的预售价 t.data.data.shop_price = prelist.presell_money; th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_exp_type: et, index: m_wind, bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et, act: act }); if (act.is_usecoupon == 1) { th.data.ckeck_quan_price = t.data.data.shop_price * gg.goods_num; th.data.check_quan_price_list = t.data.data.shop_price * gg.goods_num + ""; th.data.check_quan_ware_list = t.data.data.erpwareid + ""; } //计算价格 th.calculatePrice2(); //获取优惠券,如果有券的钱,就调用 if (th.data.ckeck_quan_price > 0) th.get_buy_now_quan(); }, }); }, //---------------检查是否有收货地址------------------- 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); }, showInvoice: function () { this.setData({ invoiceToggle: !this.data.invoiceToggle }); }, keyUpChangePay1: function (t) { this.setData({ payWithUserMoney: !(t.detail.value.length > 0) }); }, keyUpChangePay2: function (t) { this.setData({ payWithPoints: !(t.detail.value.length > 0) }); }, keyUpChangeNum: function (t) { var index = t.currentTarget.dataset.index; var txt = "user_note." + index; this.setData({ maxWord: t.detail.value.length, [txt]: t.detail.value }); }, set_can_num: function () { var th = this; //-- 这个地方,循环计算几张优惠券可用-- for (var iter in th.data.cartlist) { var num = 0; var c_item = th.data.cartlist[iter]; var pkid = c_item.pickup_id; //-- 普通券 -- if (c_item.quan_list) { for (var iter1 in c_item.quan_list) { //判断是不是其他订单有选用 var is_other_is_use = th.check_other_use(c_item.quan_list[iter1], pkid); if (!is_other_is_use) num++; } } //-- 包邮券 -- var by_quan = th.data.get_by_quan_list_cart[pkid]; if (by_quan) { for (var iter2 in by_quan) { //判断是不是其他订单有选用 var is_other_is_use = th.check_other_use_by(by_quan[iter2], pkid); if (!is_other_is_use) num++; } } var set_txt = "cartlist[" + iter + "].can_num"; th.setData({ [set_txt]: num }); } }, //---------计算立即购买---------- calculatePrice2: async function () { var th = this, good = this.data.bn_goods; if (!good) return false; //搭配的计算要用购物的车计算方法 // if (good.prom_type == 5) { // th.calculatePrice(); // return false; // } th.setData({dis_btn:1}) wx.showLoading({ title: "处理中.",mask:true }) //-----------计算商品总价-------------- var allpice = good.shop_price * good.buynum; var cut_price = 0; var allpice1 = allpice; if (good.prom_type == 3 && good.prom_price !== null) { cut_price = allpice - good.prom_price; } allpice = parseFloat(allpice).toFixed(2); var txt = "formData.all_price"; th.setData({ [txt]: allpice, }); if (cut_price) { var c_txt = "formData.cut_price"; th.setData({ [c_txt]: cut_price, }); } //如果有线下取价的时候 if (good.is_offline) { allpice = good.offline_price * good.buynum; } var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; var out_of_weight = null; //超出多少重量 //---如果有选择优惠券的情况下--- 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; } }) } } //-----------------支付价,优惠券不减物流----------------- var total_m = (parseFloat(allpice1)).toFixed(2); var order_m = (parseFloat(allpice - cut_price) - quan_price).toFixed(2); var coupon_price = quan_price; //优惠券优惠了多少钱 if (order_m < 0) { order_m = 0; coupon_price = parseFloat(order_m).toFixed(2); } //--看一下有没有订单优惠-- var o_condition = parseFloat(order_m); //-- 判断订单优惠的叠加 -- var ord_prom=null; var o_condition=allpice; if (o_condition > 0 && th.data.act.is_useorderyh) { 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 (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_past != 1 && th.data.act.goods_type==0) { //看是不是有调用过包邮券 if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1) { var condition = allpice - cut_price - quan_price; //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- getApp().request.promiseGet("/api/weshop/userfeemail/pageAndArea", { data: { store_id: os.stoid, isuse: 0, condition: 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 && th.check_by_goods(item.goods_list)) continue; //如果是不包邮商品 arr.push(item); } if (arr) { th.setData({ get_by_quan_list: arr }); } th.data.isget_by_quan[th.data.bn_pick] = 1; } }) } var shipping_price =0; if(good.is_free_shipping == 0 ) { //-- 在没有使用包邮券的时候 -- if (!quan_no || !th.data.using_quan[bn_pick].isby) { var gd_arr_list = []; gd_arr_list.push(good); if (th.data.buy_now_gift_goods) { gd_arr_list = [...gd_arr_list, ...th.data.buy_now_gift_goods]; } var user_addr = th.data.user_addr; var req_d = { province: user_addr.province, city: user_addr.city, district: user_addr.district, wuliu: parseFloat(parseFloat(allpice) - cut_price - quan_price).toFixed(2), store_id: os.stoid } var back_data = null; if (!ord_prom || ord_prom.is_post_temp) { if (th.data.act.is_post_temp) { 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 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 (item['exp_sum_type'] == 2 && back_data.weight_free > 0) { if (goods_weight < 0) goods_weight = 0; cut_good_weight += item['weight'] * item['buynum']; goods_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; var code = ""; if (th.data.wu_arr && th.data.wu_arr[th.data.index]) 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; } }) if (!is_ok) { 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; } if (shipping_price <= 0) { th.data.is_by[th.data.bn_pick] = 1; //已经是包邮了,就不要选择包邮券 } } } shipping_price = parseFloat(shipping_price).toFixed(2); var wl_txt = "formData.shipping_price"; th.setData({[wl_txt]: shipping_price,}) } else if(th.data.bn_exp_type==1) { var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 0, }) } if (quan_no) { if (th.data.using_quan[bn_pick].isby == 1) { shipping_price = 0; var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 0, }) } } var order_prom_amount = 0; var order_prom_id = 0; var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if(ord_prom){ if (!ord_prom.is_xz_yh || quan_price <= 0) { order_prom_id = ord_prom['id']; switch (ord_prom['type']) { case 0: order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 order_prom_amount = (o_condition - order_m).toFixed(2); break; case 1: var bs=1; if(ord_prom.is_bz){ bs=Math.floor(o_condition/ord_prom.money); } order_m = o_condition - bs*ord_prom['expression'];//满额优惠金额 order_prom_amount = bs*ord_prom['expression']; break; } } //--订单优惠的显示-- 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 order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; th.setData({ [order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount }) //判断是否同城配送,而且没有调用过 if(th.data.bn_exp_type==2 && th.data.user_addr) { 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 req_data = { store_id: os.stoid, order_amount:parseFloat(order_m), lon: lon, lat: lat, pickup_id: bn_pick, 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) { var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 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 } 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; } total_m = parseFloat(total_m) + parseFloat(th.data.formData.shipping_price); order_m = parseFloat(order_m) + parseFloat(th.data.formData.shipping_price); var atxt = "formData.total_amount"; total_m = total_m.toFixed(2); order_m = order_m.toFixed(2); th.setData({ [atxt]: total_m, }) var txt = "formData.user_money"; var txt2 = "formData.order_amount"; var txt3 = "formData.coupon_price"; if(parseFloat(order_m) order_m) { order_m = parseFloat(order_m).toFixed(2); th.setData({ [txt]: order_m, [txt2]: 0, [txt3]: coupon_price, show_submit: 1,dis_btn:0 }) } else { order_m = parseFloat(order_m) - parseFloat(amoney); order_m = order_m.toFixed(2); th.setData({ [txt]: amoney, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1,dis_btn:0 }) } } else { th.setData({ [txt]: 0, [txt2]: order_m, [txt3]: coupon_price, show_submit: 1,dis_btn:0 }) } //优惠活动送积分 if (good.s_intValue) { txt = "formData.give_integral"; th.setData({ [txt]: good.s_intValue }); } //优惠送券 if (good.s_coupon_id) { var i_txt = "formData.give_coupon_id"; //这个是json格式的 var i_txt1 = "formData.g_coupon_num"; var ob = [{ "num": good.s_coupon_num, "c_id": good.s_coupon_id }]; ob = JSON.stringify(ob); th.setData({ [i_txt]: good.s_coupon_id, [i_txt1]: ob }); } //优惠礼包 if (good.s_libao) { var l_txt = "formData.give_lb_id"; //这个是json格式的 var l_txt1 = "formData.g_lb_num"; var ob = [{ "num": good.s_lb_num, "l_id": good.s_libao }]; ob = JSON.stringify(ob); th.setData({ [l_txt]: good.s_coupon_id, [l_txt1]: ob }); } wx.hideLoading(); }, //-- 服务卡项的支付的下一步 -- submitForm_card_next: async function() { if (this.data.is_summit_ing == 1) return false; //--提交中退出-- this.data.is_summit_ing = 1; var th = this,pdata = new Array(); var item = { 'user_id': to.globalData.user_id, 'account': th.data.formData.order_amount, //使用余额 'store_id': oo.stoid, //商家 'list': new Array(), }; //判断是不是购物车购买还是立即购买 var gg = th.data.gg; if (!gg.pick_id) { getApp().showWarning("未找到门店"); return false; } var goods = { 'card_id': th.data.bn_goods.id, 'itemid': th.data.bn_goods.erpItemID, 'qty': gg.goods_num, 'price': th.data.bn_goods.shop_price, // 'price': th.data.formData.order_amount, 'pickup_id': gg.pick_id, 'pickup_keyid': gg.keyid, 'prom_type': 8, //促销活动类型 'prom_id': this.data.act.id, //促销活动id }; if(getApp().globalData.skinface_id){ goods.skinface_id=getApp().globalData.skinface_id; } if(this.data.postdata && this.data.postdata.is_pd_normal==1){ goods.is_pd_normal=1; } //--导购分享过来的id-- if (gg.guide_id) { goods.guide_id = gg.guide_id; goods.guide_type = gg.guide_type; //调用接口判断是不是会员 await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then( res => { if (res.data.code == 0) { goods.guide_name = res.data.data.salesman; goods.guide_sn = res.data.data.salesman_no; } }) } if(gg.groupchat_id){ goods.groupchat_id=gg.groupchat_id } item.list.push(goods); pdata = item; var str = JSON.stringify(pdata); console.log("支付数据"); console.log(str); //return false; wx.showLoading({ title: "加载中" }); wx.request({ url: oo.url + '/api/weshop/recharge/saveRecharge', data: str, method: 'POST', header: { 'content-type': 'application/json' }, // 设置请求的 header success: function(res) { wx.hideLoading(); if (res.statusCode == 200) { var data = res.data; if (data.code == 0) { th.data.order_id = data.data.order_id; th.data.ok_order_sn = data.data.order_sn; // console.log('myyyyyyyyyyyyyyyyyy', data.data); if (th.data.is_cart) { var list = th.data.cartlist_y; for (var i = 0; i < list.length; i++) { //删除购物车 a.delete("/api/weshop/cartService/del/" + oo.stoid + "/" + list[i].id, {}); } } var order_amount = pdata.account; //要进行判断,如果是用微信支付,就要跳转到支付界面 if (order_amount > 0) { th.setData({ isclose: 0 }); t_pay.set_pay_url("/api/weshop/order/pay/createRechargeOrder") t_pay.pay( { parentSn: data.data.order_sn, store_id: oo.stoid },function (){ wx.showToast({ title: '购买成功', icon: 'success', duration: 2000 }); setTimeout(function () { wx.reLaunch({ url: "/packageG/pages/payment/pay_success/pay_success?card=1&order_id=" + th.data.order_id, }) }, 1000) },function (e){ console.log('kkkkkkk'); wx.showToast({ title: e, icon: 'none', duration: 2000 }); setTimeout(function () { wx.reLaunch({ url: "/pages/user/order_list/order_list?index=2&tabindex=1", }) }, 1000) } ) } } else { th.data.is_summit_ing = 0; //是否提交中 getApp().confirmBox(data.msg); } } else { th.data.is_summit_ing = 0; //是否提交中 console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); } }, fail: function() { th.data.is_summit_ing = 0; //是否提交中 wx.hideLoading(); console.log("index.js wx.request CheckCallUser fail"); }, complete: function() {} }) }, //--------------------提交订单----------------------- async submitForm(t) { if(this.data.is_fwk==1){ this.submitForm_card_next(); return false; } var sub_value = t; if (this.data.is_summit_ing == 1) return false; //--提交中退出-- this.data.is_summit_ing = 1; var th = this, pdata = new Array(); var ff = true; th.data.is_b_now = 1; //------------立即购买------------- if (th.data.is_b_now == 1 && th.data.bn_goods.prom_type != 5) { //if( [0,2].indexOf(th.data.bn_exp_type)>-1 && th.data.user_addr == null) { if(getApp().is_no_addr(th,th.data.bn_exp_type)){ ff = false; getApp().my_warnning("请选择收货地址", 0, th); th.data.is_summit_ing = 0; } if (!ff) return false; var addr = th.data.user_addr; if (th.data.bn_exp_type == 1) addr = null; if (th.data.bn_exp_type == 0) if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { getApp().my_warnning("读取物流失败", 0, th); th.data.is_summit_ing = 0; return false; } var item = { 'user_id': to.globalData.user_id, 'consignee': addr == null ? "" : addr.consignee, 'province': addr == null ? 0 : addr.province, 'city': addr == null ? 0 : addr.city, 'district': addr == null ? 0 : addr.district, 'twon': addr == null ? 0 : addr.twon, 'address': addr == null ? "" : addr.address, 'more_address': addr == null ? "" : addr.more_address, //'mobile': th.data.userinfo.mobile, 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, 'email': '', 'shipping_code': th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code, 'shipping_name': th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name, 'invoice_title': '', 'goods_price': th.data.formData.all_price, //商品总价 'shipping_price': th.data.formData.shipping_price, //物流金额 'user_money': th.data.formData.user_money, //使用余额 'total_amount': th.data.formData.total_amount, //订单总价 'order_amount': th.data.formData.order_amount, //应付 'user_note': t.detail.value.user_note, //用户备注 'store_id': oo.stoid, //商家 'pickup_id': th.data.bn_pick, //门店 'exp_type': th.data.bn_exp_type, //配送方式 'order_goods': new Array(), }; //是不是重新提交 if (th.data.is_continue == 1) item.is_continue = 1; //-- 如果有使用佣金抵扣的话 -- if(th.data.bn_use_commission){ item.use_commission=th.data.bn_goods.use_commission; } if(item.exp_type==2){ item.lon=th.data.lon?th.data.lon:0; item.lat=th.data.lat?th.data.lat:0; item.goods_weight=th.data.bn_gd_w; item.samecity_order_amount=th.data.bn_samecity_order_amount; } //获取立即购买的商品的信息 var gg = to.get_b_now(); //--商品的房间号-- if (gg.room_id && gg.room_id > 0) { item.room_ids = gg.room_id; } var order_prom_list = {}; //--判断有没有优惠活动-- //if (th.data.order_prom[item.pickup_id]) { if (th.data.formData.order_prom_amount > 0) { order_prom_list.order_prom_id = th.data.formData.order_prom_id; order_prom_list.order_prom_amount = th.data.formData.order_prom_amount; } //} //--判断优惠活动的提交-- if (th.data.formData.cut_price > 0) { order_prom_list.discount_amount = th.data.formData.cut_price.toFixed(2); var ob = [{ "prom_id": th.data.bn_goods.prom_id, "dis": parseFloat(th.data.formData.cut_price).toFixed(2), "ispt": 0 }] order_prom_list.prom_pt_json = JSON.stringify(ob); } if (th.data.formData.give_integral > 0) { order_prom_list.give_integral = th.data.formData.give_integral; } if (th.data.formData.give_coupon_id > 0) { order_prom_list.give_coupon_id = th.data.formData.give_coupon_id; order_prom_list.g_coupon_num = th.data.formData.g_coupon_num; } if (th.data.formData.give_lb_id > 0) { order_prom_list.give_lb_id = th.data.formData.give_lb_id; order_prom_list.g_lb_num = th.data.formData.g_lb_num; } item.order_prom_list = order_prom_list; //组装优惠券的钱 if (parseFloat(th.data.formData.coupon_price) > 0) { item.coupon_price = th.data.formData.coupon_price; item.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) { item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; item.coupon_price = 0; } //老会员成为分销下线需要的参数 if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { //判断一下分享人是不是分享商 await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { if (res.data.code == 0) { var user = res.data.data; if (user.is_distribut == 1) { item.first_leader = parseInt(getApp().globalData.first_leader); } } }) } var goods = { 'goods_id': gg.goods_id, 'goods_name': gg.goods_name, 'goods_sn': gg.goods_sn, 'goods_num': gg.goods_num, 'market_price': th.data.bn_goods.market_price, 'goods_price': th.data.bn_goods.shop_price, 'member_goods_price': th.data.bn_goods.shop_price, 'store_id': oo.stoid, 'prom_type': th.data.bn_goods.prom_type, //促销活动类型 'prom_id': th.data.bn_goods.prom_id, //促销活动id }; if(getApp().globalData.skinface_id){ goods.skinface_id=getApp().globalData.skinface_id; } if(th.data.bn_goods.whsle_id){ item.is_whsle=1; goods.is_whsle_goods=1; } //-- 把导购的信息填入-- if (gg.guide_id) { goods.guide_id = gg.guide_id; goods.guide_type = gg.guide_type; //调用接口判断是不是会员 await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + gg.guide_id, {}).then(res => { if (res.data.code == 0) { goods.guide_name = res.data.data.salesman; goods.guide_sn = res.data.data.salesman_no; } }) } //--商品的房间号-- if (gg.room_id && gg.room_id > 0) { goods.room_id = gg.room_id; } //积分购,先要带is_integral_normal=1 if (gg.is_integral_normal) goods.is_integral_normal = 1; //先要带is_pd_normal=1 if (gg.is_pd_normal) goods.is_pd_normal = 1; //如果不立即购买或者秒杀,如果是线下库存购买的时候 if ([1,2,4,6,8,9].indexOf(goods.prom_type)== -1 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) { var isok = 1; await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) { isok = res; }); if (!isok) { getApp().confirmBox("商品的门店库存不足"); th.data.is_summit_ing = 0; return false; } } //-- 如果有线下取价的话 -- if (th.data.bn_goods.is_offline) { item.sum_offline_cut = (th.data.bn_goods.shop_price - th.data.bn_goods.offline_price).toFixed(2); goods.offline_cut = item.sum_offline_cut; goods.pricing_type = th.data.bn_goods.pricing_type; goods.goods_price = th.data.bn_goods.offline_price; goods.member_goods_price = th.data.bn_goods.offline_price; } //--- 如果有优惠促销的金额,要把金额先平摊下去 --- if (th.data.formData.cut_price > 0 && !th.data.ispt_goods) { var g_arr = new Array(); g_arr.push(goods); var pt_data = { 'prom_id': goods.prom_id, 'dis': parseFloat(th.data.formData.cut_price), 'goods': g_arr, } var pt_res = null; await getApp().request.promisePost("/api/weshop/order/getGoodsSplit", { is_json: 1, data: pt_data }).then(res => { if (res.data.code == 0) { pt_res = res.data.data; } }) if (pt_res) { //平摊赋值 goods.account = pt_res[0].fisrt_account; goods.account_yu = pt_res[0].fisrt_account_yu; item.is_discount_amount = 1; } } //--组装优惠券的钱-- if (th.data.formData.coupon_price) { item.coupon_price = th.data.formData.coupon_price; item.coupon_no = th.data.using_quan[th.data.bn_pick].coupon_no; goods.quan_num = th.data.formData.coupon_price; goods.quan_no = item.coupon_no; } item.order_goods.push(goods); //--如果有赠品的时候,赠品也要提交--- if (th.data.buy_now_gift_goods) { var gift_gg = th.data.buy_now_gift_goods; var g_goods = { 'goods_id': gift_gg.goods_id, 'goods_name': gift_gg.goods_name, 'goods_sn': gift_gg.goods_sn, 'goods_num': gift_gg.buynum, 'market_price': gift_gg.market_price, 'goods_price': 0, 'member_goods_price': 0, 'store_id': oo.stoid, 'is_gift': 1, 'gift_id': gift_gg.gift_id, 'prom_id': gift_gg.prom_id, }; item.order_goods.push(g_goods); } pdata.push(item); console.log(pdata); } else { //---------购物车的结算--------- if (th.data.is_all_zt == 0 && th.data.user_addr == null) { th.data.is_summit_ing = 0; ff = false; getApp().confirmBox("请新建收货地址"); } if (!ff) return false; var addr = th.data.user_addr; if (th.data.is_all_zt == 1) addr = null; var val_arr = t.detail.value; var order_prom_list_cart = th.data.order_prom_list_cart; //--组装推送数据-- for (var i = 0; i < order_prom_list_cart.length; i++) { var t_item = order_prom_list_cart[i]; if (t_item.exp_type==0){ if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { th.data.is_summit_ing = 0; getApp().confirmBox("读取物流失败"); return false; } } var item = { 'user_id': to.globalData.user_id, 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee, 'province': addr == null ? 0 : addr.province, 'city': addr == null ? 0 : addr.city, 'district': addr == null ? 0 : addr.district, 'twon': addr == null ? 0 : addr.twon, 'address': addr == null ? "" : addr.address, 'more_address': addr == null ? "" : addr.more_address, 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, 'email': '', 'shipping_code': th.data.is_all_zt == 1 ? 0 : th.data.wu_arr[t_item.wind].code, 'shipping_name': th.data.is_all_zt == 1 ? '' : th.data.wu_arr[t_item.wind].name, 'invoice_title': '', 'goods_price': t_item.goods_price, //商品总价 'shipping_price': t_item.shipping_price, //物流金额 'user_money': t_item.user_money, //使用余额 'total_amount': t_item.total_amount, //订单总价 'order_amount': t_item.order_amount, //应付 'user_note': val_arr['user_note_' + t_item.pickup_id], //用户备注 'store_id': oo.stoid, //商家 'pickup_id': t_item.pickup_id, //门店 'exp_type': t_item.exp_type, //配送方式 'order_goods': new Array(), }; //是不是重新提交 if (th.data.is_continue == 1) item.is_continue = 1; //----- 如果有线下取价的话 ---- if (t_item.is_offline == 1) { item.sum_offline_cut = t_item.offline_price.toFixed(2); } //组装优惠券的钱 if (t_item.coupon_price) { item.coupon_price = t_item.coupon_price; item.coupon_no = th.data.using_quan[t_item.pickup_id].coupon_no; } else if (t_item.quan_no) { item.coupon_no = t_item.quan_no; item.coupon_price = 0; } var order_prom_list = {}; //--判断有没有优惠活动-- if (t_item.order_prom_amount > 0) { order_prom_list.order_prom_id = t_item.order_prom_id; order_prom_list.order_prom_amount = t_item.order_prom_amount; } order_prom_list.discount_amount = 0; //--判断优惠活动的提交-- if (t_item.cut_price > 0) { order_prom_list.discount_amount += t_item.cut_price; order_prom_list.prom_pt_json = JSON.stringify(t_item.prom_pt_json); } //--判断组合优惠活动的提交-- if (t_item.zh_cut_price > 0 || t_item.zh_cut_price < 0) { order_prom_list.discount_amount += t_item.zh_cut_price; order_prom_list.zh_pt_json = JSON.stringify(t_item.zh_pt_json); } if (t_item.s_intValue > 0) { order_prom_list.give_integral = t_item.s_intValue; } if (t_item.s_coupon_id) { order_prom_list.give_coupon_id = t_item.s_coupon_id; order_prom_list.g_coupon_num = JSON.stringify(t_item.g_coupon_num); } if (t_item.s_libao) { order_prom_list.give_lb_id = t_item.s_libao; order_prom_list.g_lb_num = JSON.stringify(t_item.g_lb_num); } if (Object.keys(order_prom_list).length > 0) { if (order_prom_list.discount_amount) order_prom_list.discount_amount = parseFloat(order_prom_list.discount_amount).toFixed(2); if (order_prom_list.order_prom_amount) order_prom_list.order_prom_amount = parseFloat(order_prom_list.order_prom_amount).toFixed(2); item.order_prom_list = order_prom_list; } //老会员成为分销下线需要的参数 if (getApp().globalData.first_leader && !getApp().globalData.userInfo.first_leader) { //判断一下分享人是不是分享商 await app.request.promiseGet("/api/weshop/users/get/" + os.stoid + "/" + getApp().globalData.first_leader, {}).then(res => { if (res.data.code == 0) { var user = res.data.data; if (user.is_distribut == 1) { item.first_leader = parseInt(getApp().globalData.first_leader); } } }) } //房间号的ids var room_ids = ""; //-------------让商品添加到商品列表-------------------- for (var k = 0; k < t_item.goods.length; k++) { var g_item = t_item.goods[k]; if (g_item.goods_num <= 0) continue; var goods = { 'goods_id': g_item.goods_id, 'goods_name': g_item.goods_name, 'goods_sn': g_item.goods_sn, 'goods_num': g_item.goods_num, 'market_price': g_item.market_price, 'goods_price': g_item.goods_price, 'member_goods_price': g_item.goods_price, 'store_id': oo.stoid, }; //-- 线下取价也要写入,组合购的商品不能去线下价格 -- if (g_item.offline_price && t_item.is_offline == 1 && g_item.prom_type != 7) { goods.goods_price = g_item.offline_price; goods.member_goods_price = g_item.offline_price; goods.offline_cut = (g_item.goods_price - g_item.offline_price).toFixed(2); goods.pricing_type = g_item.pricing_type; } //--把券的钱,写入从表--- if (t_item.quan_youhui_list && t_item.coupon_price) { for (var kk in t_item.quan_youhui_list) { var you_item = t_item.quan_youhui_list[kk]; if (g_item.prom_type != 7 && g_item.erpwareid == you_item.WareId) { goods.quan_num = you_item.WareCashSum; goods.quan_no = you_item.CashRepNo; } } } //--判断活动的类型-- switch (g_item.prom_type) { case 1: goods.prom_type = g_item.prom_type; goods.prom_id = g_item.prom_id; break; case 3: goods.prom_type = 3; goods.prom_id = g_item.prom_id; if (g_item.is_gift) { goods.is_gift = g_item.is_gift; goods.gift_id = g_item.gift_id; } break; case 5: goods.prom_type = 5; goods.prom_id = g_item.prom_id; if (g_item.is_collocation) { goods.is_collocation = g_item.is_collocation; } break case 7: goods.prom_type = 7; goods.prom_id = g_item.prom_id; break case 8: goods.prom_type = 8; goods.prom_id = g_item.prom_id; break default: goods.prom_type = 0; goods.prom_id = 0; } //如果不立即购买或者秒杀,如果是线下库存购买的时候 if (goods.prom_type == 0 && th.data.sales_rules >= 2 && !g_item.whsle_id && !getApp().is_virtual(g_item)) { var isok = 1; await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) { isok = res; }); if (!isok) { getApp().confirmBox(goods.goods_name + "的门店库存不足"); th.data.is_summit_ing = 0; return false; } } //把优惠的平摊结果写进去 if (g_item.account >= 0 || (g_item.account_yu != 0 && g_item.account != undefined)) { if (g_item.account >= 0) goods.account = g_item.account; if (g_item.account_yu != 0) goods.account_yu = g_item.account_yu; item.is_discount_amount = 1; } //导购ID if (g_item.guide_id) { goods.guide_id = g_item.guide_id; goods.guide_type = g_item.guide_type; //调用接口判断是不是会员 await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + oo.stoid + "/" + g_item.guide_id, {}).then(res => { if (res.data.code == 0) { goods.guide_name = res.data.data.salesman; goods.guide_sn = res.data.data.salesman_no; } }) } //如果房间号不为空的时候 if (g_item.room_id) { goods.room_id = g_item.room_id; room_ids += g_item.room_id + ","; } item.order_goods.push(goods); } //如果房间号不为空的时候 if (room_ids != "") item.room_ids = ut.sub_last(room_ids); pdata.push(item); } } if (pdata.length == 0) return; var str = JSON.stringify(pdata); wx.showLoading({ title: "加载中" }); wx.request({ url: oo.url + '/api/weshop/order/createWxdOrder', data: str, method: 'POST', header: { 'content-type': 'application/json' },// 设置请求的 header success: function (res) { wx.hideLoading(); if (res.statusCode == 200) { var data = res.data; if (data.code == 0) { console.log(th.data.is_b_now); //如果是购物车结算,还要删除购物车 if (th.data.is_b_now == 0) { console.log(th.data.cartlist_y); var list = th.data.cartlist_y; for (var i = 0; i < list.length; i++) { //删除购物车 a.delete("/api/weshop/cart/del/" + oo.stoid + "/" + list[i].id, {}); } } var order_amount = 0; pdata.forEach(function (em, ind) { order_amount += em.order_amount; }) //要进行判断,如果是用微信支付,就要跳转到支付界面 if (order_amount > 0) { th.setData({ isclose: 0 }); //void e.jumpToCart4({ // order_sn: data.data, //}, 1); th.data.ok_order_sn=data.data; util_pay.pay(data.data, function () { //app.my_warnning("支付成功",1,th); //setTimeout(function () { wx.redirectTo({ url: "/packageG/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data }) //},1000) }, function () { //支付失败 setTimeout(function () { var cps = getCurrentPages(); if (cps.length > 1) { wx.navigateBack({ delta: 1 }) } else { getApp().goto("/pages/index/index/index"); } }, 1000) }, oo.stoid); } else { var dd = { parent_sn: data.data, store_id: oo.stoid, type: 2, }; a.post("/api/weshop/order/pay/createOrder", { data: dd, success: function (t) { //console.log(t); if (t.data.code == 0) { //app.my_warnning("支付成功",1,th); //setTimeout(function () { th.setData({ isclose: 0 }); wx.redirectTo({ url: "/packageG/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, }) //}, 1000) } }, fail: function () { } }); } } else { //--内容换行-- var msg = data.msg; //赠品活动已经取消,无法赠送,是否继续买单? if (msg.indexOf("是否继续买单") > 0) { wx.showModal({ title: "提示", content: data.msg, cancelText: '取消', confirmText: '确定', showCancel: true, success(res) { if (res.cancel) { return; } else if (res.confirm) { th.data.is_continue = 1; th.data.is_summit_ing = 0; //是否提交中 th.submitForm(sub_value); } } }) return; } if (msg.length > 13) { msg = msg.slice(0, 13) + "\r\n" + msg.slice(13); } getApp().confirmBox(msg); th.data.is_summit_ing = 0; //是否提交中 } } else { th.data.is_summit_ing = 0; //是否提交中 console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); } }, fail: function () { th.data.is_summit_ing = 0; wx.hideLoading(); console.log("index.js wx.request CheckCallUser fail"); }, complete: function () { } }) }, //---确认线下门店的数量足不足--- async check_store_num(goods_id, pick, goods_num, func) { var lock = 0, pick_no, plist, erpwareid; var lock_rq = { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 }; if (this.data.sales_rules == 3) { lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid; delete lock_rq.storageId } //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { data:lock_rq }).then(res => { if (res.data.code == 0 && res.data.data.total > 0) { for (var i in res.data.data.pageData) lock += res.data.data.pageData[i].outQty; } }) if (this.data.sales_rules == 2) { //先获取门店的编号 await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, { data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick} }).then(res => { if (res.data.code == 0) { pick_no = res.data.data.pickup_no; } }) } //先获取商品的线下库存 await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, { data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick } }).then(res => { if (res.data.code == 0) { erpwareid = res.data.data.erpwareid; } }) var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 }; if (this.data.sales_rules == 3) { sto_rq.storageIds = this.data.appoint_pick_keyid; delete sto_rq.storageNos } //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { data: sto_rq }).then(res => { if (res.data.code == 0) { plist = res.data.data.pageData[0]; } }) var isok = 1; if (goods_num > plist.CanOutQty - lock) { isok = 0; } func(isok); }, useCoupon: function () { if (this.data.order.couponNum <= 0) { getApp().my_warnning("无可用优惠券", 0, this); return; } var a = { lid: this.data.coupon ? this.data.coupon.id : "0" }; wx.navigateTo({ url: "/pages/user/checkcoupon/checkcoupon?" + s.Obj2Str(a) }); }, enterAddressPage: function () { getApp().globalData.is_cart_old = 1; this.data.isget_by_quan = {}; this.data.enterAddressPage = !0, wx.navigateTo({ url: "/packageF/pages/user/address_list/address_list" }); }, //--------购物车购买时,选择自提和物流----------- setexptype_w: function (t) { var def_exp_code = getApp().globalData.userInfo.def_exp_code, th = this; var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt, wl_txt = t.currentTarget.dataset.wl_txt, ont = t.currentTarget.dataset.ont; th.setData({ [txt]: ty }); var iszt = 1; if (ty == 0) { th.setData({ is_all_zt: 0 }); } else { for (var i = 0; i < th.data.cartlist.length; i++) { var item = th.data.cartlist[i]; if (item.exp_type == 0) { iszt = 0; break; } } th.setData({ is_all_zt: iszt }); var ind = t.currentTarget.dataset.ind; var c_item = th.data.cartlist[ind]; var pickid = c_item.pickup_id; if (th.data.using_quan[pickid] && th.data.using_quan[pickid].isby == 1) { th.data.using_quan[pickid] = {}; th.setData({ using_quan: th.data.using_quan }); } } //判断有没有默认的物流地址值 if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined && !th.data.is_default_logistics) { var wu_arr = this.data.wu_arr; if (wu_arr != null && wu_arr != "") { for (var i = 0; i < wu_arr.length; i++) { if (wu_arr[i].shipping_code == def_exp_code) { var set_txt = "cartlist" th.setData({ wl_txt: i }); } } } } //----计算此时购物车的价格---- th.calculatePrice(); }, //--------立即购买时,选择自提和物流---------- setexptype: function (t) { var th = this; var ty = t.currentTarget.dataset.t, def_exp_code = getApp().globalData.userInfo.def_exp_code; th.setData({ bn_exp_type: ty,same_ok:1 }); if (ty == 0) { th.setData({ is_all_zt: 0 }); } //当物流为空的时候。 if (ty == 0 && th.data.wu_arr == null) { th.data.isget_by_quan = {}; return th.get_wuliu(th.calculatePrice2()); } //--自提就要把包邮券清理掉-- if (ty == 1) { th.data.isget_by_quan = {}; if (th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby == 1) { th.setData({ using_quan: {} }); } } //判断有没有默认的物流地址值 if (def_exp_code != "" && def_exp_code != null && def_exp_code != undefined && !th.data.is_default_logistics) { var wu_arr = this.data.wu_arr; if (wu_arr != null && wu_arr != "") { for (var i = 0; i < wu_arr.length; i++) { if (wu_arr[i].shipping_code == def_exp_code) { th.setData({ index: i }); } } } } th.calculatePrice2() }, //--------立即购买时,使用余额-------- set_bn_useyuer: function () { var th = this; th.setData({ bn_use_money: !th.data.bn_use_money }); th.calculatePrice2(); }, set_js_useyuer: function () { var th = this; th.setData({ js_use_money: !th.data.js_use_money }); th.calculatePrice(); }, //使用佣金 set_bn_commission:function(){ var th = this; th.setData({ bn_use_commission: !th.data.bn_use_commission }); th.calculatePrice2(); }, //----------立即购买,选择物流------------- bindPickerChange: function (e) { var ind = e.detail.value this.setData({ index: ind }); this.calculatePrice2(); }, //----------购物车结算,选择物流------------- bindPickerChange_w: function (e) { var ind = e.detail.value, txt = e.currentTarget.dataset.txt; this.setData({ [txt]: ind }); this.calculatePrice(); }, /*----券的所有操作----*/ 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; var get_by_quan_list_cart = th.data.get_by_quan_list_cart[pickid]; 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 }); }, //---判断券时候在已经选择的列表中--- check_in_sele: function (no, pick_id) { var th = this; if (th.data.using_quan.length <= 0) return false; for (var i in th.data.using_quan) { //--如果键值等于本身就要跳出-- if (parseInt(i) == parseInt(pick_id)) continue; var item = th.data.using_quan[i]; if (item.coupon_no == no) { return true; } } return false; }, /*--点击选择券--*/ 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: 2222 }); 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: 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 by_cart_list = this.data.by_quan_list_cart; if (by_cart_list) { //---所有的券的显示红色选择都清理一遍--- for (var ind in by_cart_list) { by_cart_list[ind].show_red = 0; } this.setData({ by_quan_list_cart: by_cart_list }); } //普通券 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: 2222 }); 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: 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 }); if (th.data.is_b_now == 1) { th.calculatePrice2(); } else { th.calculatePrice(); } th.setData({ open_quan: 0 }); return; } } }, //----把券插入之后的操作,同时还要重新计算价格---- insert_into_using_quan: function (item, using_quan, pickid, isby) { var th = this; 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 { 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(); th.setData({ open_quan: 0 }); }, cart_set_err: function (e) { var txt = e.currentTarget.dataset.err; var ob = {}; ob[txt] = this.data.imgUrl + "/miniapp/images/default_g_img.gif"; this.setData(ob); }, //--验证是否已经冻结-- 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; }, //// 开启物流的弹窗 show_wu_arr: function (e) { var wu_arr_txt = e.currentTarget.dataset.txt; var w_sele_index = e.currentTarget.dataset.w_sele_index; var is_express = null; var ob = { open_express: 1, wu_arr_txt: wu_arr_txt, disabled: 1 }; //--如果是多个门店的时候-- if (w_sele_index != undefined) { is_express = this.data.cartlist[w_sele_index].wind; ob['is_express'] = is_express; } this.setData(ob); }, // 关闭物流的弹窗 close_express: function () { this.setData({ open_express: 0, disabled: 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, disabled: 0 }; ob[this.data.wu_arr_txt] = index; this.setData(ob); }, //点击确定物流 determine_expres: function (e) { this.setData({ open_express: 0 }); if (this.data.is_b_now == 1) this.calculatePrice2(); else this.calculatePrice(); }, //点击打开优惠券使用说明 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_coupons2: function (e) { var ind = e.currentTarget.dataset.idx; var is_open = this.data.get_by_quan_list[ind].is_open; if (is_open == 1) is_open = 0; else is_open = 1; var txt = "get_by_quan_list[" + ind + "].is_open" var obj = {}; obj[txt] = is_open; this.setData(obj); this.setData({ disabled: 1 }) }, //设置默认物流 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 }); //----计算此时购物车的价格---- if (th.data.is_b_now == 1) th.calculatePrice2(); else th.calculatePrice(); } } }) }, //更新下默认,在onshow里面 update_code() { var th = this, m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; //--定时器,判断wu_arr不未空-- 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; } } //--如果是立即购买-- if (th.data.is_b_now == 1) { th.setData({ index: m_wind, is_express: m_wind }); } else { var ui = setInterval(function () { if (th.data.cartlist) { var c_arr = th.data.cartlist; for (var i in c_arr) { c_arr[i].wind = m_wind; } th.setData({ cartlist: c_arr, is_express: m_wind }) clearInterval(ui); } }, 500) } } }, 500); }, //-----获取购物车进来的劵------- get_cart_quan: async function (order_prom_list_cart) { var th = this; var is_xz_yh = 1; //等待值的出现 //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { //var arr=th.data.order_prom_list_cart; var arr = order_prom_list_cart; if (!arr) arr = []; //如果系统有限制使用优惠券 if (th.data.is_close_quan) return false; //------------开始计算使用优惠券相关------------ for (var ind in arr) { var ep = arr[ind]; var goodlist = ep.goods; var pickup_id = ep.pickup_id; //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 //就要把相应的值,写入cartlist数组中-- var ckeck_quan_price = 0, check_quan_price_list = '', check_quan_ware_list = ''; for (var i in goodlist) { var gd = goodlist[i]; //--如果是秒杀就跳出,如果是赠品,如果是组合购,如果是限制使用优惠券-- if (gd.prom_type == 1 || gd.is_gift || gd.prom_type == 7) { continue; } //如果有限制使用优惠券,就要返回 if (gd.prom_type == 3) { if (th.data.prom_goods_map[pickup_id][gd.prom_id].is_xz_yh) continue; th.data.prom_goods_map[pickup_id][gd.prom_id].coupon_sele = 1; } is_xz_yh = 0; var item_price = gd.goods_price * gd.goods_num; //-- 如果有平摊下去,有实收价格的时候,就要用account来计算价格 -- if (gd.account_fir != null && gd.account_fir != undefined) { item_price = gd.account_fir * gd.goods_num; } ckeck_quan_price += item_price; //--组装价格list-- if (check_quan_price_list) { check_quan_price_list += "," + item_price; } else { check_quan_price_list = item_price; } //--组装商品的线下erpwareid-- if (check_quan_ware_list) { check_quan_ware_list += "," + encodeURIComponent(gd['erpwareid']); } else { check_quan_ware_list = encodeURIComponent(gd['erpwareid']); } } //优惠券优惠的金额要控制到优惠券的选择条件 var cut_price = 0; for (var i in th.data.prom_goods_map[pickup_id]) { var obj = th.data.prom_goods_map[pickup_id][i]; if (obj.coupon_sele) { cut_price += obj.price - obj.prom_price; } } arr[ind].ckeck_quan_price = ckeck_quan_price - cut_price; arr[ind].check_quan_ware_list = check_quan_ware_list; arr[ind].check_quan_price_list = check_quan_price_list; //是否关闭使用优惠券 if (th.data.is_close_quan != 1 && !is_xz_yh) { //--调用接口,获取优惠券的列表,3秒钟内控制接口请求-- var url = "/api/weshop/couponList/getUseCouponList"; await app.request.promiseGet(url, { data: { storeId: oo.stoid, userId: app.globalData.user_id, BuySum: ckeck_quan_price, WareIds: check_quan_ware_list, pageSize: 100 } }).then(res => { if (res.data.code == 0) { var quan_list = res.data.data.pageData; arr[ind].quan_list = th.check_is_frozenQuan(quan_list, th.data.frozenQuan); } }) } } //如果是搭配购的立即购买的时候 if (th.data.is_b_now) { if (arr && arr.length > 0) { var quanlist = arr[0].quan_list; th.setData({ selected_quan_list: quanlist, cartlist: arr }) } } else { th.setData({ cartlist: arr }) th.set_can_num(); } //}) }, //------ 获取立即购买的购物车的劵 -------- get_buy_now_quan: function () { var quanlist = null, th = this, frozenQuan = null; var good = this.data.bn_goods; if (good.prom_price) { th.data.ckeck_quan_price = good.prom_price; //如果有优惠价,就用优惠价 } else if (good.is_offline) { th.data.ckeck_quan_price = good.offline_price; //如果有线下取价,就用线下价 } //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- if (th.data.is_close_quan != 1 && th.data.bn_goods.is_xz_yh != 1) { var url0 = "/api/weshop/users/frozenQuan/listFrozenQuan/" + app.globalData.user_id; var url = "/api/weshop/couponList/getUseCouponList"; 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: { storeId: oo.stoid, userId: app.globalData.user_id, BuySum: th.data.ckeck_quan_price, WareIds: encodeURIComponent(th.data.check_quan_ware_list), pageSize: 100 }, 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 }) } } } }) }) } }, //检查区域是不是包邮 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.bn_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; }, //立即购买获取优惠活动的内容 buy_now_prom_goods: function (prom_id, arr, func) { var price = arr.shop_price * arr.goods_num; var prom = null; getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + prom_id, {}).then(res => { if (res.data.code == 0) { prom = res.data.data; return getApp().request.promiseGet("/api/weshop/goods/getDiscount", { data: { price: parseFloat(price).toFixed(2), prom_id: prom_id, goods_num: arr.goods_num, user_id: getApp().globalData.user_id, is_bz: prom.is_bz } }) } else { func(arr); } }).then(res => { if (res.data.code == 0) { var get_data = res.data.data; arr.is_bz = prom.is_bz; //是不是倍增 arr.is_xz_yh = prom.is_xz_yh; //是不是优惠 arr.bs = get_data.bs; //是不是倍数 arr.is_past = get_data.is_past; //是不是包邮 arr.prom_price = get_data.price >= 0 ? get_data.price : price; arr.s_intValue = get_data.intValue; arr.s_coupon_id = get_data.coupon_id; arr.s_coupon_num = get_data.coupon_num; //-- 看是不是有赠品 -- if (get_data.gift_id) { arr.gift_id = get_data.gift_id; arr.gift_goods_id = get_data.goods_id; arr.gift_goods_name = get_data.goods_name; arr.gift_goods_color = get_data.goodsinfo.goods_color; arr.gift_goods_spec = get_data.goodsinfo.goods_spec; arr.gift_original_img = get_data.goodsinfo.original_img; arr.gift_weight = get_data.goodsinfo.weight; arr.gift_exp_sum_type = get_data.goodsinfo.exp_sum_type; arr.gift_uniform_exp_sum = get_data.goodsinfo.uniform_exp_sum; arr.gift_limit_num = get_data.limit_num; arr.gift_storecount = get_data.gift_storecount; } arr.s_libao = get_data.libao; arr.s_lb_num = get_data.lb_num; arr.prom_id = prom_id; } func(arr); }) }, //--检查订单优惠-- check_is_order_prom: function (condition, func, pick) { var th = this; pick = this.data.bn_pick; //---获取订单优惠--- getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { data: { store_id: os.stoid, orderAmount: condition } }).then(res => { if (res.data.code == 0) { var data = res.data.data; th.data.order_prom[pick] = data; } func(); }) }, //--- 加入优惠活动的映射中,同时要有一个good列表 --- add_prom_goods_map: async function (item) { var th = this; var pickid = item.pick_id; var map = th.data.prom_goods_map; var obj = map[pickid]; if (map[pickid]) { if (map[pickid][item.prom_id]) { var ob = map[pickid][item.prom_id]; ob.price += item.goods_price * item.goods_num; ob.goods_num += item.goods_num; ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); } else { var prom = null; await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { if (res.data.code == 0) { prom = res.data.data; } }) var ob = {}; ob.prom_id = item.prom_id; ob.price = item.goods_price * item.goods_num; ob.goods_num = item.goods_num; ob.is_bz = prom.is_bz; ob.is_xz_yh = prom.is_xz_yh; ob.goods = new Array(); ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); map[pickid][item.prom_id] = ob; } } else { var ob = {}; var prom = null; await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + item.prom_id, {}).then(res => { if (res.data.code == 0) { prom = res.data.data; } }) ob.prom_id = item.prom_id; ob.price = item.goods_price * item.goods_num; ob.goods_num = item.goods_num; ob.is_bz = prom.is_bz; ob.is_xz_yh = prom.is_xz_yh; ob.goods = new Array(); ob.goods.push({ goods_id: item.goods_id, goods_price: item.goods_price, goods_num: item.goods_num }); var obj = {}; obj[item.prom_id] = ob; map[pickid] = obj; } }, //从优惠的映射中拿出商品从表的item item_map_get_goods: function (goods_id, map) { for (var i in map.goods) { if (map.goods[i].goods_id == goods_id) return map.goods[i]; } }, //从优惠的映射中拿出商品从表的item arr_get_goods: function (goods_id, arr) { for (var i in arr) { if (arr[i].goods_id == goods_id) return arr[i]; } }, //检查是不是有其他门店的订单在选择了券 check_other_use: function (iter, pkid) { var using = this.data.using_quan; var is_use = 0; if (using) { for (var i in using) { if (i == pkid) continue; if (iter.CashRepNo == using[i].coupon_no) { is_use = 1; break; } } } return is_use; }, //检查是不是有其他门店的订单在选择了包邮券 check_other_use_by: function (iter, pkid) { var using = this.data.using_quan; var is_use = 0; if (using) { for (var i in using) { if (i == pkid) continue; if (iter.no == using[i].coupon_no) { is_use = 1; break; } } } return is_use; }, //跳转到购买卡 buycard: function () { getApp().goto("/pages/user/plus/plus"); getApp().globalData.plus_buy_back = 1; }, //跳转关闭弹出框的显示 close_offline: function () { this.setData({ is_offline_show: 0 }); }, //立即购买显示弹出框 bn_pop_offline: function () { var off_price = this.data.bn_goods.shop_price - this.data.bn_goods.offline_price; //是不是线下 var is_get_offline = this.data.bn_goods.is_offline; this.setData({ is_offline_show: 1, show_off_price: off_price.toFixed(2), is_get_offline: is_get_offline }); }, //确定使用线下取价 sure_offline: function () { var bn_goods = this.data.bn_goods; if (bn_goods && bn_goods.prom_type == 0) { bn_goods.is_offline = 1; this.setData({ is_offline_show: 0, bn_goods: bn_goods }); this.calculatePrice2(); } //就是购物车结算时的 else { var index = this.data.pop_offline_index; var txt = "cartlist[" + index + "].is_offline"; this.setData({ [txt]: 1, is_offline_show: 0, }); this.data.old_cartlist[index].is_offline = 1; this.calculatePrice(); } }, //取消使用线下取价 cancle_offline: function () { //判断是不是立即购买 var bn_goods = this.data.bn_goods; if (bn_goods && bn_goods.prom_type == 0) { bn_goods.is_offline = 0; this.setData({ is_offline_show: 0, bn_goods: bn_goods }); this.calculatePrice2(); } //就是购物车结算时的 else { var index = this.data.pop_offline_index; var txt = "cartlist[" + index + "].is_offline"; this.setData({ [txt]: 0, is_offline_show: 0, }) this.data.old_cartlist[index].is_offline = 0; this.calculatePrice(); } }, //-- 弹出购物车选择是不是要店铺优惠 -- cart_pop_offline: function (e) { var index = e.currentTarget.dataset.index; var item = this.data.cartlist[index]; var off_price = item.offline_price; //是不是线下 var is_get_offline = item.is_offline; this.setData({ pop_offline_index: index, is_offline_show: 1, show_off_price: off_price.toFixed(2), is_get_offline: is_get_offline }); }, set_hid_inp: function (e) { var index = e.currentTarget.dataset.index; var txt = "cartlist[" + index + "].focus"; this.setData({ [txt]: 1 }) }, clear_hid_inp: function (e) { var index = e.currentTarget.dataset.index; var txt = "cartlist[" + index + "].focus"; this.setData({ [txt]: 0 }) }, go_detail:function(e){ var gid=e.currentTarget.dataset.gid; var act=this.data.act; var url=''; if(this.data.is_fwk){ url = `/packageC/pages/presell/cardInfo/goodsInfo?goods_id=${gid}&prom_id=${act.id}`; }else{ url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid; } getApp().goto(url); } });