var t = getApp(), app = t, a = t.request, e = require("../../../../utils/common.js"), s = require("../../../../utils/util.js"), ut = s, o = require("../../../../utils/md5.js"), to = getApp(); var oo = t.globalData.setting, os = oo; var regeneratorRuntime = require('../../../../utils/runtime.js'); var util_pay = require("../../../../utils/pay.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, postdata: null, //提交订单的格式 formData: { order_amount: 0,//支付金额 total_amount: 0,//总价 all_price: 0,//商品卖的总价 pay_points: 0,//使用积分 user_money: 0,//使用余额 couponCode: "",//使用优惠券(多单就用逗号隔开) shipping_price: 0,//物流费用 }, is_no_by: {}, /*----------------立即购买---------------------*/ is_b_now: 0, //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物流 /*------------------------*/ user_addr: null,//物流 userinfo: null, //获取会员 /*----------物流选择--------*/ wu_arr: null, index: 0, //判断页面是返回回来的还是 首次进入的 isclose: 1, kt_type: 0, //开团类型 is_pt_tz: 0,//是否开团团长 qh: '', //期号 pt_listno: '',//期号 is_normal: 0, is_express: 0,//选择物流的控制器 yuer: 0, rank_switch: 0, //是不是开同等级卡 show_card: null, //显示的等级卡 card_name: '', //显示的卡的名称 card_cut_price: null,//减价多少钱 show_btn: 0, udata: null,//用户预存值,数据 dis_config: null, bn_use_commission: 0, //是不是使用佣金 is_pre_cut: 0, //是否可以使用预存 0是不可以1的可以 bn_is_order_yh: 1, //是不是订单优惠 bn_is_post_temp: 1, //是不是进行计算包邮模板 same_ok: 1, //同城配送的控制,默认ok bconfig: null, showFold: true, template_id: [], //--更优惠券抵用有关,立即购买的,如果是购物车,就要把相应的值,写入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: {}, //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 is_no_by: {}, is_by: {}, is_quan_by: {}, //-- 订单促销判断积累 ---2024-2-20 order_prom_map_ck: {}, //能不能使用订单促销 can_use_ord_prom: {}, //存储订单促销的取价,按照门店进行索引 show_ord_prom: {}, sameCityExp_off: 0, //未达到起送价 sameCityExp_info: '',//未达到起送价提示信息 first_entry: 0,//进入次数,如果是第一次进入,进行判断是否进行优惠券是否直接使用 def_coupon1: null,//购物车优惠券列表 def_coupon2: null,//直接购买优惠券列表 def_coupon3: null,//购物车包邮券列表 def_coupon4: null,//直接购买包邮券列表 }, 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: async function (t) { this.data.fir_in = 1; wx.setNavigationBarTitle({ title: "填写订单", }) var th = this; getApp().getConfig2(function (e) { th.setData({ bconfig: e }); }, 1); this.setData({ is_b_now: t.is_bnow == undefined ? 0 : t.is_bnow, }); var appD = getApp().get_b_now(); getApp().getConfig2(function (e) { th.setData({ bconfig: e }); }, 1); th.data.postdata = appD; //如果期号有值 if (appD.qh) { th.data.qh = appD.qh; th.data.pt_listno = appD.qh; } //th.data.kt_type=appD.kt_type; th.setData({ kt_type: appD.kt_type }); if (appD.is_pt_tz) th.data.is_pt_tz = appD.is_pt_tz; th.data.param = t; //先获取物流,再获取用户信息,再展示页面 //th.get_wuliu(th.get_info(th.show_page)); //判断是不是佣金抵扣 getApp().is_distribut(this); try { let template_id = await getApp().get_template_id('1001,1012,1027') this.setData({ template_id }) } catch (error) { } }, onUnload: function () { this.setData({ isclose: 1 }) }, //------获取会员信息-----先获取用户信息,在进行下一步--- get_info: function (func) { var user_id = t.globalData.user_id; to.auth.get_u(func); }, //-------------------获取物流--------------- get_wuliu(func) { var th = this; console.log("getwuliu4545"); 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(); }) }, //------获取会员收货地址----- getuser_addr: function (func) { if (to.globalData.baddr != null) { var user_addr = to.globalData.baddr; to.globalData.baddr = null; func(user_addr); } else { 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); } }); } }, //获取预存款余额 async getAdvancesum() { /*-----获取线下会员的预存款和优惠券的数量-----*/ let url = "/api/weshop/users/getinfo/" + os.stoid + "/" + getApp().globalData.userInfo.user_id await getApp().request.promiseGet(url, { data: { isShowLoading: 0, }, }).then(su => { if (su.data.code == 0 && su.data.data) { var data = su.data.data; if (!data) data = {}; data.cashcount = parseInt(data.cashcount); this.setData({ udata: data, }); } }) }, //购物车预存开启关闭 prestore(e) { let ind = e.currentTarget.dataset.ind; let item = e.currentTarget.dataset.item let txt = 'cartlist[' + ind + '].yck_off'; let txt1 = 'old_cartlist[' + ind + '].yck_off'; if (item.yck_off == 2) { this.setData({ [txt]: 1, [txt1]: 1 }) } else if (item.yck_off == 1) { this.setData({ [txt]: 2, [txt1]: 2 }) } this.calculatePrice()//计算金额 }, //直接购买预存开启关闭 prestore2() { let txt = 'bn_goods.yck_off'; if (this.data.bn_goods.yck_off == 2) { this.setData({ [txt]: 1 }) } else if (this.data.bn_goods.yck_off == 1) { this.setData({ [txt]: 2 }) } this.calculatePrice2()//计算金额 }, //计算商品预存款前置方法------------------------------------ async beforAdvancesum(cartList) { // let cartList= this.data.cartlist // let cartList= arr // let length = cartList.length if (!this.data.is_pre_cut) { return {} } wx.showLoading({ title: '加载中', mask: true }) // for (let i = 0; i < length; i++) { let item = cartList; let goods = item.goods let keyid = item.sto.keyid let listform = [] goods.map(ite => { let obj = { wareno: ite.goods_sn, price: ite.goods_price, qty: ite.goods_num, sumprice: ite.sumprice } listform.push(obj) }) let arr = await this.getGoodsAdvancesum(keyid, listform, cartList) // } wx.hideLoading() return arr }, //计算商品预存款请求方法------------------------------------ async getGoodsAdvancesum(storageid, listform, cartList) { if (!getApp().globalData.config) { await getApp().request.promiseGet("/api/weshop/store/get/" + os.stoid, { }).then(res => { if (res.data.code == 0) { getApp().globalData.config = res.data.data } }) } if (!getApp().globalData.config) return false; let res = await getApp().request.promisePost(`/api/weshop/delphiapi/saveErpApi`, { data: { accdb: getApp().globalData.config.erpid, ApiName: 'api.pos.shop.advancesum.seek', usercode: "admin", vipid: this.data.userinfo.erpvipid, oddsum: "0", advancesum: cartList.order_amount, storageid: storageid, listform }, is_json: 1 }) console.log('计算商品的预存款'); console.log(res); let yck = 0 let yckid = "" let yckIdArr = [] let pre_json = null if (res.data.code == 0 && res.data.data && res.data.data.length > 0) { let resData = res.data.data resData.map(ite => { yck += ite.advancesum * 1 yckIdArr.push(ite.advanceitemid) }) pre_json = resData } yckid = yckIdArr.join() let obj = {} if (yck * 1 > 0) { obj.yck_off = 1 } else { obj.yck_off = 0 } obj.yck = yck.toFixed(2) obj.yckid = yckid obj.pre_json = pre_json return obj }, //----------------展示页面,是再获取用户信息之后-------------- show_page: async function () { var th = this; //获取用户预存款 await th.getAdvancesum() //th.setData({ userinfo: to.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.get_buy_goods(); //获取提现金额 //noinspection JSUnresolvedFunction 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); if (yuer < 0) yuer = 0; //noinspection JSUnresolvedVariable th.setData({ txmon: su.data.data.summoney, yuer: yuer }); } } }); } }); }, //-----获取立即购买的商品信息---- get_buy_goods: function () { var th = this, a = getApp().request; var gg = th.data.postdata; //调用商品 a.get("/api/weshop/goods/get/" + oo.stoid + "/" + 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 + "/" + 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'] = gg.goods_num; console.log(t.data.data); 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 = 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 && th.data.kt_type != 3) { et = 2; } t.data.data.shop_price_y = t.data.data.shop_price t.data.data.shop_price = gg.goods_price; //--如果是普通购买的时候-- if (gg.is_normal == 1) { t.data.data.prom_id = 0; t.data.data.prom_type = 0; t.data.data.is_normal = 1; var gd = t.data.data; //-- 用商品的手店价来显示 -- gg.goods_price = gd.shop_price; //---是不是购买等级卡成功的返回---等级卡显示的判断--- var is_card_back = getApp().globalData.is_card_back; if (is_card_back) { gg.goods_price = gd[th.data.card_name]; t.data.data.shop_price = gg.goods_price; getApp().globalData.is_card_back = 0; th.setData({ card_cut_price: 0 }); } else { //--- 商品不能是搭配购,商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 if (th.data.card_name && gd[th.data.card_name] > 0 && gg.goods_price > gd[th.data.card_name] && !th.data.userinfo.card_field) { var cut_p = gg.goods_price - gd[th.data.card_name]; th.setData({ card_cut_price: cut_p }); } } if (th.data.bn_goods) { et = th.data.bn_exp_type; } //-- 计算获得佣金的金额 -- if (getApp().globalData.userInfo.is_distribut && th.data.dis_config && th.data.dis_config.is_yongjin_dk) { var c_num = getApp().get_commission2(th.data.dis_config, t.data.data, gg.goods_num); gd.use_commission = c_num; t.data.data.use_commission = c_num; } //用深拷贝把商品缓存起来,方便后面使用 th.data.old_bn_goods = ut.deep_cp(t.data.data); th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_pick: gg.pick_id, bn_t_exp_t: distr_t, is_normal: 1, bn_exp_type: et }); th.calculatePrice2(); 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.data.check_quan_price_scj = t.data.data.market_price * gg.goods_num; th.get_buy_now_quan(); } else { 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.data.check_quan_price_scj = t.data.data.market_price * gg.goods_num; gd.prom_id = gg.prom_id; //--阶梯团很特殊,不能用总表来拿价格-- getApp().request.get("/api/weshop/teamlist/get/" + oo.stoid + "/" + gd.prom_id, { success: function (tt) { if (tt.data.code == 0) { var pt_data = tt.data.data; var now = s.gettimestamp(); if (pt_data.is_end == 1) { t.data.data.prom_id = 0; t.data.data.prom_type = 0; t.data.data.is_normal = 1; } else if (now > pt_data.end_time) { t.data.data.prom_id = 0; t.data.data.prom_type = 0; t.data.data.is_normal = 1; } else { t.data.data.shop_price = tt.data.data.price; //活动价格 t.data.data.is_normal = 0; t.data.data.fir_rate = tt.data.data.fir_rate; t.data.data.sec_rate = tt.data.data.sec_rate; t.data.data.thi_rate = tt.data.data.thi_rate; t.data.data.commission = tt.data.data.commission; if (!tt.data.data.is_quan || pt_data.kttype == 3) { th.data.ckeck_quan_price = 0; th.data.check_quan_price_list = ""; th.data.check_quan_ware_list = ""; gd.is_xz_yh = 1; } if (pt_data.kttype == 3) { t.data.data.shop_price = tt.data.data.yf_price; //用定金来购买 } t.data.data.prom_id = gd.prom_id; t.data.data.prom_type = 6; if (tt.data.data.is_order_yh) { th.data.bn_is_order_yh = 1; } else { th.data.bn_is_order_yh = 0; } if (tt.data.data.is_post_temp) { th.data.bn_is_post_temp = 1; } else { th.data.bn_is_post_temp = 0; } } } else { t.data.data.prom_id = 0; t.data.data.prom_type = 0; t.data.data.is_normal = 1; } if (th.data.bn_goods) { et = th.data.bn_exp_type; } //-- 计算获得佣金的金额 -- 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; } //用深拷贝把商品缓存起来,方便后面使用 th.data.old_bn_goods = ut.deep_cp(t.data.data); th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et }); //计算价格 th.calculatePrice2(); th.get_buy_now_quan(); } }); } } }); }, //----------子页返回父页触发---------- onShow: function () { var th = this; //判断是不是第一次进入 if (this.data.fir_in) { this.data.fir_in = 0; } else { //-- 富有的支付 -- var fy = ut.fy_back("/pages/user/order_list/order_list", 1); if (fy) return false; util_pay.set_fir(); //-- 通联的第三方支付的返回优化 -- ut.is_pay_ok(th.data.ok_order_sn, "/packageG/pages/team/team_success/team_success?ordersn=" + th.data.ok_order_sn, "/pages/user/order_list/order_list", 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 == 1 || item.pt_status == 2) { //支付支付,返回首页 ut.m_toast('支付成功'); setTimeout(() => { getApp().re_to("/packageG/pages/team/team_success/team_success?ordersn=" + th.data.ok_order_sn); }, 1000) } else { //支付支付,返回首页 ut.m_toast('支付失败'); setTimeout(() => { getApp().goto("/pages/index/index/index"); }, 1000) } } }) }); } 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) { th.setData({ add_back: 1, same_ok: 1 }); //if (th.data.bn_goods) th.calculatePrice2(); } th.setData({ user_addr: ie, show_btn: 0 }); th.data.isget_by_quan = {}; }) //--更新默认地址--,看一下是不是跳到地址页面 if (!getApp().globalData.is_cart_old) { this.update_code(); } else { getApp().globalData.is_cart_old = 0; } } this.setData({ show_ord_prom: {}, can_use_ord_prom: {} }) //先获取是否有关闭使用优惠券 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_pre_cut: json_d.is_pre_cut, is_close_quan: json_d.is_close_quan, sales_rules: ee.sales_rules, is_same_city: is_same_city, rank_switch: json_d.rank_switch, is_default_logistics: is_default_logistics }); 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) }, //---------------检查是否有收货地址------------------- 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) { this.setData({ maxWord: t.detail.value.length }); }, //---------计算立即购买---------- calculatePrice2: async function () { this.setData({ submit: 1 }); wx.showLoading({ title: "处理中.", mask: true }) var th = this, good = this.data.bn_goods; //-----------计算商品总价-------------- var allpice = good.shop_price * good.buynum; allpice = parseFloat(allpice).toFixed(2); var txt = "formData.all_price"; th.setData({ [txt]: allpice, }); //to.getwuliuprice(async function (rs) { console.log('calculatePrice2222'); //console.log(rs); let all_gd_price=allpice; 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; allpice = allpice - quan_price; } }) } } //-- 判断订单优惠的叠加 -- var ord_prom = null; var o_condition = allpice; var pickid = th.data.bn_pick; if (th.data.bn_is_order_yh && th.data.kt_type != 3) { // 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; // } // }) th.set_by_now_ord_prom(th.data.bn_goods); th.data.order_prom_map_ck[bn_pick].goods_price_all = o_condition; ord_prom = await th.get_cur_ord_prom(bn_pick); } //如果有使用优惠券,如何订单促销有控制使用优惠券不参与此活动的话 if (quan_price > 0 && ord_prom && ord_prom.is_xz_yh) { ord_prom = null; } //-----------当地址不为空,且是物流时,计算物流费用,同时阶梯团不计算拼团价格---------- if (th.data.user_addr != null && th.data.bn_exp_type == 0 && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) { //看是不是有调用过包邮券 if (!th.data.isget_by_quan[th.data.bn_pick] && good.is_xz_yh != 1 && !th.data.can_use_ord_prom[th.data.bn_pick]) { //--判断要不要显示包邮券,链式调用接口,调取包邮券,已经是减了优惠的金额,见到优惠券的钱--- 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 (th.data.can_use_ord_prom[th.data.bn_pick]) { th.setData({ get_by_quan_list: null }); th.data.isget_by_quan[th.data.bn_pick] = 0; } if (good.is_free_shipping) { var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 0 }) } else { 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; var quan_no_goods_arr = null; if (!ord_prom || ord_prom.is_post_temp) { if (th.data.bn_is_post_temp || th.data.bn_goods.is_normal == 1) { 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; //如果是包邮券的时候,要看看券的情况,判断一下包邮有没有不包邮模板 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 gd_arr_list = []; gd_arr_list.push(good); 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; 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; 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; // var shipping_price = 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; } shipping_price = parseFloat(shipping_price).toFixed(2); var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: shipping_price, }) } else { var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 0, }) } } } else if (th.data.bn_exp_type == 1) { var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 0, }) } //-- 如果是订单优惠的时候,allpice要拿来减掉一些 -- var order_prom_id = 0; var order_prom_amount = 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; } } //判断是否同城配送,而且没有调用过 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: allpice, lon: lon, lat: lat, pickup_id: th.data.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, }) th.setData({ sameCityExp_off: 0, sameCityExp_info: '' }) } else { if (res.data.code == -2) { //未达到起送价 th.setData({ sameCityExp_off: 2, sameCityExp_info: res.data.msg }) } else { th.setData({ sameCityExp_off: 1, sameCityExp_info: res.data.msg }) } // 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, show_btn: 1 }) 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; } //--订单优惠的显示-- var order_prom_txt1 = "formData.order_prom_id"; var order_prom_txt2 = "formData.order_prom_amount"; if (order_prom_amount > 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 total_m = parseFloat(allpice) + parseFloat(th.data.formData.shipping_price); total_m = parseFloat(total_m).toFixed(2); all_gd_price = parseFloat(all_gd_price) + parseFloat(th.data.formData.shipping_price); all_gd_price = parseFloat(all_gd_price).toFixed(2); var atxt = "formData.total_amount"; th.setData({ [atxt]: all_gd_price,}) ; //因为allprice有减了券的钱,不能在用allprice了 var order_m = total_m; //预存金额使用参与计算 if (th.data.udata && th.data.udata.Balance > 0 && order_m * 1 > 0) { if (!th.data.bn_goods.keyid) { //获取门店信息 await getApp().request.promiseGet("/api/weshop/pickup/list", { data: { store_id: os.stoid, ids: th.data.bn_pick } }).then(res => { if (ut.ajax_ok(res)) { console.log(res); if (res.data.code == 0) { let resData = res.data.data.pageData if (resData && resData[0]) { let keyid = resData[0].keyid let txt = 'bn_goods.keyid' th.setData({ [txt]: keyid }) } } } }) } if (th.data.bn_goods.keyid) { let cart_yc = await th.beforAdvancesum({ order_amount: order_m, goods: [{ goods_sn: th.data.bn_goods.goods_sn, goods_price: th.data.bn_goods.shop_price || th.data.bn_goods.goods_price, goods_num: th.data.bn_goods.buynum || th.data.bn_goods.goods_num, sumprice: parseFloat(allpice).toFixed(2) }], sto: { keyid: th.data.bn_goods.keyid } }) if (!good.yck_off) { good.yck_off = cart_yc.yck_off } good.yck = cart_yc.yck good.yckid = cart_yc.yckid good.pre_json = cart_yc.pre_json let yct1 = 'bn_goods.yck_off'; let yct2 = 'bn_goods.yck'; let yct3 = 'bn_goods.yckid'; let yct4 = 'bn_goods.pre_json'; th.setData({ [yct1]: good.yck_off, [yct2]: good.yck, [yct3]: good.yckid, [yct4]: good.pre_json, }) if (good.yck_off && good.yck_off == 2) { let order_amount = (order_m - good.yck).toFixed(2); let yck = 0 if (order_amount * 1 > 0) { order_m = order_amount; // all_prestore+=parseFloat(good.yck); yck = parseFloat(good.yck) } else { // all_prestore+=order_m*1 yck = parseFloat(order_m) order_m = 0 } let atxt10 = "formData.prestore"; //预存金额 let atxt11 = "formData.pre_json"; //预存json let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表 th.setData({ [atxt10]: yck, [atxt11]: [good.pre_json], [atxt12]: [yck], }) // formData.prestore // all_yck_arr.push(yck) //真实预存款抵扣金额 // all_pre_json.push(good.pre_json) // all_prestore = parseFloat(all_prestore); //真实预存款抵扣金额总和 } else { let atxt10 = "formData.prestore"; //预存金额 let atxt11 = "formData.pre_json"; //预存json let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表 th.setData({ [atxt10]: 0, [atxt11]: '', [atxt12]: [], }) } } } else { let yct1 = 'bn_goods.yck_off'; let yct2 = 'bn_goods.yck'; let yct3 = 'bn_goods.yckid'; let yct4 = 'bn_goods.pre_json'; let atxt10 = "formData.prestore"; //预存金额 let atxt11 = "formData.pre_json"; //预存json let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表 th.setData({ [yct2]: 0, [yct3]: '', [yct4]: '', [atxt10]: 0, [atxt11]: '', [atxt12]: [], }) } //-----------------总价----------------- var total_m = parseFloat(allpice) + parseFloat(th.data.formData.shipping_price); total_m = parseFloat(total_m).toFixed(2); var txt = "formData.user_money"; var txt2 = "formData.order_amount"; var txt4 = "formData.use_commission"; if (parseFloat(order_m) < parseFloat(th.data.bn_goods.use_commission)) { if (th.data.bn_use_commission) { wx.showToast({ title: '应付金额小于本单佣金,不可使用!', icon: 'none', duration: 2000 }) } th.setData({ bn_use_commission: 0 }); } var txt3 = "formData.coupon_price"; if (th.data.bn_use_commission) { order_m = (parseFloat(order_m) - parseFloat(th.data.bn_goods.use_commission)).toFixed(2); th.setData({ [txt4]: th.data.bn_goods.use_commission }) } //--------------如果使用余额--------------------- if (th.data.bn_use_money == 1 && th.data.yuer > 0) { if (parseFloat(th.data.yuer) > parseFloat(order_m)) { th.setData({ [txt]: order_m, [txt2]: 0, [txt3]: quan_price, submit: 0, show_btn: 1 }) } else { order_m = parseFloat(order_m) - parseFloat(th.data.yuer); order_m = order_m.toFixed(2); th.setData({ [txt]: th.data.yuer, [txt2]: order_m, [txt3]: quan_price, submit: 0, show_btn: 1 }) } } else { th.setData({ [txt]: 0, [txt2]: order_m, [txt3]: quan_price, submit: 0, show_btn: 1 }) } //调用默认优惠券方法 th.def_coupon_fn() // wx.hideLoading(); //}); }, //订阅消息提醒 sendsm: function (t) { let that = this; let template_id = this.data.template_id; // //授权订阅 wx.requestSubscribeMessage({ tmplIds: template_id, success(res) { that.submitForm(t) }, fail(res) { that.submitForm(t) } }) }, //--------------------提交订单----------------------- submitForm: async function (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; //------------立即购买------------- console.log("buy_new"); //如果不是阶梯团,或者是普通购买,商家选择了物流,以及地址为空的时候 //th.data.bn_exp_type == 0 && th.data.user_addr == null if (getApp().is_no_addr(th, th.data.bn_exp_type) && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) { ff = false; getApp().my_warnning("请选择收货地址", 0, this); this.data.is_summit_ing = 0; } if (!ff) return false; var addr = th.data.user_addr; if (th.data.bn_exp_type == 1) addr = null; console.log(th.data.formData); console.log(th.data.wu_arr); console.log(th.data.bn_exp_type); if (th.data.bn_exp_type == 0 && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) { if (th.data.wu_arr == null || th.data.wu_arr.length <= 0) { getApp().my_warnning("读取物流失败", 0, this); this.data.is_summit_ing = 0; return false; } } //阶梯团强制带1,自提~~~ if (th.data.kt_type == 3) { th.data.bn_exp_type = 1; } 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': addr == null ? th.data.userinfo.mobile : addr.mobile, 'email': '', '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, //配送方式 'is_normal': th.data.bn_goods.is_normal, //是否是普通购买 'pt_prom_id': th.data.bn_goods.prom_id, //拼单ID 'is_pt_tz': th.data.is_pt_tz, //开团类型 'order_goods': new Array(), }; //-- 同城配送检验的参数 -- 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; } //--判断有没有优惠活动-- 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; item.order_prom_list = order_prom_list; } //如果不是阶梯团,或者是普通购买, if ((th.data.kt_type != 3 || th.data.bn_goods.is_normal == 1)) { item['shipping_code'] = th.data.bn_exp_type == 1 ? 0 : th.data.wu_arr[th.data.index].code; item['shipping_name'] = th.data.bn_exp_type == 1 ? '' : th.data.wu_arr[th.data.index].name; } //组装优惠券的钱 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 (!th.data.bn_goods.is_normal) { item.is_zsorder = th.data.kt_type + 1; //开团类型 } //老会员成为分销下线需要的参数 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); } } }) } if (th.data.qh != '') { item.team_qh = th.data.qh; item.pt_listno = th.data.qh; } //-- 如果有使用佣金抵扣的话 -- if (th.data.bn_use_commission) { item.use_commission = th.data.bn_goods.use_commission; } var gg = to.get_b_now(); 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 (th.data.bn_goods.discount_field) { goods.discount_field = th.data.bn_goods.discount_field; } //如果有参与非实收的订单促销,那么就相当于是普通购买 if (th.data.can_use_ord_prom[th.data.bn_pick]) { goods.is_integral_normal = 1; //如果是指定门店,就要判断 if (th.data.bn_goods.pick_group_ids) { var idx0 = th.data.bn_goods.pick_up_lists.findIndex(function (e) { return e.pickup_id == th.data.bn_pick; }) if (idx0 < 0) { getApp().my_warnning(th.data.bn_goods.goods_name + "的门店不可售", 0, th); th.data.is_summit_ing = 0; th.setData({ submit: 0 }) return false; } } if (th.data.sales_rules == 1 && th.data.bn_goods.store_count < goods.goods_num) { getApp().confirmBox("商品的门店库存不足"); th.data.is_summit_ing = 0; th.setData({ submit: 0 }) return false; } //如果不立即购买或者秒杀,如果是线下库存购买的时候 if (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, goods.goods_num, function (res) { isok = res; }); if (!isok) { getApp().confirmBox("商品的门店库存不足"); th.data.is_summit_ing = 0; th.setData({ submit: 0 }) return false; } } } 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 (parseFloat(th.data.formData.coupon_price) > 0) { goods.quan_num = th.data.formData.coupon_price; goods.quan_no = item.coupon_no; } //--导购分享过来的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 && gg.groupchat_id != 'undefined') { goods.groupchat_id = gg.groupchat_id item.groupchat_ids = gg.groupchat_id } //--商品的房间号-- if (gg.room_id && gg.room_id > 0) { item.room_ids = gg.room_id; goods.room_id = gg.room_id; } if (th.data.bn_goods.is_normal) { goods.is_pd_normal = 1; } item.order_goods.push(goods); pdata.push(item); if (pdata.length == 0) return; //如果有使用预存,要处理 if (th.data.formData && th.data.formData.prestore * 1 > 0 && th.data.bn_goods.yck_off == 2) { let formData = th.data.formData let pre_json = formData.pre_json let all_yck_arr = formData.all_yck_arr pdata.map((item, i) => { item.pre_cut = all_yck_arr[i] ? all_yck_arr[i].toFixed(2) : 0 item.pre_preferential = 0 item.pre_json = pre_json[i] ? JSON.stringify(pre_json[i]) : '' }) } if (!pdata.keyid && th.data.bn_goods) { pdata.map(ite => { ite.keyid = th.data.bn_goods.keyid }) // pdata.keyid = th.data.bn_goods.keyid } var str = JSON.stringify(pdata); console.log("支付数据"); console.log(str); //return false; wx.showLoading({ title: "加载中" }); getApp().request.promisePost("/api/weshop/order/createWxdOrder", { data: pdata,is_json:1,is_normal:1 }).then(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++) { //删除购物车 getApp().request.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, // type:1, // }, 1); th.data.ok_order_sn = data.data; util_pay.pay(data.data, function () { setTimeout(function () { wx.reLaunch({ //url: "/packageG/pages/payment/pay_success/pay_success?type=1&order_sn="+data.data, url: "/packageG/pages/team/team_success/team_success?ordersn=" + data.data, }) }, 1000) }, function () { //支付失败 setTimeout(function () { //wx.navigateBack({ delta: 1 }) wx.reLaunch({ url: "/pages/user/order_list/order_list", }) }, 1000) }, oo.stoid, 1); } else { var dd = { parent_sn: data.data, store_id: oo.stoid, type: 1, }; //return false; getApp().request.post("/api/weshop/order/pay/createOrder", { data: dd, success: function (t) { console.log(t); // app.my_warnning("支付成功", 1, th); wx.showToast({ title: '支付成功', icon: 'success', duration: 2000 }); setTimeout(function () { th.setData({ isclose: 0 }); if (th.data.is_normal == 1) { /*-- wx.navigateTo({ url: "/pages/user/order_list/order_list", })--*/ var url = "/packageG/pages/payment/pay_success/pay_success?type=1&order_sn=" + data.data; wx.reLaunch({ url: url }) } else { wx.reLaunch({ url: "/packageG/pages/team/team_success/team_success?ordersn=" + data.data, }) } }, 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); } }).catch(function(err) { th.data.is_summit_ing = 0; //是否提交中 wx.hideLoading(); }) }, useCoupon: function () { if (this.data.order.couponNum <= 0) { //return t.showWarning("无可用优惠券"); 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) }); }, //检查区域是不是包邮 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; }, enterAddressPage: function () { getApp().globalData.is_cart_old = 1; this.data.enterAddressPage = !0, wx.navigateTo({ url: "/packageF/pages/user/address_list/address_list" }); }, //--------立即购买时,选择自提和物流----------- setexptype_w: function (t) { var th = this; var ty = t.currentTarget.dataset.t, txt = t.currentTarget.dataset.txt; th.setData({ [txt]: ty, same_ok: 1, sameCityExp_off: 0, sameCityExp_info: '', }); 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 }); } //----计算此时购物车的价格---- th.calculatePrice(); }, //--------立即购买时,选择自提和物流---------- setexptype: function (t) { var th = this; var ty = t.currentTarget.dataset.t; th.setData({ bn_exp_type: ty, same_ok: 1, sameCityExp_off: 0, sameCityExp_info: '', first_entry: 0}); //当物流为空的时候。 if (ty == 0 && th.data.wu_arr == null) { return th.get_wuliu(th.calculatePrice2()); } if (ty !=0 && th.data.using_quan[th.data.bn_pick] && th.data.using_quan[th.data.bn_pick].isby==1) { let using_quan={ [th.data.bn_pick]:{ is_nouse_red:1 } } // using_quan[th.data.bn_pick].is_nouse_red=1 // let txt=`using_quan.${th.data.bn_pick}.is_nouse_red` th.setData({ using_quan:using_quan }) } th.calculatePrice2() console.log('setexptype'); }, //--------立即购买时,使用余额-------- set_bn_useyuer: function () { var th = this; th.setData({ bn_use_money: !th.data.bn_use_money }); th.calculatePrice2(); }, set_bn_commission: function () { var th = this; th.setData({ bn_use_commission: !th.data.bn_use_commission }); th.calculatePrice2(); }, set_js_useyuer: function () { var th = this; th.setData({ js_use_money: !th.data.js_use_money }); th.calculatePrice(); }, //----------立即购买,选择物流------------- 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(); }, 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); }, //// 开启物流的弹窗 show_wu_arr: function (e) { this.setData({ open_express: 1 }); }, //更新下默认,在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) }, // 关闭物流的弹窗 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(); } } }) }, //跳转到购买卡 buycard: function () { getApp().goto("/pages/user/plus/plus"); getApp().globalData.plus_buy_back = 1; }, //------ 获取立即购买的购物车的劵 -------- get_buy_now_quan: function () { var quanlist = null, th = this, frozenQuan = null; var good = this.data.bn_goods; //一件代发商品不使用优惠券 if (good.whsle_id) return false; if (!th.data.check_quan_ware_list) return false; //--如果商家后台没有限制使用优惠券,同时商品的优惠活动没有限制使用优惠券-- if (th.data.is_close_quan != 1 && th.data.bn_goods.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"; app.request.promiseGet(url0, { 1: 1 }).then(res => { if (res.data.code == 0) { frozenQuan = res.data.data; th.data.frozenQuan = frozenQuan; } 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(th.data.ckeck_quan_price>=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.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) { console.error('选择券-----'); 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; 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 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: th.is_coupon }); // return; // } var pickid = th.data.selected_quan_pick; //现在选择的是哪一个门店 var ind = 0; //--如果是立即购买的部分-- var txt = ""; var txt1 = ""; var quan_item = null; if (th.data.is_b_now) { 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); } else { txt = "by_quan_list_cart[" + ind + "].show_red"; quan_item = th.data.by_quan_list_cart[ind]; var obj = {}; obj[txt] = 1; this.setData(obj); th.data.get_by_quan_list_cart[pickid] = JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组 } 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: 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; if (th.data.is_b_now) { 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); } else { txt = "by_quan_list_cart[" + ind + "].show_red"; quan_item = th.data.by_quan_list_cart[ind]; var obj = {}; obj[txt] = 1; this.setData(obj); th.data.get_by_quan_list_cart[pickid] = JSON.parse(JSON.stringify(th.data.by_quan_list_cart)); //要把选中的弄回数组 } 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); 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; } } }, //--确认使用券--- 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; } } }, //默认选择优惠券 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.bn_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.bn_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 }); if (th.data.is_b_now == 1) { 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 // }) }); } else { th.calculatePrice(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 }); }, //-- 获取订单促销的判断结构 -- set_by_now_ord_prom(item) { let pickid = this.data.bn_pick; let order_prom_map_ck = this.data.order_prom_map_ck; order_prom_map_ck[pickid] = { shop_price_all: 0, //手店价的累计 market_price_all: 0, //市场价的累计 goods_price_all: 0, //实收价的累计 no_ord_price: 0, //要累计上不参与订单促销的金额 goodsList: [], } let pk_ord_map = order_prom_map_ck[pickid]; pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; pk_ord_map.market_price_all += item.market_price * item.buynum; }, //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 async get_cur_ord_prom(pickid) { let ord_prom = null; let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; if (!order_prom_map_ck) return null; //获取当前进行中的优惠促销 await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { data: { store_id: os.stoid, orderAmount: -1, //-1为不判断金额条件 user_id: getApp().globalData.user_id } }).then(res => { if (res.data.code == 0) { ord_prom = res.data.data; } }) if (!ord_prom) return null; //用于计算订单促销的金额 let calculate_price = 0; let txt1 = 'show_ord_prom[' + pickid + ']'; //-- 此时判断活动的金额满足与否 -- switch (ord_prom.discount_field) { //实收价的时候 case 0: //要先还原 this.setData({ [txt1]: 0 }); if (ord_prom.money > order_prom_map_ck.goods_price_all) { return null; } break; //手店价的时候 case 1: if (ord_prom.money > order_prom_map_ck.shop_price_all) { //要先还原 this.setData({ [txt1]: 0 }); return null; } //要显示订单促销使用的按钮 this.setData({ [txt1]: 1 }); break; //市场价的时候 case 2: if (ord_prom.money > order_prom_map_ck.market_price_all) { //要先还原 this.setData({ [txt1]: 0 }); return null; } //要显示订单促销使用的按钮 this.setData({ [txt1]: 2 }); break; } //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) if (ord_prom.discount_field > 0 && !this.data.can_use_ord_prom[pickid]) { return null; } return ord_prom; }, //立即购买的时候,点击订单促销的参与 set_can_use_ord_prom_now: function (e) { if (this.data.submit) return false; this.setData({ submit: 1, same_ok: 1 }); let pickid = this.data.bn_pick; let txt = 'can_use_ord_prom[' + pickid + ']'; let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; this.setData({ [txt]: !can_use }) let th = this; let good = th.data.bn_goods; //如果有要参与订单促销的按钮点击后,要修改商品的价格 if (th.data.can_use_ord_prom[pickid]) { let discount_field = th.data.show_ord_prom[pickid]; switch (discount_field) { case 1: good.shop_price = good.shop_price_y; break; case 2: good.shop_price = good.market_price; break; } //-- 转成普通商品 --- good.prom_type = 0; good.prom_id = 0; good.discount_field = discount_field; //把优惠券的使用还原 th.setData({ selected_quan_list: null, using_quan: {} }) } else { good = ut.deep_cp(th.data.old_bn_goods); } th.setData({ bn_goods: good }) wx.showLoading({ title: "处理中.", mark: true }) th.calculatePrice2() if (!th.data.can_use_ord_prom[pickid]) { th.get_buy_now_quan(); } }, //---确认线下门店的数量足不足--- 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 (!plist || goods_num > plist.CanOutQty - lock) { isok = 0; } func(isok); }, //去凑单 qcd() { getApp().goto("/pages/index/index/index"); }, });