diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index 9744f81..79532c9 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -2133,6 +2133,8 @@ Page({ success: async function (tt) { if (tt.data.code == 0) { //t.data.data.shop_price = tt.data.data.prom_price; + + gd.shop_price_y=gd.shop_price; gd.shop_price=t.data.data.shop_price = tt.data.data.prom_user_price; th.data.ckeck_quan_price = 0; @@ -2181,6 +2183,9 @@ Page({ } + //用深拷贝把商品缓存起来,方便后面使用 + th.data.old_bn_goods=ut.deep_cp(gd); + th.setData({ bn_goods: gd, bn_pickname: gg.pick_name, @@ -2209,6 +2214,7 @@ Page({ ut.get_active_info(2,gd.prom_id,os.stoid,function(e){ //t.data.data.shop_price = tt.data.data.prom_price; + gd.shop_price_y=gd.shop_price; gd.shop_price=t.data.data.shop_price = tt.data.data.price; t.data.data.fir_rate = tt.data.data.fir_rate; @@ -2248,6 +2254,10 @@ Page({ gd.is_xz_yh = 1; } + + //用深拷贝把商品缓存起来,方便后面使用 + th.data.old_bn_goods=ut.deep_cp(gd); + th.setData({ bn_goods: gd, bn_pickname: gg.pick_name, @@ -3147,22 +3157,17 @@ Page({ var whsle_goods_price = 0; - var whsle_shop_price = 0; - var whsle_market_price = 0; - var no_zh_all_quan_num=0; //不是组合购商品的使用的优惠券综合 //--------循环计算总价----------- for (var jc = 0; jc < item.length; jc++) { if (item[jc].prom_type == 0) { //如果item的prom_type==0,没有如果活动的时候 - th.get_order_prom_map_ck(item,pickid); + th.get_order_prom_map_ck(item[jc],pickid); } if (item[jc].whsle_id > 0) { whsle_goods_price += item[jc].goods_price * item[jc].goods_num; - whsle_shop_price += item[jc].shop_price * item[jc].goods_num; - whsle_market_price += item[jc].goods_market_price * item[jc].goods_num; } var is_no_zh = 0; @@ -4047,15 +4052,22 @@ Page({ var ord_prom = null; var is_ord_prom_post = 0; - if (condition > 0 && th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { - await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { - data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } - }).then(res => { - if (res.data.code == 0) { - var data = res.data.data; - ord_prom = data; - } - }) + //一件代发商品不参与订单优惠, 本身商品的活动也有要不要参与优惠促销的设置bn_is_order_yh + if (th.data.bn_is_order_yh && !th.data.bn_goods.whsle_id) { + + th.set_by_now_ord_prom(th.data.bn_goods); + th.data.order_prom_map_ck[bn_pick].goods_price_all=condition; + + // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { + // data: { store_id: os.stoid, orderAmount: condition, user_id: getApp().globalData.user_id } + // }).then(res => { + // if (res.data.code == 0) { + // var data = res.data.data; + // ord_prom = data; + // } + // }) + ord_prom=await th.get_cur_ord_prom(bn_pick); + if (ord_prom && ord_prom.is_post_temp) { is_ord_prom_post = 1; } @@ -8492,10 +8504,13 @@ Page({ var cx_prom_group=this.data.cartlist[idx].show_can_cx[gd_key].act_arr; + //-- 切换活动的时候,让订单促销参与不选中 -- + let tt_wd="can_use_ord_prom["+pk+"]"; th.setData({ send_lb:{}, month_lb:{}, - send_gf:{} + send_gf:{}, + [tt_wd]:0 }) th.data.prom_goods_map={}; @@ -8704,6 +8719,9 @@ Page({ //--- 不参与优惠促销的开关 --- no_cj_prom: function (e) { + //避免重复点击 + if(this.data.submit) return false; + this.setData({ submit: 1,same_ok:1 }); this.setData({ send_lb:{}, @@ -8798,6 +8816,9 @@ Page({ //---订单促销累计的数据结构的构建,购物车计算流程的那一部分 get_order_prom_map_ck(item,pickid) { + //赠品不计算 + if(item.is_gift) return false; + var order_prom_map_ck= this.data.order_prom_map_ck; if(!order_prom_map_ck[pickid]){ order_prom_map_ck[pickid]={ @@ -8822,6 +8843,25 @@ Page({ pk_ord_map.goodsList.push(ite); }, + + //-- 秒杀和团购使用 -- + set_by_now_ord_prom(item){ + let pickid=this.data.bn_pick; + let order_prom_map_ck= this.data.order_prom_map_ck; + order_prom_map_ck[pickid]={ + shop_price_all:0, //手店价的累计 + market_price_all:0, //市场价的累计 + goods_price_all:0, //实收价的累计 + no_ord_price:0, //要累计上不参与订单促销的金额 + goodsList:[], + } + + let pk_ord_map=order_prom_map_ck[pickid]; + pk_ord_map.shop_price_all += item.shop_price_y * item.buynum; + pk_ord_map.market_price_all += item.goods_market_price * item.buynum; + + }, + //重置订单促销判断累计 re_set_order_prom_map_ck() { this.data.order_prom_map_ck = {} @@ -8855,6 +8895,11 @@ Page({ switch (ord_prom.discount_field) { //实收价的时候 case 0: + //要先还原 + this.setData({ + [txt1]: 0 + }); + if (ord_prom.money > order_prom_map_ck.goods_price_all){ return null; } @@ -8862,6 +8907,10 @@ Page({ //手店价的时候 case 1: if (ord_prom.money > order_prom_map_ck.shop_price_all){ + //要先还原 + this.setData({ + [txt1]: 0 + }); return null; } //要显示订单促销使用的按钮 @@ -8872,6 +8921,10 @@ Page({ //市场价的时候 case 2: if (ord_prom.money > order_prom_map_ck.market_price_all){ + //要先还原 + this.setData({ + [txt1]: 0 + }); return null; } //要显示订单促销使用的按钮 @@ -8889,6 +8942,10 @@ Page({ //设置能够参与订单促销 set_can_use_ord_prom: function (e) { + + if(this.data.submit) return false; + this.setData({ submit: 1,same_ok:1 }); + let pickid = e.currentTarget.dataset.pd; let txt = 'can_use_ord_prom[' + pickid + ']'; let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; @@ -8897,7 +8954,6 @@ Page({ }) //购物车进行还原,一下数据的清理的必须的 - let carr = ut.deep_cp(this.data.cartlist_old); this.setData({ send_lb: {}, month_lb: {}, @@ -8918,8 +8974,54 @@ Page({ //原始数据要有深拷贝不能有地址的牵连 this.data.cartlist_y = JSON.parse(JSON.stringify(goods)) + //重新调用cart_next,进行下一步计算 + wx.showLoading({ + title: "处理中.", + mark:true + }) //-- 重新计算一下价格 -- this.get_cart_next(null, 1, {prom_type: 0, prom_id: 0}); + }, + + //立即购买的时候,点击订单促销的参与 + set_can_use_ord_prom_now:function (e){ + + if(this.data.submit) return false; + this.setData({ submit: 1,same_ok:1 }); + + let pickid=this.data.bn_pick; + let txt = 'can_use_ord_prom[' + pickid + ']'; + let can_use = this.data.can_use_ord_prom[pickid] ? this.data.can_use_ord_prom[pickid] : 0; + this.setData({ + [txt]: !can_use + }) + + let th=this; + let good=th.data.bn_goods; + + //如果有要参与订单促销的按钮点击后,要修改商品的价格 + if(th.data.can_use_ord_prom[pickid]){ + let discount_field=th.data.show_ord_prom[pickid]; + switch (discount_field){ + case 1: + good.shop_price=good.shop_price_y; + break; + case 2: + good.shop_price=good.market_price; + break; + } + }else{ + good=ut.deep_cp(th.data.old_bn_goods); + } + + th.setData({ + bn_goods:good + }) + wx.showLoading({ + title: "处理中.", + mark:true + }) + th.calculatePrice2() } diff --git a/packageE/pages/cart/cart2/cart2.wxml b/packageE/pages/cart/cart2/cart2.wxml index 933a0df..c61ad0f 100644 --- a/packageE/pages/cart/cart2/cart2.wxml +++ b/packageE/pages/cart/cart2/cart2.wxml @@ -693,6 +693,14 @@ {{order.store_prom}} + + + + + 参与订单促销 + + +