diff --git a/pages/cart/cart/cart.js b/pages/cart/cart/cart.js index d94f27d..56a6338 100644 --- a/pages/cart/cart/cart.js +++ b/pages/cart/cart/cart.js @@ -66,6 +66,8 @@ Page({ //优惠促销活动的集合 yhcx_act_map: {}, + //-- 活动的购买数量的map -- + act_buy_map:{} }, @@ -645,7 +647,7 @@ Page({ } //-- 如果有优惠促销,和阶梯促销,要看下有没有组合购,搭配购,看一下优惠促销和阶梯促销谁是指定商品参与的 -- - if (item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7 || item.prom_type == 10) { + if (item.prom_type == 0 || item.prom_type == 3 || item.prom_type == 5 || item.prom_type == 7 || item.prom_type == 10) { var c_prom_type = 0; var c_prom_id = 0; @@ -1190,24 +1192,27 @@ Page({ // if (this.data.btn_click) { // return false; // } - this.data.btn_click = 1; - var a = t.currentTarget.dataset.item; - var b = t.currentTarget.dataset.pitems; - a = this.data.requestData[b].goods[a]; - var e = a; - var th = this; + setTimeout(() => { + if (this.data.up_dating == 1) return false; + this.data.btn_click = 1; + var a = t.currentTarget.dataset.item; + var b = t.currentTarget.dataset.pitems; + a = this.data.requestData[b].goods[a]; + var e = a; + var th = this; - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { - //this.clear_req(); - var s = { - goods_num: a, - goods_id: e.goods_id, - id: e.id, - store_id: oo.stoid - }; - th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); - } + if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) { + //this.clear_req(); + var s = { + goods_num: a, + goods_id: e.goods_id, + id: e.id, + store_id: oo.stoid + }; + th.postCardList(s, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems); + } + },200) }, //-------------加减数量的时候,要把show_can_cx清理掉, @@ -2632,11 +2637,13 @@ Page({ //console.log("累计:"+tfeel); //-- 如果价格有发生变动,要更新界面中的价格显示 -- - if(item[c].goods_price!=th.data.dp_car[a].goods[c].goods_price){ - let txt='requestData['+a+'].goods['+c+'].goods_price'; - th.setData({ - [txt]:item[c].goods_price - }) + if(th.data.dp_car && th.data.dp_car[a] && th.data.dp_car[a].goods) { + if (item[c].goods_price != th.data.dp_car[a].goods[c].goods_price) { + let txt = 'requestData[' + a + '].goods[' + c + '].goods_price'; + th.setData({ + [txt]: item[c].goods_price + }) + } } } @@ -3572,7 +3579,8 @@ Page({ //-- 如果是商品的结算 -- if (check_is_goods_selected) { var glist = []; //商品数组 - var map = new Map(); //使用map值键进行运算 + var map = new Map(); //使用map值键进行运算 + this.data.act_buy_map={}; //使用map值键进行运算活动商品的购买数量 var g_arr = new Array(); //已选的商品列表 var user_id = getApp().globalData.user_id; @@ -3612,7 +3620,7 @@ Page({ //-- 判断门店配送是不是匹配 -- if(_pick && _pick.distr_type!=0 && i_arr[j].distr_type!=0 && _pick.distr_type!= i_arr[j].distr_type){ getApp().confirmBox(i_arr[j].goods_name + "配送方式和门店不一致"); - wx.hideLoading(); + th.clear_checkouting(); return false; } @@ -3653,7 +3661,7 @@ Page({ var p_can_by=fd1.act.goodslimit-fd1.act.goodslimited; if(i_arr[j].goods_num+ky_n>p_can_by){ getApp().confirmBox(i_arr[j].goods_name + "超出活动限购数量"+fd1.act.goodslimit+"件"); - wx.hideLoading(); + th.clear_checkouting(); return false; } } @@ -3736,9 +3744,18 @@ Page({ } else { map.set(i_arr[j].goods_id + "", i_arr[j].goods_num); } + + var ky_0=i_arr[j].prom_type + "-"+i_arr[j].prom_id; + if(th.data.act_buy_map[ky_0]){ + var n11 = th.data.act_buy_map[ky_0]; + var n22 = parseInt(i_arr[j].goods_num) + parseInt(num11); + th.data.act_buy_map[ky_0]=n22 + }else{ + th.data.act_buy_map[ky_0]=i_arr[j].goods_num + } + } //glist += i_arr[j].goods_id + ","; - if(!i_arr[j].is_gift){ var et= {"prom_type":i_arr[j].prom_type,"prom_id":i_arr[j].prom_id,"goods_id":i_arr[j].goods_id}; glist.push(et); @@ -3993,7 +4010,6 @@ Page({ //进行到下一步 th.cart_buy_next(glist,map,g_arr,checkArr7) - } else if (res.cancel) { th.clear_checkouting(); console.log('用户点击取消') @@ -4133,6 +4149,11 @@ Page({ var num = map.get(val.goods_id + ""); var ky=val.goods_id + "-"+val.prom_type + "-"+val.prom_id; + var ky2=val.prom_type + "-"+val.prom_id; + + var num = map.get(val.goods_id + ""); + var num2 = th.data.act_buy_map[ky2]; + var buyed = map_limit.get(ky); var cur_buyed=act_buyed_map[ky] @@ -4184,7 +4205,7 @@ Page({ break; } - if (num + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0) { + if (num2 + buyed.promgoodsbuynum > val.buy_limit && val.buy_limit > 0) { isok = 0; gname = val.goods_name; err="超出活动限购"; @@ -4205,7 +4226,7 @@ Page({ break; } } else { - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0) { + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price && val.prom_price > 0 && (g_arr[i].prom_type==1 && g_arr[i].prom_type==2) ) { isok = 0; gname = val.goods_name; err="商品价格已经变化"; @@ -4466,7 +4487,12 @@ Page({ //用来存销赠品的--2024-2-1 let cart_zp=this.data.cart_zp; //要清空一下门店下的赠品 - if(cart_zp[list.pid]){ + if(cart_zp[list.pid] && cart_zp[list.pid].goods && cart_zp[list.pid].goods.length){ + let ids = cart_zp[list.pid].goods.map(obj => obj.id); + //-- 批量把赠品删掉 -- + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' +getApp().globalData.user_id + '/' + ids.join(','); + getApp().request.delete(url, {}); + cart_zp[list.pid]={}; } //主要判断有没有促销活动 @@ -4820,6 +4846,22 @@ Page({ this.data.duo_zp_num_arr = {}; //用来存销赠品的--2024-2-1 let cart_zp=this.data.cart_zp; + + if(cart_zp){ + let ids=[]; + for (const Ky in cart_zp) { + if(cart_zp[Ky].goods && cart_zp[Ky].goods.length) { + let ids0 = cart_zp[Ky].goods.map(obj => obj.id); + ids = [...ids, ...ids0]; + } + } + //调用接口把赠品删除 + if(ids.length>0){ + //-- 批量把赠品删掉 -- + var url = '/api/weshop/cart/delIds/' + oo.stoid + '/' + getApp().globalData.user_id + '/' + ids.join(','); + getApp().request.delete(url, {}); + } + } //要清空一下赠品数组 cart_zp={};