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, 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,//物流费用 }, /*----------------立即购买---------------------*/ 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, disabled: 0, open_express: 0,//控制选择物流名列表 的属性 is_express: 0, //选中物流的属性 expres_name: "", //点击选定 is_shipping_code: "",//插入用户默认地址 wu_arr_txt: "", //要更新的物流的字段 //如果是全场包邮了,或者是全场不包邮了,就不要选包邮券 is_no_by: {}, is_by: {}, is_quan_by: {}, //--购买赠送的商品-- buy_now_gift_goods: null, //--订单优惠-- order_prom: {}, show_submit: 0, //提交按钮变正常显示 }, onLoad: function (t) { wx.setNavigationBarTitle({ title: "填写订单", }) var th = this; th.data.param = t; //清空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 (ee) { var json_d = JSON.parse(ee.switch_list); th.data.json_d = json_d; th.data.ispt_goods = json_d.ispt_goods; //是不是平摊到单品的控制参数赋值 var is_default_logistics = json_d.is_default_logistics; 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 }); 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); }, onUnload: function () { this.setData({ isclose: 1 }) }, onHide: function () { this.setData({ is_no_by: {}, is_by: {} }) }, //----------子页返回父页触发---------- onShow: function () { var th = this; 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) { //th.data.prom_goods_map={}; //更换地址回来要重新调用计算价钱的接口 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 }); th.calculatePrice2(); } } } else { th.setData({ user_addr: ie }); } var going = 0; }); //--更新默认地址--,看一下是不是跳到地址页面 if (!getApp().globalData.is_cart_old) { this.update_code(); } else { getApp().globalData.is_cart_old = 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 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, ta = this.data.param; //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 }); //--------------------------立即购买------------------ if (ta.is_bnow == 1) { //读取门店 to.get_allsto(function (e) { th.setData({ allsto: e }); //获取立即购买的商品信息 th.get_buy_goods(ta.goods_id); }); } }); //获取提现金额 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: function (e) { var th = this; var gg = to.get_b_now(); //--------如果goods_id一样,就是要立即购买----- if (e == gg.goods_id) { a.get("/api/weshop/goods/get/" + oo.stoid + "/" + e, { success: async function (t) { var gd = t.data.data; if (!gd) return false; t.data.data.original_img = oo.imghost + t.data.data.original_img; t.data.data['buynum'] = gg.goods_num; var distr_t = 0, et = 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.bn_goods) et = th.data.bn_exp_type var m_wind = 0, def_exp_code = getApp().globalData.userInfo.def_exp_code; if (et == 0 && def_exp_code) { 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; } } } //---是不是购买等级卡成功的返回---等级卡显示的判断--- var is_card_back = getApp().globalData.is_card_back; if (is_card_back) { th.data.card_name = th.data.userinfo.card_field; gg.goods_price = gd[th.data.card_name]; getApp().globalData.is_card_back = 0; th.setData({ card_cut_price: 0 }); //如果是秒杀的返回 if (gd.prom_type == 4) gd.prom_type = 0; } else { //--- 商家等级卡开通的情况下, 会员不是等级会员的情况, 商品有设置等级卡价格,同时等级卡价格小于商品的价格 //-- 搭配购的商品也可以单独购买,所以此时搭配购的商品要进行计算优惠 -- if (!gg.collocation_goods && gd['prom_type'] != 6 && 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]) * gg.goods_num; th.setData({ card_cut_price: cut_p }); } } switch (gd.prom_type) { case 0: case 2: case 3: case 5: case 6: getApp().my_warnning("商品不是积分活动", 0, th); wx.navigateBack(); break; case 4: //-- 积分购 -- getApp().request.get("/api/weshop/integralbuy/pageIntegralBuyGoodsList?stype=1&stypeup=1", { data: { store_id: os.stoid, goods_id: gg.goods_id }, success: async function (tt) { if (tt.data.code == 0 && tt.data.data && tt.data.data.pageData) { var inte_data = tt.data.data.pageData[0]; t.data.data.shop_price = inte_data.addmoney; t.data.data.integral = inte_data.integral; 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 }); //计算价格 th.calculatePrice2(); } else { getApp().my_warnning("商品不是积分活动", 0, th); wx.navigateBack(); } } }); break; } }, }); } }, //---------------检查是否有收货地址------------------- 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: function () { var th = this, good = this.data.bn_goods; wx.showLoading({ title: "处理中.", }) //-----------计算商品总价-------------- var allpice = good.shop_price * good.buynum; var all_integral = good.integral * good.buynum; var cut_price = 0; 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, }); } to.getwuliuprice(async function (rs) { var o_shipping_price = 0, goods_weight = -1, goods_piece = -1; var out_of_weight = null; //超出多少重量 //-----------当地址不为空,且是物流时,计算物流费用,并同时商品不是优惠活动的包邮---------- if (th.data.user_addr != null && th.data.bn_exp_type == 0 && good.is_free_shipping == 0 && good.is_past != 1) { var user_addr=th.data.user_addr; var req_d = { province: user_addr.province, city: user_addr.city, district: user_addr.district, wuliu: parseFloat(allpice).toFixed(2), store_id: os.stoid } var back_data = null; await getApp().request.promisePost("/api/weshop/order/areaFreight", { is_json: 1, data: req_d }).then(rs => { if (rs.data.code == 0) back_data = rs.data.data; }); var 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 (item['exp_sum_type'] == 2) { goods_weight += item['weight'] * item['buynum']; cut_good_weight += item['weight'] * item['buynum']; } if (back_data.weight_free > 0) { out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; } continue; } switch (item['exp_sum_type']) { case 1: //统一运费 o_shipping_price += item['uniform_exp_sum']; break; case 2: if (goods_weight < 0) goods_weight = 0; //累积商品重量 每种商品的重量 * 数量 goods_weight += item['weight'] * item['buynum']; if (back_data && back_data.is_by_all && !back_data.no_free_goods) { cut_good_weight += item['weight'] * item['buynum']; if (back_data.weight_free > 0) { out_of_weight = (back_data.weight_free * 1000) - cut_good_weight; } } break; case 3: if (goods_piece < 0) goods_piece = 0; //累积商品数量 goods_piece += item['buynum']; break; } } //如果是正值的时候 if (out_of_weight >= 0) out_of_weight = -cut_good_weight; else out_of_weight = -back_data.weight_free * 1000; 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 = ut.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, goods_piece, th.data.user_addr, back_data, rs); 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 { var wl_txt = "formData.shipping_price"; th.setData({ [wl_txt]: 0, }) } //---如果有选择优惠券的情况下--- var quan_price = 0, bn_pick = th.data.bn_pick; //-----------------支付价,优惠券不减物流----------------- var total_m = (parseFloat(allpice)).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); } //--看一下有没有订单优惠--0 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"; th.setData({ [atxt]: total_m, }) var txt = "formData.user_money"; var txt2 = "formData.order_amount"; var txt4 = "formData.integral"; var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); //--------------如果使用余额--------------------- if (th.data.bn_use_money == 1) { if (amoney > order_m) { order_m = order_m.toFixed(2); th.setData({ [txt]: order_m, [txt2]: 0, [txt4]: all_integral, show_submit: 1 }) } else { order_m = parseFloat(order_m - amoney); order_m = order_m.toFixed(2); th.setData({ [txt]: amoney, [txt2]: order_m, [txt4]: all_integral, show_submit: 1 }) } } else { th.setData({ [txt]: 0, [txt2]: order_m, [txt4]: all_integral, show_submit: 1 }) } wx.hideLoading(); }); }, //--------------------提交订单----------------------- async submitForm(t) { 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; //------------立即购买------------- if (th.data.is_b_now == 1 && th.data.bn_goods.prom_type != 5) { if (th.data.bn_exp_type == 0 && th.data.user_addr == null) { 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 integrals = 0; var get_datas = { user_id: getApp().globalData.user_id, store_id: o.stoid, }; await getApp().request.promiseGet("/api/weshop/users/getAllPoints", { data: get_datas }).then(res => { if (res.data.code == 0) { integrals = res.data.data.Integral; } }) //判断积分的情况 if (th.data.formData.integral && parseFloat(th.data.formData.integral) < parseFloat(integrals)) { 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(), 'integral': th.data.formData.integral, }; //是不是重新提交 if (th.data.is_continue == 1) item.is_continue = 1; //获取立即购买的商品的信息 var gg = to.get_b_now(); //--商品的房间号-- if (gg.room_id && gg.room_id > 0) { item.room_ids = gg.room_id; } //老会员成为分销下线需要的参数 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; } item.order_goods.push(goods); 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) { th.data.is_summit_ing = 0; //是否提交中 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); util_pay.pay(data.data, function () { //app.my_warnning("支付成功",1,th); //setTimeout(function () { wx.redirectTo({ url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data }) //},1000) }, function () { //支付失败 setTimeout(function () { wx.navigateBack({ delta: 1 }) }, 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: "/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.submitForm(sub_value); } } }) return; } if (msg.length > 13) { msg = msg.slice(0, 13) + "\r\n" + msg.slice(13); } getApp().confirmBox(msg); } } else { 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; //先读取门店的lock await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", { data: { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 } }).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; } }) //先获取门店的编号 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; } }) //读取线下的门店库存 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", { data: { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid } }).then(res => { if (res.data.code == 0 && res.data.data && res.data.data.pageData && res.data.data.pageData.length) { 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: "/pages/user/address_list/address_list" }); }, //--------立即购买时,选择自提和物流---------- 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 }); //当物流为空的时候。 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.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) { 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(); }, //----------立即购买,选择物流------------- 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) { 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 }); 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(); } } }) }, //更新下默认,在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); 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); }, //检查区域是不是包邮 check_area: function (arr) { var user_addr = this.data.user_addr; 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; }, //从优惠的映射中拿出商品从表的item arr_get_goods: function (goods_id, arr) { for (var i in arr) { if (arr[i].goods_id == goods_id) return arr[i]; } }, //跳转到购买卡 buycard: function () { getApp().goto("/pages/user/plus/plus"); getApp().globalData.plus_buy_back = 1; } });