//预付定金 var t = getApp(), app = t, a = t.request, ut = require("../../../../utils/util.js"); var os = t.globalData.setting; var regeneratorRuntime = require('../../../../utils/runtime.js'); var util_pay = require("../../../../utils/pay.js"); const t_pay = require("../../../../utils/pay2.js"); Page({ data: { url: t.globalData.setting.url, resourceUrl: t.globalData.setting.resourceUrl, imgUrl: t.globalData.setting.imghost, goods: null, order: null, orderPrices: null, coupons: null, coupon: null, invoiceToggle: !0, payWithUserMoney: !0, payWithPoints: !0, maxWord: 0, enterAddressPage: !1, firstEnter: !0, //页面获取的参数 param: null, postdata: null, //提交订单的格式 formData: { order_amount: 0,//支付金额 total_amount: 0,//总价 all_price: 0,//商品卖的总价 pay_points: 0,//使用积分 user_money: 0,//使用余额 couponCode: "",//使用优惠券(多单就用逗号隔开) shipping_price: 0,//物流费用 }, /*----------------立即购买---------------------*/ 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, udata: null,//用户预存值,数据 //判断页面是返回回来的还是 首次进入的 isclose: 1, is_express: 0,//选择物流的控制器 yuer: 0, agree_no_ref: 0, is_pre_cut:0, //是否可以使用预存 0是不可以1的可以 bconfig: null, showFold:true, is_fwk:0, //判断服务卡项的类型 template_id:[], }, 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; this.setData({ is_b_now: 1 }); th.data.postdata = getApp().get_b_now(); th.data.param = t; getApp().getConfig2(function (e) { th.setData({ bconfig: e }); }, 1); var gg = getApp().get_b_now(); if(gg.fwk){ this.setData({is_fwk: 1}); } 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; app.auth.get_u(func); }, //-------------------获取物流--------------- get_wuliu(func) { var th = this; app.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 (app.globalData.baddr != null) { var user_addr = app.globalData.baddr; app.globalData.baddr = null; func(user_addr); } else { a.get("/api/weshop/useraddress/page", { data: { user_id: app.globalData.user_id, store_id: os.stoid, pageSize: 600 }, success: function (su) { var user_addr = su.data.data.pageData; var item = null; var def_item = null; for (var i = 0; i < user_addr.length; i++) { if (user_addr[i]['is_default'] == 1) { def_item = user_addr[i]; } if (user_addr[i]['is_pickup'] == 1) { item = user_addr[i]; } } if (item == null) item = def_item; if (item == null) item = user_addr[0]; if (item == undefined) item = null; func(item); } }); } }, //----------------展示页面,是再获取用户信息之后-------------- show_page: async function () { var th = this; //获取用户预存款 await th.getAdvancesum() var user = getApp().globalData.userInfo; getApp().request.get("/api/weshop/users/get/" + os.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(); //获取提现金额 getApp().request.get("/api/weshop/withdrawals/summoney", { data: { user_id: app.globalData.user_id, store_id: os.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; th.setData({ txmon: su.data.data.summoney, yuer: yuer }); } } }); } }); }, //-----获取立即购买的商品信息---- get_buy_goods: async function () { var th = this, a = getApp().request; //定义变量 var gg = th.data.postdata, act = null, prelist = null; var url = "/api/weshop/marketing/marketingPresellForm/get/" + os.stoid + "/" + gg.prom_id; await getApp().request.promiseGet(url, {}).then(res => { if (res.data.code == 0) { act = res.data.data; } }) if (!act) { wx.showToast({ title: "未找到活动", icon: 'none', duration: 3000 }); return false; } if (act.is_end == 1) { wx.showToast({ title: '活动已经结束', icon: 'none', duration: 3000 }); return false; } if (ut.gettimestamp() > act.end_time) { wx.showToast({ title: "活动定金支付时间已过期", icon: 'none', duration: 3000 }); return false; } var url = "/api/weshop/marketing/marketingPresellList/get/" + os.stoid + "/" + gg.presell_list_id; await getApp().request.promiseGet(url, {}).then(res => { if (res.data.code == 0) { prelist = res.data.data; } }) if (!prelist) { wx.showToast({ title: "未找到商品", icon: 'none', duration: 3000 }); return false; } if(gg.fwk){ th.get_card_detail(prelist,act,gg); }else{ th.get_goods_detail(prelist,act,gg); } }, //获取服务卡项的详情 get_card_detail(prelist,act,gg){ var th=this; //--------如果goods_id一样,就是要立即购买----- var cd_url="/api/weshop/serviceCard/get/" + os.stoid + "/" + gg.goods_id //-- 调用商品 -- a.get(cd_url, { success: function (t) { var gd = t.data.data; if (!gd) return false; t.data.data.original_img = os.imghost + t.data.data.imgUrl; t.data.data['buynum'] = gg.goods_num; t.data.data.prom_type=8; t.data.data.prom_id=gg.prom_id; t.data.data.goods_name=t.data.data.serviceName; var distr_t = 0, et = 1; t.data.data.shop_price = prelist.presell_money; th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, prelist: prelist, act: act, bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et,fwk:1 }); //计算价格 th.calculatePrice2(); } }); }, //获取商品的详情 get_goods_detail(prelist,act,gg){ var th=this; //-- 调用商品 -- a.get("/api/weshop/goods/get/" + os.stoid + "/" + gg.goods_id, { success: function (t) { var gd = t.data.data; if (!gd) return false; t.data.data.original_img = os.imghost + t.data.data.original_img; t.data.data['buynum'] = gg.goods_num; t.data.data.prom_type=8; t.data.data.prom_id=gg.prom_id; 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; } if (act.presell_type == 1) { 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; } } else { et = 1; //要付定金的时候 } t.data.data.shop_price = prelist.presell_money; th.setData({ bn_goods: t.data.data, bn_pickname: gg.pick_name, prelist: prelist, act: act, bn_pick: gg.pick_id, bn_t_exp_t: distr_t, bn_exp_type: et }); //计算价格 th.calculatePrice2(); } }); }, //----------子页返回父页触发---------- onShow: function () { let o_list="/pages/user/order_list/order_list"; if(this.data.is_fwk){ o_list='/pages/user/order_list/order_list?index=2&tabindex=1'; } var fy=ut.fy_back(o_list,1); if(fy) return false; util_pay.set_fir(); t_pay.set_fir(); var th = this; //判断是不是第一次进入 if(this.data.fir_in){ this.data.fir_in=0; }else{ //-- 支付完成后的跳转的时间 -- var ok_url = "/packageC/pages/presell/cart/cart?order_sn=" +this.data.ok_order_sn; var err_url="/pages/user/order_list/order_list"; if(this.data.is_fwk){ err_url='/pages/user/order_list/order_list?index=2&tabindex=1'; ok_url+="&is_fwk=1"; } //-- 通联的第三方支付的返回优化 -- ut.is_pay_ok(th.data.ok_order_sn,ok_url,err_url,function (){ if(!th.data.ok_order_sn) return false; let ord_url=''; let ord_req={}; //如果是服务卡项的时候 if(th.data.is_fwk){ ord_url="/api/weshop/recharge/user/page"; ord_req={store_id:os.stoid,order_sn:th.data.ok_order_sn,user_id:getApp().globalData.user_id}; }else{ ord_url="/api/weshop/order/page"; ord_req={store_id:os.stoid,parent_sn:th.data.ok_order_sn}; } console.log('onshow-py-1111'); console.log(ord_url); console.log(ord_req); getApp().request.promiseGet(ord_url, {data:ord_req}).then(res=>{ if(ut.ajax_ok(res)){ var item=res.data.data.pageData[0]; if(item.pay_time){ //支付支付,返回首页 ut.m_toast('支付成功'); setTimeout(()=>{ getApp().re_to(ok_url); },1000) }else{ //支付支付,返回首页 ut.m_toast('支付失败'); setTimeout(()=>{ getApp().re_to(err_url); },1000) } } }) }); } if (th.data.isclose == 0) { wx.navigateTo({ url: "/pages/index/index/index" }) } else { this.getuser_addr(function (ie) { //更换地址回来要重新调用计算价钱的接口 th.setData({ user_addr: ie }); if (!th.data.user_addr || th.data.user_addr.address_id != ie.address_id) { th.setData({ add_back: 1,same_ok: 1 }); if (th.data.bn_goods) th.calculatePrice2(); } }) //--更新默认地址--,看一下是不是跳到地址页面 if (!getApp().globalData.is_cart_old) { this.update_code(); } else { getApp().globalData.is_cart_old = 0; } } //先获取是否有关闭使用优惠券 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_pre_cut:json_d.is_pre_cut, 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) }, //获取预存款余额 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) { // let atxt10 = "formData.prestore"; //预存金额 // this.setData({ // [atxt10]:0 // }) 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 }, //---------------检查是否有收货地址------------------- 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 () { console.log('calculatePrice2'); 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, }); console.log(th.data.formData); app.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 && (th.data.kt_type != 3 || th.data.bn_goods.is_normal == 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 = data[i]; if (back_data && back_data['is_by_all'] && (!back_data.no_free_goods || back_data.no_free_goods.indexOf(item.goods_id) == -1)) { if (item['exp_sum_type'] == 2 && back_data.weight_free > 0) { 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 = th.data.wu_arr[th.data.index].code; var shipping_price = th.calculatewuliu(code, o_shipping_price, goods_weight, out_of_weight, goods_piece, th.data.user_addr, freight_free, allpice, rs); 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 total_m = parseFloat(allpice) + parseFloat(th.data.formData.shipping_price); total_m = parseFloat(total_m).toFixed(2); var atxt = "formData.total_amount"; th.setData({ [atxt]: total_m, }) 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 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]: [], }) } } } 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 txt = "formData.user_money"; var txt2 = "formData.order_amount"; //--------------如果使用余额--------------------- if (th.data.bn_use_money == 1 && th.data.yuer > 0) { if (parseFloat(th.data.yuer) > order_m) { th.setData({ [txt]: order_m, [txt2]: 0 }) } 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 }) } } else { th.setData({ [txt]: 0, [txt2]: order_m }) } }); }, //-- 服务卡项的支付的下一步 -- submitForm_card_next: async function() { if (this.data.is_summit_ing == 1) return false; //--提交中退出-- this.data.is_summit_ing = 1; var th = this,pdata = new Array(); var item = { 'user_id': getApp().globalData.user_id, 'account': th.data.formData.order_amount, //使用余额 'store_id': os.stoid, //商家 'list': new Array(), }; //判断是不是购物车购买还是立即购买 var gg = app.get_b_now(); if (!gg.pick_id) { getApp().showWarning("未找到门店"); return false; } var goods = { 'card_id': th.data.bn_goods.id, 'itemid': th.data.bn_goods.erpItemID, 'qty': gg.goods_num, 'price': th.data.bn_goods.shop_price, // 'price': th.data.formData.order_amount, 'pickup_id': gg.pick_id, 'pickup_keyid': gg.keyid, 'prom_type': this.data.postdata.prom_type, //促销活动类型 'prom_id': this.data.postdata.prom_id, //促销活动id }; if(getApp().globalData.skinface_id){ goods.skinface_id=getApp().globalData.skinface_id; } if(this.data.postdata && this.data.postdata.is_pd_normal==1){ goods.is_pd_normal=1; } //--导购分享过来的id-- if (gg.guide_id) { goods.guide_id = gg.guide_id; goods.guide_type = gg.guide_type; //调用接口判断是不是会员 await getApp().request.promiseGet("/api/weshop/shoppingGuide/getId/" + os.stoid + "/" + gg.guide_id, {}).then( res => { if (res.data.code == 0) { goods.guide_name = res.data.data.salesman; goods.guide_sn = res.data.data.salesman_no; } }) } if(gg.groupchat_id){ goods.groupchat_id=gg.groupchat_id } item.list.push(goods); pdata = item; //var str = JSON.stringify(pdata); //console.log("支付数据"); //console.log(str); //return false; wx.showLoading({ title: "加载中" }); getApp().request.promisePost("/api/weshop/recharge/saveRecharge", { data: pdata,is_json:1,is_normal:1 }).then(res => { wx.hideLoading(); if (res.statusCode == 200) { var data = res.data; if (data.code == 0) { th.data.order_id = data.data.order_id; th.data.ok_order_sn = data.data.order_sn; var order_amount = pdata.account; //要进行判断,如果是用微信支付,就要跳转到支付界面 if (order_amount > 0) { th.setData({ isclose: 0 }); t_pay.set_pay_url("/api/weshop/order/pay/createRechargeOrder") t_pay.pay( { parentSn: data.data.order_sn, store_id: os.stoid },function (){ wx.showToast({ title: '购买成功', icon: 'success', duration: 2000 }); var rurl = "/packageC/pages/presell/cart/cart?is_fwk=1&order_sn=" + data.data.order_sn; setTimeout(function () { wx.reLaunch({ url: rurl, }) }, 1000) },function (e){ console.log('kkkkkkk'); wx.showToast({ title: e, icon: 'none', duration: 2000 }); setTimeout(function () { wx.reLaunch({ url: "/pages/user/order_list/order_list?index=2&tabindex=1", }) }, 1000) } ) } } else { th.data.is_summit_ing = 0; //是否提交中 getApp().confirmBox(data.msg); } } else { th.data.is_summit_ing = 0; //是否提交中 console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); } }).catch(function(err) { th.data.is_summit_ing = 0; //是否提交中 wx.hideLoading(); }) }, // -- 商品支付的下一步 -- submitForm_next: 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; //------------立即购买------------- //如果不是阶梯团,或者是普通购买,商家选择了物流,以及地址为空的时候 //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; if (th.data.bn_exp_type == 0 && (th.data.kt_type != 3)) { 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': app.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': os.stoid, //商家 'pickup_id': th.data.bn_pick, //门店 'prom_type': th.data.bn_goods.prom_type, //促销活动类型 'prom_id': th.data.bn_goods.prom_id, //促销活动id 'order_goods': new Array(), }; //老会员成为分销下线需要的参数 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; } var gg = app.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': os.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; } //--导购分享过来的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/" + os.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); 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/" + os.stoid + "/" + list[i].id, {}); } } var order_amount = 0; pdata.forEach(function (em, ind) { order_amount += em.order_amount; }) //要进行判断,如果是用微信支付,就要跳转到支付界面 if (order_amount && parseFloat(order_amount) > 0) { th.setData({ isclose: 0 }); th.data.ok_order_sn=data.data; util_pay.pay(data.data, function () { var url = "/packageC/pages/presell/cart/cart?order_sn=" + data.data; setTimeout(function () { wx.reLaunch({ url: url, }) }, 1000) }, function () { //支付失败 setTimeout(function () { //wx.navigateBack({ delta: 1 }) wx.reLaunch({ url: "/pages/user/order_list/order_list", }) }, 1000) }, os.stoid, 1); } else { var dd = { parent_sn: data.data, store_id: os.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); setTimeout(function () { th.setData({ isclose: 0 }); var url = "/packageC/pages/presell/cart/cart?order_sn=" + data.data; wx.reLaunch({ url: url }) }, 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(); }) }, //订阅消息提醒 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: function (t) { var th = this; //如果是部分定金,商家不同意退定金, if (this.data.act.presell_type != 1 && !this.data.act.is_refundmoney && !th.agree_no_ref) { wx.showModal({ content: ' 预售商品不允许退定金!是否继续下单?', showCancel: true,//是否显示取消按钮 cancelText: "我在想想",//默认是“取消” confirmText: "继续下单",//默认是“确定” success: function (res) { if (res.cancel) { //点击取消,默认隐藏弹框 } else { th.setData({ agree_no_ref: 1 }) if(th.data.fwk==1){ th.submitForm_card_next(t) }else{ th.submitForm_next(t) } } }, }) } else { if(th.data.fwk==1){ th.submitForm_card_next(t) }else{ th.submitForm_next(t) } } }, 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) }); }, 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 }); 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 }); //当物流为空的时候。 if (ty == 0 && th.data.wu_arr == null) { return th.get_wuliu(th.calculatePrice2()); } 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_js_useyuer: function () { var th = this; th.setData({ js_use_money: !th.data.js_use_money }); th.calculatePrice(); }, //-------------------计算物流--------------- calculatewuliu: function (code, o_shipping_price, goods_weight, out_of_weight, goods_piece, user_addr, freight_free, o_price, rs) { var price = 0, th = this; price += parseFloat(o_shipping_price); //如果是包邮 if (freight_free > 0 && o_price >= freight_free && out_of_weight >= 0) { return 0; } if (user_addr == null) { return 0; } //计算物流的config item; var item = null; //先根据 镇 县 区找计算的config item = th.get_wuliu_config(user_addr.district, code, rs); if (item == null) item = th.get_wuliu_config(user_addr.city, code, rs); if (item == null) item = th.get_wuliu_config(user_addr.province, code, rs); if (item == null) item = th.get_wuliu_default(code, rs); if (item == null) return o_shipping_price; var fw_price = 0, fp_price = 0; item = item.config; if (item == null) return o_shipping_price; //------按重量---------- if (goods_weight >= 0 && item['money']) { fw_price = parseFloat(item['money']); if (goods_weight > item['first_weight']) { var fw = goods_weight - item['first_weight']; var n = Math.ceil(fw / item['second_weight']) fw_price = fw_price + n * parseFloat(item['add_money']); } } //------超出重量---------- if (out_of_weight < 0 && o_price >= freight_free) { fw_price = parseFloat(item['money']); var out_of_weight = Math.abs(out_of_weight); if (out_of_weight > item['first_weight']) { var fw = out_of_weight - item['first_weight']; var n = Math.ceil(fw / item['second_weight']) fw_price = fw_price + n * parseFloat(item['add_money']); } } //------按件数---------- if (goods_piece > 0) { fp_price = parseFloat(item['piecemoney']); if (goods_piece > item['first_piece']) { var fp = goods_piece - item['first_piece']; var m = Math.ceil(fp / item['second_piece']) fp_price = fp_price + m * parseFloat(item['add_piecemoney']); } } var rspice = parseFloat(price + fw_price + fp_price); return rspice; }, //------------循环获取config----------- get_wuliu_config: function (region_id, code, rs) { var item = null, rslist = rs.pageData; for (var i = 0; i < rslist.length; i++) { if (rslist[i].code == code && rslist[i].region_id == region_id) { item = rslist[i]; } } return item; }, //-------循环获取config,code default------- get_wuliu_default: function (code, rs) { var item = null, rslist = rs.pageData; for (var i = 0; i < rslist.length; i++) { if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { item = rslist[i]; } } return item; }, //----------立即购买,选择物流------------- bindPickerChange: function (e) { var ind = e.detail.value this.setData({ index: ind }); 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: os.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; }, switchChange: function (e) { console.log(e, 111); this.setData({ agree_no_ref: e.detail.value }); }, go_detail:function(e){ var gid=e.currentTarget.dataset.gid; var act=this.data.act; var url=''; if(this.data.is_fwk){ url = `/packageC/pages/presell/cardInfo/goodsInfo?goods_id=${gid}&prom_id=${act.id}`; }else{ url= "/pages/goods/goodsInfo/goodsInfo?goods_id="+gid; } getApp().goto(url); } });