From cde5f2d2c202bf4aec45fc2bc207ae9eb614b59e Mon Sep 17 00:00:00 2001 From: luo <17530855@qq.com> Date: Fri, 13 Jan 2023 18:40:46 +0800 Subject: [PATCH] 预存使用场景增加1、积分购 2、秒杀 3、预售 --- packageC/pages/presell/cart/cart2_pre.js | 1980 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- packageC/pages/presell/cart/cart2_pre.wxml | 12 ++++++++++++ pages/cart/cart2_inte/cart2_inte.wxml | 16 ++++++++++++++++ 3 files changed, 1137 insertions(+), 871 deletions(-) diff --git a/packageC/pages/presell/cart/cart2_pre.js b/packageC/pages/presell/cart/cart2_pre.js index e9b2809..d720043 100644 --- a/packageC/pages/presell/cart/cart2_pre.js +++ b/packageC/pages/presell/cart/cart2_pre.js @@ -5,939 +5,1177 @@ 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_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, - is_express: 0,//选择物流的控制器 - yuer: 0, - agree_no_ref: 0 - }, - onLoad: function (t) { - wx.setNavigationBarTitle({ - title: "填写订单", - }); - var th = this; this.setData({ is_b_now: 1 }); - th.data.postdata = getApp().get_b_now(); - th.data.param = t; - - }, - 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(); - }) + 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,//物流费用 }, - //------获取会员收货地址----- - 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); - } - }); + /*----------------立即购买---------------------*/ + 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 + }, + onLoad: function (t) { + wx.setNavigationBarTitle({ + title: "填写订单", + }); + var th = this; this.setData({ is_b_now: 1 }); + th.data.postdata = getApp().get_b_now(); + th.data.param = t; + + }, + 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 }); } - }, - //----------------展示页面,是再获取用户信息之后-------------- - show_page: function () { - var th = this; - 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 }); - } - } - }); + } + 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; - } + } + }); + }, + + //-----获取立即购买的商品信息---- + 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; - } - //-- 调用商品 -- - a.get("/api/weshop/goods/get/" + os.stoid + "/" + gg.goods_id, { - success: function (t) { - var gd = t.data.data; - if (!gd) 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; + } + //-- 调用商品 -- + 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.original_img = os.imghost + t.data.data.original_img; + t.data.data['buynum'] = gg.goods_num; - var distr_t = 0, et = 0; + var distr_t = 0, et = 0; - if(t.data.data.is_minishop==1 && getApp().is_sp_hao()){ + 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 - }) + 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) + setTimeout(function () { + wx.navigateBack({ delta: 1 }) + }, 1000) - return false - } + return false + } - t.data.data.distr_type=2; - th.setData({show_same_city:0}) + 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 (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; //要付定金的时候 - } + 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(); - } + 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 }); - }, - - //----------子页返回父页触发---------- - onShow: function () { - var th = this; - 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 }); - if (th.data.bn_goods) th.calculatePrice2(); - } - }) - //--更新默认地址--,看一下是不是跳到地址页面 - if (!getApp().globalData.is_cart_old) { - this.update_code(); - } else { - getApp().globalData.is_cart_old = 0; - } + //计算价格 + th.calculatePrice2(); + } + }); + }, + + //----------子页返回父页触发---------- + onShow: function () { + var th = this; + 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 }); + 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_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) + //先获取是否有关闭使用优惠券 + 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]; + } + } + } - }, - //---------------检查是否有收货地址------------------- - 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(); + if (show_card) { + name = name.toLowerCase(); + th.setData({ card_name: name, show_card: show_card }) + } } - }), !1); - }, - showInvoice: function () { + //-----先获取物流,再获取用户信息,再展示页面----- + 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({ - invoiceToggle: !this.data.invoiceToggle + udata: data, }); - }, - 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 + } + }) + + }, + //购物车预存开启关闭 + 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 + 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 + } + listform.push(obj) + }) + let arr = await this.getGoodsAdvancesum(keyid, listform, cartList) + // } + wx.hideLoading() + return arr + }, + //计算商品预存款请求方法------------------------------------ + async getGoodsAdvancesum(storageid, listform, cartList) { + 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 + 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 + 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; }); - }, - //---------计算立即购买---------- - 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; - - 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) > total_m) { - th.setData({ [txt]: total_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 }) - } - }); + 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]; - }, - - // -- 支付的下一步 -- - 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; - //------------立即购买------------- - - //如果不是阶梯团,或者是普通购买,商家选择了物流,以及地址为空的时候 - if (th.data.bn_exp_type == 0 && th.data.user_addr == null && (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; + 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; + } } - //阶梯团强制带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 (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.qh != '') { - item.team_qh = th.data.qh; - item.pt_listno = th.data.qh; + 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, + }], + 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); //真实预存款抵扣金额总和 + } } - - 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; + } 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) > total_m) { + th.setData({ [txt]: total_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 }) + } - 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.room_id && gg.room_id > 0) { - item.room_ids = gg.room_id; - goods.room_id = gg.room_id; - } + // -- 支付的下一步 -- + submitForm_next: async function (t) { + if (this.data.is_summit_ing == 1) return false; //--提交中退出-- + this.data.is_summit_ing = 1; - 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; - var str = JSON.stringify(pdata); - wx.showLoading({ title: "加载中" }); - wx.request({ - url: os.url + '/api/weshop/order/createWxdOrder', - data: str, - method: 'POST', - header: { - 'content-type': 'application/json' - },// 设置请求的 header - success: function (res) { - - wx.hideLoading(); - if (res.statusCode == 200) { - var data = res.data; - if (data.code == 0) { - console.log(th.data.is_b_now); - //如果是购物车结算,还要删除购物车 - if (th.data.is_b_now == 0) { - console.log(th.data.cartlist_y); - var list = th.data.cartlist_y; - for (var i = 0; i < list.length; i++) { - //删除购物车 - 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 > 0) { - th.setData({ isclose: 0 }); - 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); - } - }, - fail: function () { - th.data.is_summit_ing = 0; //是否提交中 - wx.hideLoading(); - console.log("index.js wx.request CheckCallUser fail"); - }, - complete: function () { } - }) - }, + var th = this, pdata = new Array(); + var ff = true; + //------------立即购买------------- + //如果不是阶梯团,或者是普通购买,商家选择了物流,以及地址为空的时候 + if (th.data.bn_exp_type == 0 && th.data.user_addr == null && (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; + } + } - //--------------------提交订单----------------------- - 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 }) - th.submitForm_next(t) - } - }, - }) + //阶梯团强制带1,自提~~~ + if (th.data.kt_type == 3) { + th.data.bn_exp_type = 1; + } - } else { - this.submitForm_next(t); + 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); + } } - }, + }) + } - 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: "/pages/user/address_list/address_list" - }); - }, + if (th.data.qh != '') { + item.team_qh = th.data.qh; + item.pt_listno = th.data.qh; + } - //--------立即购买时,选择自提和物流----------- - 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(); - }, + 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; + } - //--------立即购买时,选择自提和物流---------- - 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()); + //--导购分享过来的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; } - 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(); - }, + //--商品的房间号-- + if (gg.room_id && gg.room_id > 0) { + item.room_ids = gg.room_id; + goods.room_id = gg.room_id; + } - //-------------------计算物流--------------- - 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; - }, + if (th.data.bn_goods.is_normal) { goods.is_pd_normal = 1; } - //------------循环获取config----------- - get_wuliu_config: function (region_id, code, rs) { - var item = null, rslist = rs.pageData; - for (var i = 0; i < rslist.length; i++) { - if (rslist[i].code == code && rslist[i].region_id == region_id) { item = rslist[i]; } - } - return item; - }, - //-------循环获取config,code default------- - get_wuliu_default: function (code, rs) { - var item = null, rslist = rs.pageData; - for (var i = 0; i < rslist.length; i++) { - if (rslist[i].shipping_code == code && rslist[i].is_default == 1) { item = rslist[i]; } - } - return item; - }, + item.order_goods.push(goods); + pdata.push(item); - //----------立即购买,选择物流------------- - bindPickerChange: function (e) { - var ind = e.detail.value - this.setData({ index: ind }); - this.calculatePrice2(); - }, + if (pdata.length == 0) return; - //----------购物车结算,选择物流------------- - bindPickerChange_w: function (e) { - var ind = e.detail.value, txt = e.currentTarget.dataset.txt; - this.setData({ [txt]: ind }); - this.calculatePrice(); - }, + //如果有使用预存,要处理 + if (th.data.formData && th.data.formData.prestore * 1 > 0) { + 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] : 0 + item.pre_preferential = 0 + item.pre_json = pre_json[i] ? JSON.stringify(pre_json[i]) : '' + }) + } - 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 }); - }, + if (!pdata.keyid && th.data.bn_goods) { + pdata.map(ite => { + ite.keyid = th.data.bn_goods.keyid + }) + // pdata.keyid = th.data.bn_goods.keyid + } - //更新下默认,在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); - 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 }); + + var str = JSON.stringify(pdata); + wx.showLoading({ title: "加载中" }); + wx.request({ + url: os.url + '/api/weshop/order/createWxdOrder', + data: str, + method: 'POST', + header: { + 'content-type': 'application/json' + },// 设置请求的 header + success: function (res) { + + wx.hideLoading(); + if (res.statusCode == 200) { + var data = res.data; + if (data.code == 0) { + console.log(th.data.is_b_now); + //如果是购物车结算,还要删除购物车 + if (th.data.is_b_now == 0) { + console.log(th.data.cartlist_y); + var list = th.data.cartlist_y; + for (var i = 0; i < list.length; i++) { + //删除购物车 + getApp().request.delete("/api/weshop/cart/del/" + os.stoid + "/" + list[i].id, {}); + } } - }, 500) - }, + var order_amount = 0; + pdata.forEach(function (em, ind) { + order_amount += em.order_amount; + }) + //要进行判断,如果是用微信支付,就要跳转到支付界面 + if (order_amount > 0) { + th.setData({ isclose: 0 }); + 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); - // 关闭物流的弹窗 - 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); - }, + } 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 + }) - //点击确定物流 - 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(); + + + }, 1000) } + }); } - }) - }, - + } + else { + th.data.is_summit_ing = 0; //是否提交中 + getApp().confirmBox(data.msg); + } + } else { + th.data.is_summit_ing = 0; //是否提交中 + console.log("index.js wx.request CheckCallUser statusCode" + res.statusCode); + } + }, + fail: function () { + th.data.is_summit_ing = 0; //是否提交中 + wx.hideLoading(); + console.log("index.js wx.request CheckCallUser fail"); + }, + complete: function () { } + }) + }, + + + //--------------------提交订单----------------------- + 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 }) + th.submitForm_next(t) + } + }, + }) - //跳转到购买卡 - buycard: function () { - getApp().goto("/pages/user/plus/plus"); - getApp().globalData.plus_buy_back = 1; - }, + } else { + this.submitForm_next(t); + } + }, - switchChange: function (e) { - console.log(e, 111); - this.setData({ agree_no_ref: e.detail.value }); + 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: "/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); + 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 }); + } }); diff --git a/packageC/pages/presell/cart/cart2_pre.wxml b/packageC/pages/presell/cart/cart2_pre.wxml index ce0e6b8..5b49203 100644 --- a/packageC/pages/presell/cart/cart2_pre.wxml +++ b/packageC/pages/presell/cart/cart2_pre.wxml @@ -136,6 +136,13 @@ 使用余额 :¥{{yuer}} + + + + + 使用预存 + + 商品金额 ¥ {{formData.all_price}}元 @@ -150,6 +157,11 @@ 配送费用 ¥ {{formData.shipping_price}}元 + + + 使用预存 + - ¥ {{filters.toFix(formData.prestore,2)}}元 + 使用余额 - ¥ {{formData.user_money}}元 diff --git a/pages/cart/cart2_inte/cart2_inte.wxml b/pages/cart/cart2_inte/cart2_inte.wxml index ee86b88..57964df 100644 --- a/pages/cart/cart2_inte/cart2_inte.wxml +++ b/pages/cart/cart2_inte/cart2_inte.wxml @@ -147,6 +147,17 @@ 使用余额 :¥{{yuer}} + + + + + + + 使用预存 + + ¥{{filters.toFix(bn_goods.yck,2)}} + + @@ -163,6 +174,11 @@ 配送费用 ¥ {{formData.shipping_price}}元 + + + 使用预存 + - ¥ {{filters.toFix(formData.prestore,2)}}元 + 使用余额 - ¥ {{formData.user_money}}元 -- libgit2 0.21.4