diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index cd31d5b..78c7c87 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -1,11 +1,11 @@ var t = getApp(), app = t, a = t.request, e = require("../../../../utils/common.js"), - s = require("../../../../utils/util.js"), rq = require("../../../../utils/request.js"), ut = s, o = require("../../../../utils/md5.js"), to = getApp(); + s = require("../../../../utils/util.js"), rq = require("../../../../utils/request.js"), ut = s, o = require("../../../../utils/md5.js"), to = getApp(); var oo = t.globalData.setting, os = oo; var regeneratorRuntime = require('../../../../utils/runtime.js'); var util_pay = require("../../../../utils/pay.js"); var zh_calc = require("zh_calculate.js"); var ladder_calc = require("ladder_calculate.js"); -// 防抖函数用定时器 +// 防抖函数用定时器 let timer; Page({ data: { @@ -53,8 +53,8 @@ Page({ bn_pickname: "", //选择的门店名称 bn_t_exp_t: 0, //判断商品和门店一起决定的物流自提的方式0 都可以 1自提 2物流 - bn_is_order_yh:1, //是不是订单优惠 - bn_is_post_temp:1, //是不是进行计算包邮模板 + bn_is_order_yh: 1, //是不是订单优惠 + bn_is_post_temp: 1, //是不是进行计算包邮模板 bn_plus_cut_price: 0, //显示等级卡会优惠多少钱 /*------------------------*/ @@ -141,10 +141,10 @@ Page({ bn_use_commission: 0, //是不是使用佣金 cart_use_commission: 0, cart_commission: 0, - udata:null,//用户预存值,数据 + udata: null,//用户预存值,数据 //订单所有搭配购的 all_collocation_list: [], - appoint_pick_keyid:'' + appoint_pick_keyid: '' }, onLoad: function (t) { wx.setNavigationBarTitle({ title: "填写订单", }) @@ -317,81 +317,81 @@ Page({ getApp().globalData.plus_buy_back = 0; }, //获取预存款余额 - 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, - }); - } - }) + 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; + 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}) + 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(){ + 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}) + 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){ + async beforAdvancesum(cartList) { // let cartList= this.data.cartlist // let cartList= arr // let length = cartList.length wx.showLoading({ title: '加载中', - mask:true + 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) + 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 - // wx.hideLoading() }, //计算商品预存款请求方法------------------------------------ - 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', + 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", @@ -399,42 +399,42 @@ Page({ storageid: storageid, listform }, - is_json:1 + 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 + 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 + pre_json = resData } - yckid=yckIdArr.join() - let obj={} - if(yck*1>0){ - obj.yck_off=1 - }else{ - obj.yck_off=0 + 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 + obj.yck = yck + obj.yckid = yckid + obj.pre_json = pre_json return obj }, //支付成功后预存处理请求 - async setAdvancesum(item,number){ + async setAdvancesum(item, number) { let pre_json = item.pre_json ? JSON.parse(item.pre_json) : [] - if(!pre_json.length){return} - let listform=[] - pre_json.map(ite=>{ - let ob={ + if (!pre_json.length) { return } + let listform = [] + pre_json.map(ite => { + let ob = { advanceitemid: ite.advanceitemid, insum: "", outsum: ite.advancesum, @@ -442,18 +442,18 @@ Page({ } listform.push(ob) }) - let obj={ - accdb:getApp().globalData.config.erpid, - ApiName:'api.pos.shop.vipinfolist.save', + let obj = { + accdb: getApp().globalData.config.erpid, + ApiName: 'api.pos.shop.vipinfolist.save', vipid: this.data.userinfo.erpvipid, storageid: item.keyid, operator: "admin", number, listform, } - let res = await getApp().request.promisePost(`/api/weshop/delphiapi/saveErpApi`,{ - data:obj, - is_json:1 + let res = await getApp().request.promisePost(`/api/weshop/delphiapi/saveErpApi`, { + data: obj, + is_json: 1 }) }, @@ -699,14 +699,14 @@ Page({ item1.promgoodsbuynum = promgoodsbuynum; //如果是秒杀的时候 - if(item1.prom_type==1){ - var url= "/api/weshop/activitylist/getSJGoodsPriceNew/" + os.stoid - + "/" + item1.goods_id + "/1/" + item1.prom_id + "/" + app.globalData.user_id; - await app.request.promiseGet(url,{}).then(res=>{ - if(res.data.code==0){ - console.log(res.data.data,"111"); - item1.is_order_yh=res.data.data.is_order_yh; - item1.is_post_temp=res.data.data.is_post_temp; + if (item1.prom_type == 1) { + var url = "/api/weshop/activitylist/getSJGoodsPriceNew/" + os.stoid + + "/" + item1.goods_id + "/1/" + item1.prom_id + "/" + app.globalData.user_id; + await app.request.promiseGet(url, {}).then(res => { + if (res.data.code == 0) { + console.log(res.data.data, "111"); + item1.is_order_yh = res.data.data.is_order_yh; + item1.is_post_temp = res.data.data.is_post_temp; } }) } @@ -1116,7 +1116,7 @@ Page({ } } - + //深拷贝 th.data.old_cartlist = JSON.parse(JSON.stringify(arr)); @@ -1135,7 +1135,8 @@ Page({ } th.calculatePrice(); th.get_cart_quan(); - })}, 500) + }) + }, 500) } }); }, @@ -1455,16 +1456,16 @@ Page({ t.data.data.thi_rate = tt.data.data.thi_rate; t.data.data.commission = tt.data.data.commission; - if(tt.data.data.is_order_yh){ - th.data.bn_is_order_yh=1; - }else{ - th.data.bn_is_order_yh=0; + if (tt.data.data.is_order_yh) { + th.data.bn_is_order_yh = 1; + } else { + th.data.bn_is_order_yh = 0; } - if(tt.data.data.is_post_temp){ - th.data.bn_is_post_temp=1; - }else{ - th.data.bn_is_post_temp=0; + if (tt.data.data.is_post_temp) { + th.data.bn_is_post_temp = 1; + } else { + th.data.bn_is_post_temp = 0; } } else { @@ -1919,9 +1920,9 @@ Page({ var all_zh_cutprice = 0; //所有的组合优惠减 var all_ladder_cutprice = 0; //所有的阶梯促销优惠减 var all_order_prom = 0; //所有的订单优惠 - var all_prestore=0; //所有预存优化金额 - var all_pre_json=[]; //所有预存优化json - var all_yck_arr=[]; //所有预存真实抵扣数组 + var all_prestore = 0; //所有预存优化金额 + var all_pre_json = []; //所有预存优化json + var all_yck_arr = []; //所有预存真实抵扣数组 var umoney = th.data.userinfo.user_money - th.data.txmon - (th.data.userinfo.frozen_money ? th.data.userinfo.frozen_money : 0); var out_of_weight = 0; //超出多少重量 @@ -1986,8 +1987,8 @@ Page({ var ladder_prom_goods = c_arr[i].ladder_prom_goods; //组合购计算的原始数据存储空间 - var no_order_yh=0; //-- 有些活动不能和订单优惠叠加的金额 -- - var no_post_temp=0; //-- 有些活动不能和包邮模板的金额 -- + var no_order_yh = 0; //-- 有些活动不能和订单优惠叠加的金额 -- + var no_post_temp = 0; //-- 有些活动不能和包邮模板的金额 -- if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) @@ -2043,11 +2044,11 @@ Page({ o_price += item[j].goods_price * item[j].goods_num; //-- 秒杀的时候,判断有没有订单优惠和包邮模板的叠加 -- - if(item[j].prom_type==1 ){ - if(!item[j].is_order_yh) - no_order_yh+=item[j].goods_price * item[j].goods_num; - if(!item[j].is_post_temp) - no_post_temp+=item[j].goods_price * item[j].goods_num; + if (item[j].prom_type == 1) { + if (!item[j].is_order_yh) + no_order_yh += item[j].goods_price * item[j].goods_num; + if (!item[j].is_post_temp) + no_post_temp += item[j].goods_price * item[j].goods_num; } @@ -2149,15 +2150,15 @@ Page({ }) } - var user_addr=th.data.user_addr; + var user_addr = th.data.user_addr; var req_d = { province: user_addr.province, city: user_addr.city, district: user_addr.district, - wuliu:parseFloat(o_price - quan_price-whsle_goods_price-no_post_temp).toFixed(2),store_id: os.stoid + wuliu: parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2), store_id: os.stoid } 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; + if (rs.data.code == 0) back_data = rs.data.data; }); } @@ -2329,9 +2330,9 @@ Page({ } - if(no_order_yh){ - o_condition=o_condition-no_order_yh; - t_o_condition=t_o_condition-no_order_yh; + if (no_order_yh) { + o_condition = o_condition - no_order_yh; + t_o_condition = t_o_condition - no_order_yh; } var order_m = 0; @@ -2426,16 +2427,16 @@ Page({ }) if (!is_next) return false } - + //预存金额使用参与计算 - if(th.data.udata && th.data.udata.Balance>0 && cart_item.order_amount*1>0){ + if (th.data.udata && th.data.udata.Balance > 0 && cart_item.order_amount * 1 > 0) { let cart_yc = await th.beforAdvancesum(cart_item) - if(!cart_item.yck_off){ - cart_item.yck_off=cart_yc.yck_off + if (!cart_item.yck_off) { + cart_item.yck_off = cart_yc.yck_off } - cart_item.yck=cart_yc.yck - cart_item.yckid=cart_yc.yckid - cart_item.pre_json=cart_yc.pre_json + cart_item.yck = cart_yc.yck + cart_item.yckid = cart_yc.yckid + cart_item.pre_json = cart_yc.pre_json let yct1 = 'cartlist[' + i + '].yck_off'; let yct11 = 'old_cartlist[' + i + '].yck_off'; let yct2 = 'cartlist[' + i + '].yck'; @@ -2445,33 +2446,33 @@ Page({ let yct4 = 'cartlist[' + i + '].pre_json'; let yct44 = 'old_cartlist[' + i + '].pre_json'; th.setData({ - [yct1]:cart_item.yck_off, - [yct11]:cart_item.yck_off, - [yct2]:cart_item.yck, - [yct22]:cart_item.yck, - [yct3]:cart_item.yckid, - [yct33]:cart_item.yckid, - [yct4]:cart_item.pre_json, - [yct44]:cart_item.pre_json, + [yct1]: cart_item.yck_off, + [yct11]: cart_item.yck_off, + [yct2]: cart_item.yck, + [yct22]: cart_item.yck, + [yct3]: cart_item.yckid, + [yct33]: cart_item.yckid, + [yct4]: cart_item.pre_json, + [yct44]: cart_item.pre_json, }) - if(cart_item.yck_off && cart_item.yck_off==2 ){ + if (cart_item.yck_off && cart_item.yck_off == 2) { let order_amount = (cart_item.order_amount - cart_item.yck).toFixed(2); - let yck=0 - if(order_amount*1>0){ + let yck = 0 + if (order_amount * 1 > 0) { cart_item.order_amount = order_amount; - all_prestore+=parseFloat(cart_item.yck); - yck=parseFloat(cart_item.yck) - }else{ - all_prestore+=cart_item.order_amount*1 - yck=parseFloat(cart_item.order_amount) - cart_item.order_amount=0 + all_prestore += parseFloat(cart_item.yck); + yck = parseFloat(cart_item.yck) + } else { + all_prestore += cart_item.order_amount * 1 + yck = parseFloat(cart_item.order_amount) + cart_item.order_amount = 0 } all_yck_arr.push(yck) //真实预存款抵扣金额 all_pre_json.push(cart_item.pre_json) all_prestore = parseFloat(all_prestore); //真实预存款抵扣金额总和 } - }else{ + } else { let yct1 = 'cartlist[' + i + '].yck_off'; let yct11 = 'old_cartlist[' + i + '].yck_off'; let yct2 = 'cartlist[' + i + '].yck'; @@ -2481,12 +2482,12 @@ Page({ let yct4 = 'cartlist[' + i + '].pre_json'; let yct44 = 'old_cartlist[' + i + '].pre_json'; th.setData({ - [yct2]:0, - [yct22]:0, - [yct3]:'', - [yct33]:'', - [yct4]:'', - [yct44]:'', + [yct2]: 0, + [yct22]: 0, + [yct3]: '', + [yct33]: '', + [yct4]: '', + [yct44]: '', }) } @@ -2563,7 +2564,7 @@ Page({ all_user_m += parseFloat(cart_item.user_money); all_coupon_price_m += parseFloat(cart_item.coupon_price); all_cutprice += parseFloat(cart_item.cut_price); - + all_zh_cutprice += parseFloat((cart_item.zh_cut_price ? cart_item.zh_cut_price : '0')); all_ladder_cutprice += parseFloat(cart_item.ladder_cut_price); all_order_prom += parseFloat(cart_item.order_prom_amount); @@ -2581,7 +2582,7 @@ Page({ all_order_prom = all_order_prom.toFixed(2); all_zh_cutprice = parseFloat(all_zh_cutprice).toFixed(2); all_ladder_cutprice = parseFloat(all_ladder_cutprice).toFixed(2); - + var atxt = "formData.total_amount"; var atxt1 = "formData.order_amount"; var atxt2 = "formData.all_price"; @@ -2601,9 +2602,9 @@ Page({ [atxt2]: all_price, [atxt3]: all_user_m, [atxt4]: all_shipping_m, [atxt5]: all_coupon_price_m, [atxt6]: all_cutprice, [atxt7]: all_order_prom, show_submit: 1, [atxt8]: all_zh_cutprice, [atxt9]: all_ladder_cutprice, submit: 0, - [atxt10]:all_prestore, - [atxt11]:all_pre_json, - [atxt12]:all_yck_arr, + [atxt10]: all_prestore, + [atxt11]: all_pre_json, + [atxt12]: all_yck_arr, }) th.data.order_prom_list_cart = c_arr; th.set_can_num(); @@ -2664,7 +2665,7 @@ Page({ var allpice = good.shop_price * good.buynum; var cut_price = 0; var allpice1 = allpice; - + if (good.prom_type == 3 && good.prom_price !== null) { cut_price = allpice - good.prom_price; @@ -2782,7 +2783,7 @@ Page({ var back_data = null; //判断是不是包邮模板 - if(th.data.bn_is_post_temp){ + if (th.data.bn_is_post_temp) { await getApp().request.promisePost("/api/weshop/order/areaFreight", { is_json: 1, data: req_d }).then(rs => { @@ -2936,78 +2937,120 @@ Page({ } + + + + if (o_condition > 0 && th.data.bn_is_order_yh) { + + th.check_is_order_prom(o_condition, async function () { + var order_prom_amount = 0; + var order_prom_id = 0; + if (th.data.order_prom[th.data.bn_pick] && th.data.order_prom[th.data.bn_pick]['money'] <= o_condition) { + var ord_prom = th.data.order_prom[th.data.bn_pick]; + //么有使用券,或者活动没有限制使用优惠券 + if (coupon_price <= 0 || !ord_prom.is_xz_yh) { + order_prom_id = ord_prom['id']; + switch (ord_prom['type']) { + case 0: + order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 + order_prom_amount = (o_condition - order_m).toFixed(2); + break; + case 1: + //-- 如果有优惠促销倍减的时候 -- + var bs = 1; + if (ord_prom.is_bz) { + bs = Math.floor(o_condition / ord_prom.money); + } + + order_m = o_condition - bs * ord_prom['expression'];//满额优惠金额 + order_prom_amount = ord_prom['expression']; + break; + } + } + } + //--订单优惠的显示-- + var order_prom_txt1 = "formData.order_prom_id"; + var order_prom_txt2 = "formData.order_prom_amount"; + if (order_prom_id > 0) { + th.setData({ [order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount }) + } else { + th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) + } + //预存金额使用参与计算 - if(th.data.udata && th.data.udata.Balance>0 && order_m*1>0){ - if(!th.data.bn_goods.keyid){ + 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 => { + 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){ + 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' + if (resData && resData[0]) { + let keyid = resData[0].keyid + let txt = 'bn_goods.keyid' th.setData({ - [txt]:keyid + [txt]: keyid }) } } } }) } - if(th.data.bn_goods.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.goods_price, - goods_num:th.data.bn_goods.goods_num, + order_amount: order_m, + goods: [{ + goods_sn: th.data.bn_goods.goods_sn, + goods_price: th.data.bn_goods.goods_price, + goods_num: th.data.bn_goods.goods_num, }], - sto:{ - keyid:th.data.bn_goods.keyid + sto: { + keyid: th.data.bn_goods.keyid } }) - if(!good.yck_off){ - good.yck_off=cart_yc.yck_off + 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 + 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, + [yct1]: good.yck_off, + [yct2]: good.yck, + [yct3]: good.yckid, + [yct4]: good.pre_json, }) - - if(good.yck_off && good.yck_off==2 ){ + + 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){ + let yck = 0 + if (order_amount * 1 > 0) { order_m = order_amount; // all_prestore+=parseFloat(good.yck); - yck=parseFloat(good.yck) - }else{ + yck = parseFloat(good.yck) + } else { // all_prestore+=order_m*1 - yck=parseFloat(order_m) - order_m=0 + 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], + [atxt10]: yck, + [atxt11]: [good.pre_json], + [atxt12]: [yck], }) // formData.prestore // all_yck_arr.push(yck) //真实预存款抵扣金额 @@ -3015,7 +3058,7 @@ Page({ // all_prestore = parseFloat(all_prestore); //真实预存款抵扣金额总和 } } - }else{ + } else { let yct1 = 'bn_goods.yck_off'; let yct2 = 'bn_goods.yck'; let yct3 = 'bn_goods.yckid'; @@ -3024,51 +3067,15 @@ Page({ let atxt11 = "formData.pre_json"; //预存json let atxt12 = "formData.all_yck_arr"; //预存真实抵扣列表 th.setData({ - [yct2]:0, - [yct3]:'', - [yct4]:'', - [atxt10]:0, - [atxt11]:'', - [atxt12]:[], + [yct2]: 0, + [yct3]: '', + [yct4]: '', + [atxt10]: 0, + [atxt11]: '', + [atxt12]: [], }) } - if (o_condition > 0 && th.data.bn_is_order_yh) { - - th.check_is_order_prom(o_condition, async function () { - var order_prom_amount = 0; - var order_prom_id = 0; - if (th.data.order_prom[th.data.bn_pick] && th.data.order_prom[th.data.bn_pick]['money'] <= o_condition) { - var ord_prom = th.data.order_prom[th.data.bn_pick]; - //么有使用券,或者活动没有限制使用优惠券 - if (coupon_price <= 0 || !ord_prom.is_xz_yh) { - order_prom_id = ord_prom['id']; - switch (ord_prom['type']) { - case 0: - order_m = Math.round(o_condition * ord_prom['expression']) / 100;//满额打折 - order_prom_amount = (o_condition - order_m).toFixed(2); - break; - case 1: - //-- 如果有优惠促销倍减的时候 -- - var bs = 1; - if (ord_prom.is_bz) { - bs = Math.floor(o_condition / ord_prom.money); - } - - order_m = o_condition - bs * ord_prom['expression'];//满额优惠金额 - order_prom_amount = ord_prom['expression']; - break; - } - } - } - //--订单优惠的显示-- - var order_prom_txt1 = "formData.order_prom_id"; - var order_prom_txt2 = "formData.order_prom_amount"; - if (order_prom_id > 0) { - th.setData({ [order_prom_txt1]: order_prom_id, [order_prom_txt2]: order_prom_amount }) - } else { - th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) - } //判断是否同城配送,而且没有调用过 if (th.data.bn_exp_type == 2 && th.data.user_addr) { @@ -3163,7 +3170,6 @@ Page({ } - var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); //--------------如果使用余额--------------------- if (th.data.bn_use_money == 1) { @@ -3218,6 +3224,105 @@ Page({ var order_prom_txt2 = "formData.order_prom_amount"; th.setData({ [order_prom_txt1]: 0, [order_prom_txt2]: 0 }) + //预存金额使用参与计算 + 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.goods_price, + goods_num: 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); //真实预存款抵扣金额总和 + } + } + } 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]: [], + }) + } + //判断是否同城配送,而且没有调用过 if (th.data.bn_exp_type == 2 && th.data.user_addr) { var gd_w = 0, lon = 0, lat = 0; @@ -3310,7 +3415,9 @@ Page({ th.setData({ [txt4]: th.data.bn_goods.use_commission }) } + var amoney = parseFloat(th.data.userinfo.user_money - th.data.txmon - th.data.userinfo.frozen_money); + //--------------如果使用余额--------------------- if (th.data.bn_use_money == 1) { if (amoney > parseFloat(order_m)) { @@ -3426,95 +3533,95 @@ Page({ } }, - async submit_func(){ + async submit_func() { let cartlist = this.data.cartlist || []; - let allarr=[] - let strarr=[] - let cbarr=[] - let cbarr_id=[] - - if(cartlist && cartlist.length>0){ - for (let index = 0,length=cartlist.length; index < length; index++) { - let item=cartlist[index].goods - for (let i = 0,leng=item.length; i < leng; i++) { - if (item[i].prom_type==7) { - strarr.push(item[i]) - } - if (item[i].prom_type !=7 && item[i].goods_prom_type==7) { - allarr.push(item[i]) - } + let allarr = [] + let strarr = [] + let cbarr = [] + let cbarr_id = [] + + if (cartlist && cartlist.length > 0) { + for (let index = 0, length = cartlist.length; index < length; index++) { + let item = cartlist[index].goods + for (let i = 0, leng = item.length; i < leng; i++) { + if (item[i].prom_type == 7) { + strarr.push(item[i]) + } + if (item[i].prom_type != 7 && item[i].goods_prom_type == 7) { + allarr.push(item[i]) + } } } } - if(strarr.length>0){ - if(allarr.length>0){ - allarr.map(item=>{ - let aitem = strarr.find(ite=>item.goods_prom_id==ite.goods_prom_id) - if(aitem){ + if (strarr.length > 0) { + if (allarr.length > 0) { + allarr.map(item => { + let aitem = strarr.find(ite => item.goods_prom_id == ite.goods_prom_id) + if (aitem) { strarr.push(item) } }) } - for (let j = 0,length=strarr.length; j < length; j++) { + for (let j = 0, length = strarr.length; j < length; j++) { let userbuynum = await this.getUserBuyPromNum(strarr[j].goods_prom_id) - if (strarr[j].act.buy_limit !=0 && userbuynum >=strarr[j].act.buy_limit) { + if (strarr[j].act.buy_limit != 0 && userbuynum >= strarr[j].act.buy_limit) { cbarr.push(strarr[j].goods_name) cbarr_id.push(strarr[j].id) } } - if(cbarr.length>0){ + if (cbarr.length > 0) { let str = cbarr.join() wx.showModal({ title: '提示', content: `${str}超出组合购限购次数,将以普通商品购买`, - success: async (res)=>{ + success: async (res) => { if (res.confirm) { - //-- 数据的更新 -- - for (let k = 0,length=cbarr_id.length; k < length; k++) { - let data = { - id: cbarr_id[k], - selected: 1, - store_id: oo.stoid, - prom_type:0, - prom_id:0 - }; - await getApp().request.promisePut("/api/weshop/cart/update", { - data:data - }); - } - - wx.reLaunch({ - url: '/packageE/pages/cart/cart2/cart2', - }) + //-- 数据的更新 -- + for (let k = 0, length = cbarr_id.length; k < length; k++) { + let data = { + id: cbarr_id[k], + selected: 1, + store_id: oo.stoid, + prom_type: 0, + prom_id: 0 + }; + await getApp().request.promisePut("/api/weshop/cart/update", { + data: data + }); + } + + wx.reLaunch({ + url: '/packageE/pages/cart/cart2/cart2', + }) } else if (res.cancel) { console.log('用户点击取消') this.setData({ - submit:0 + submit: 0 }) } } }) - }else{ + } else { this.submit_func2() } - }else{ + } else { this.submit_func2() } }, //获取用户活动参与次数 - async getUserBuyPromNum(prom_id){ + async getUserBuyPromNum(prom_id) { var userInfo = getApp().globalData.userInfo; var url = `/api/weshop/ordergoods/getUserBuyPromNum?store_id=${os.stoid}&user_id=${userInfo.user_id}&prom_type=7&prom_id=${prom_id}`; let res = await getApp().request.promiseGet(url, { - data:{} + data: {} }); - let userbuynum=0 - if(res.data.code==0 && res.data.data){ - userbuynum=res.data.data.userbuynum + let userbuynum = 0 + if (res.data.code == 0 && res.data.data) { + userbuynum = res.data.data.userbuynum } return userbuynum }, @@ -3525,9 +3632,9 @@ Page({ if (this.data.is_summit_ing) return false; this.data.is_summit_ing = 1; - function is_ok_wu_arr(index,name){ - if(!th.data.wu_arr) return ''; - if(!th.data.wu_arr[index]) return ''; + function is_ok_wu_arr(index, name) { + if (!th.data.wu_arr) return ''; + if (!th.data.wu_arr[index]) return ''; return th.data.wu_arr[name]; } @@ -3562,8 +3669,8 @@ Page({ //'mobile': th.data.userinfo.mobile, 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, 'email': '', - 'shipping_code': th.data.bn_exp_type == 1 ? 0 : is_ok_wu_arr(th.data.index,'code'), - 'shipping_name': th.data.bn_exp_type == 1 ? '' : is_ok_wu_arr(th.data.index,'name'), + 'shipping_code': th.data.bn_exp_type == 1 ? 0 : is_ok_wu_arr(th.data.index, 'code'), + 'shipping_name': th.data.bn_exp_type == 1 ? '' : is_ok_wu_arr(th.data.index, 'name'), 'invoice_title': '', 'goods_price': parseFloat(th.data.formData.all_price).toFixed(2), //商品总价 'shipping_price': parseFloat(th.data.formData.shipping_price).toFixed(2), //物流金额 @@ -3829,7 +3936,7 @@ Page({ for (var i = 0; i < order_prom_list_cart.length; i++) { var t_item = order_prom_list_cart[i]; var item = { - "keyid":t_item.sto ? t_item.sto.keyid : '', + "keyid": t_item.sto ? t_item.sto.keyid : '', 'user_id': to.globalData.user_id, 'consignee': addr == null ? th.data.userinfo.mobile : addr.consignee, 'province': addr == null ? 0 : addr.province, @@ -3840,8 +3947,8 @@ Page({ 'more_address': addr == null ? "" : addr.more_address, 'mobile': addr == null ? th.data.userinfo.mobile : addr.mobile, 'email': '', - 'shipping_code': th.data.is_all_zt == 1 ? 0 : is_ok_wu_arr(t_item.wind,'code'), - 'shipping_name': th.data.is_all_zt == 1 ? '' : is_ok_wu_arr(t_item.wind,'name'), + 'shipping_code': th.data.is_all_zt == 1 ? 0 : is_ok_wu_arr(t_item.wind, 'code'), + 'shipping_name': th.data.is_all_zt == 1 ? '' : is_ok_wu_arr(t_item.wind, 'name'), 'invoice_title': '', 'goods_price': parseFloat(t_item.goods_price).toFixed(2), //商品总价 'shipping_price': parseFloat(t_item.shipping_price).toFixed(2), //物流金额 @@ -4177,26 +4284,26 @@ Page({ if (pdata.length == 0) return; //如果有使用预存,要处理 - if (th.data.formData && th.data.formData.prestore*1 > 0) { + 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]) : '' + 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]) : '' }) } - - - if(!pdata.keyid && th.data.bn_goods){ - pdata.map(ite=>{ - ite.keyid=th.data.bn_goods.keyid + + + 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: "加载中" }); th.setData({ submit: 1, }) wx.request({ @@ -4208,7 +4315,7 @@ Page({ },// 设置请求的 header success: function (res) { wx.hideLoading(); - + if (res.statusCode == 200) { var data = res.data; if (data.code == 0) { @@ -4226,28 +4333,28 @@ Page({ pdata.forEach(function (em, ind) { order_amount += parseFloat(em.order_amount); }) - + //要进行判断,如果是用微信支付,就要跳转到支付界面 if (order_amount > 0) { th.setData({ isclose: 0 }); //void e.jumpToCart4({ // order_sn: data.data, //}, 1); - + util_pay.pay(data.data, async function () { //app.my_warnning("支付成功",1,th); //setTimeout(function () { - if (th.data.formData && th.data.formData.prestore*1 > 0) { //有使用预存的处理 - let length=pdata.length - wx.showLoading({ title: "加载中",mask:true }); + if (th.data.formData && th.data.formData.prestore * 1 > 0) { //有使用预存的处理 + let length = pdata.length + wx.showLoading({ title: "加载中", mask: true }); for (let yi = 0; yi < length; yi++) { - await th.setAdvancesum(pdata[yi],data.data) + await th.setAdvancesum(pdata[yi], data.data) } wx.hideLoading() wx.redirectTo({ url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data }) - }else{ + } else { wx.redirectTo({ url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data }) @@ -4279,27 +4386,27 @@ Page({ a.post("/api/weshop/order/pay/createOrder", { data: dd, success: async function (t) { - console.log(t); + console.log(t); if (t.data.code == 0) { //app.my_warnning("支付成功",1,th); //setTimeout(function () { - if (th.data.formData && th.data.formData.prestore*1 > 0) { //有使用预存的处理 - let length=pdata.length - wx.showLoading({ title: "加载中",mask:true }); - for (let yi = 0; yi < length; yi++) { - await th.setAdvancesum(pdata[yi],data.data) - } - wx.hideLoading() - th.setData({ isclose: 0 }); - wx.redirectTo({ - url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, - }) - }else{ - th.setData({ isclose: 0 }); - wx.redirectTo({ - url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, - }) + if (th.data.formData && th.data.formData.prestore * 1 > 0) { //有使用预存的处理 + let length = pdata.length + wx.showLoading({ title: "加载中", mask: true }); + for (let yi = 0; yi < length; yi++) { + await th.setAdvancesum(pdata[yi], data.data) } + wx.hideLoading() + th.setData({ isclose: 0 }); + wx.redirectTo({ + url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, + }) + } else { + th.setData({ isclose: 0 }); + wx.redirectTo({ + url: "/pages/payment/pay_success/pay_success?type=2&order_sn=" + data.data, + }) + } //}, 1000) } @@ -5114,7 +5221,7 @@ Page({ if (!arr) arr = []; //如果系统有限制使用优惠券 if (th.data.is_close_quan) return false; - + //------------开始计算使用优惠券相关------------ for (var ind in arr) { var ep = arr[ind]; @@ -5262,7 +5369,7 @@ Page({ }) } } - + //如果是搭配购的立即购买的时候 if (th.data.is_b_now) { if (arr && arr.length > 0) {