diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index 42be342..7b68ac4 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -1755,7 +1755,7 @@ Page({ //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- - checkAll: function () { + checkAll: async function () { var e = this, th = this, dda = e.data.requestData, @@ -1780,7 +1780,7 @@ Page({ var offline_price = 0; var offline_num = 0; th.data.in_zhact_gdmap = {}; - + var pro_off=false if (dda && dda.length > 0) { for (var i = 0; i < dda.length; i++) { @@ -1823,24 +1823,51 @@ Page({ //加入阶梯促销计算 if (obj.prom_type == 10) ladder_calc.add_ladder_prom(dda, i, obj); - e.setData({ - - [txt]: !e.data.checkAllToggle, - }) - - if (!e.data.checkAllToggle) { - //组合购的金额要另外算 - if (item[j].prom_type != 7 && item[j].prom_type != 10) - tfeel += item[j].goods_num * item[j].goods_price; - t_num += item[j].goods_num; + //多门店,多优惠次数控制 + let pro_off1=false + if (!e.data.checkAllToggle) { + //判断多店优惠促销次数控制 + if (th.data.requestData.length>1) { + if(obj.prom_type==3){ + + pro_off1=await th.multiple_stores_pro(i,j) + } + } } + + if (pro_off1) { + pro_off=true + let txt1 = "requestData[" + i + "].pro_off"; + e.setData({ + [txt1]: true, + [txt]: 0, + }); - //-- 如果这个商品是线下取价的时候 -- - if (item[j].is_offline && item[j].prom_type != 7) { - offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num; - offline_num += item[j].goods_num; + wx.showToast({ + title: '已超出优惠促销次数', + icon: 'none', + }); + + }else{ + e.setData({ + [txt]: !e.data.checkAllToggle, + }) + + if (!e.data.checkAllToggle) { + //组合购的金额要另外算 + if (item[j].prom_type != 7 && item[j].prom_type != 10) + tfeel += item[j].goods_num * item[j].goods_price; + t_num += item[j].goods_num; + } + + //-- 如果这个商品是线下取价的时候 -- + if (item[j].is_offline && item[j].prom_type != 7) { + offline_price += (item[j].goods_price - item[j].offline_price) * item[j].goods_num; + offline_num += item[j].goods_num; + } } + } } @@ -1852,15 +1879,23 @@ Page({ }); return false; } else { - + for (var i = 0; i < dda.length; i++) { - if (!e.data.checkAllToggle) { - var txt = "requestData[" + i + "].selected"; - e.setData({ - [txt]: 1, - }); - } + // if (!e.data.checkAllToggle) { + //多门店优惠促销次数控制 + if(dda[i].pro_off){ + var txt = "requestData[" + i + "].selected"; + e.setData({ + [txt]: 0, + }); + }else{ + var txt = "requestData[" + i + "].selected"; + e.setData({ + [txt]: 1, + }); + } + // } //总的价格,把组合商品的价格拿出来 var zh_calc_res = zh_calc.calculate_zh(dda, i, this); @@ -1893,9 +1928,18 @@ Page({ } } } - + //多门店优惠次数控制 + if (pro_off) { + e.setData({ + checkAllToggle: false, + }); + }else{ + e.setData({ + checkAllToggle: !e.data.checkAllToggle, + }); + } e.setData({ - checkAllToggle: !e.data.checkAllToggle, + // checkAllToggle: !e.data.checkAllToggle, total_fee: tfeel.toFixed(2), total_num: t_num, }); @@ -1992,7 +2036,10 @@ Page({ return false; } + let pro_off=false + for (var i = 0; i < item.length; i++) { + let pro_off1=false var txt = "requestData[" + pitems + "].goods[" + i + "].selected"; var gd_info = item[i]; @@ -2036,16 +2083,37 @@ Page({ } - - + //判断多店优惠促销次数控制 + if (th.data.requestData.length>1) { + if(gd_info.prom_type==3){ + pro_off1=await th.multiple_stores_pro(pitems,i) + } + } + if (pro_off1) { + pro_off=true + e.setData({ + [txt]: 0, + }); + }else{ + e.setData({ + [txt]: Number(!sele), + }); + } + } + var txt = "requestData[" + pitems + "].selected"; + if (pro_off) { + wx.showToast({ + title: '已超出优惠促销次数', + icon: 'none', + }); + e.setData({ + [txt]: 0, + }); + }else{ e.setData({ [txt]: Number(!sele), }); } - var txt = "requestData[" + pitems + "].selected"; - e.setData({ - [txt]: Number(!sele), - }); e.data.duo_zp_num_arr = {}; if (sele) { @@ -2057,6 +2125,41 @@ Page({ } this.doCheckAll(); }, + + //判断多门店,优惠促销次数的控制 + async multiple_stores_pro(pitems,item){ + let a = this.data.requestData[pitems].goods[item]; + let th=this + let arr_pro=[] + th.data.requestData.map((item,i)=>{ + if (i !=pitems) { + arr_pro.push(item) + } + }) + let prom=null + await getApp().request.promiseGet("/api/weshop/promgoods/get/" + os.stoid + "/" + a.prom_id, {}).then(res => { + if (res.data.code == 0) { + prom = res.data.data; + } + }) + let user_pre_buynum = await this.getUserBuyPromNum_pre(a.prom_id) + let action_num=user_pre_buynum+1; + arr_pro.map(item=>{ + item.goods.map(ite=>{ + if(ite.prom_type==3 && ite.prom_id==a.prom_id && !ite.is_gift && ite.selected){ + action_num+=1; + } + }) + }) + if (prom && action_num>prom.limit_num) { + return true + }else{ + return false + } + }, + + + //---------------单选,也要判断门店的配送方式是否一致-------------- check_th_item: async function (t) { var e = this, th = this, @@ -2156,7 +2259,21 @@ Page({ } } + let pro_off=false + //判断多店优惠促销次数控制 + if (th.data.requestData.length>1) { + if(a.prom_type==3 && !a.selected){ + pro_off=await th.multiple_stores_pro(pitems,item) + } + } + if (pro_off) { + wx.showToast({ + title: '已超出优惠促销次数', + icon: 'none', + }); + return false; + } e.setData({