diff --git a/packageE/pages/cart/cart2/cart2.js b/packageE/pages/cart/cart2/cart2.js index 043f3ea..71c4829 100644 --- a/packageE/pages/cart/cart2/cart2.js +++ b/packageE/pages/cart/cart2/cart2.js @@ -182,11 +182,10 @@ Page({ //-- 订单促销判断积累 ---2024-2-20 order_prom_map_ck: {}, - //能不能使用订单促销 can_use_ord_prom:{}, + //存储订单促销的取价,按照门店进行索引 show_ord_prom:{}, - join_ord_prom_goodslist:{} }, @@ -954,7 +953,8 @@ Page({ // } // }) - th.data.cartlist_y =JSON.parse(JSON.stringify(carr)); //存储原始购物车列表 + th.data.cartlist_y =JSON.parse(JSON.stringify(carr)); //存储原始购物车列表,这个数据还会收到污染 + th.data.cartlist_old =JSON.parse(JSON.stringify(carr)); //存储原始购物车列表 wx.showLoading(); th.get_cart_next(carr); @@ -1043,16 +1043,25 @@ Page({ let item1 = carr[i]; - //如果有户有点击参与订单促销的话,那么可以参与订单促销的商品的活动都要清理成0 - if(this.data.can_use_ord_prom[item.pick_id]){ + //如果有户有点击参与订单促销的话,那么可以参与订单促销的商品的活动都要清理成0,订单促销在使用过程中的重要方法 + if(this.data.can_use_ord_prom[item1.pick_id]){ //从订单促销的order_prom_map_ck数据结构中获取到可以参与的商品列表 - let gdlist=this.data.order_prom_map_ck[item.pick_id]?this.data.order_prom_map_ck[item.pick_id].goodsList:null; + let gdlist=this.data.order_prom_map_ck[item1.pick_id]?this.data.order_prom_map_ck[item1.pick_id].goodsList:null; if(gdlist && gdlist.length){ //查找商品item1有没有在gdlist中,就要把商品的prom_type清理0 let f_idx=gdlist.findIndex(function (ele) { return ele.id == item1.id }); if (f_idx!=-1){ + //开始变换商品的价格显示 + switch (th.data.show_ord_prom[item1.pick_id]){ + case 1: + carr[i].goods_price=item1.shop_price; + break; + case 2: + carr[i].goods_price=item1.goods_market_price; + break; + } carr[i].prom_type=0; continue; //要跳过 } @@ -1313,11 +1322,8 @@ Page({ if (ie.exp_type == 0 || ie.exp_type == 2) is_a_zt= 0; } th.setData({ is_all_zt: is_a_zt}); - } - - var cart_commission = 0; //-- 循环计算一下线下取价 -- for (var k = 0; k < arr.length; k++) { @@ -3197,8 +3203,6 @@ Page({ } } - //-- 商品是不是没有参与优惠促销的话 -- - th.ch_no_order_prom_map_ck(item[jc],pickid) } @@ -3575,11 +3579,7 @@ Page({ var order_m = 0; //么有使用券,或者活动没有限制使用优惠券 if (ord_prom && (quan_price <= 0 || !ord_prom.is_xz_yh)) { - order_prom_id = ord_prom['id']; - - if(ord_prom.discount_field>0){ - - }else{ + order_prom_id = ord_prom['id']; //-- 订单促销是按照实收价格进行计算的时候 -- switch (ord_prom['type']) { case 0: @@ -3595,7 +3595,7 @@ Page({ order_prom_amount = ord_prom['expression']; break; } - } + } cart_item.order_prom_amount = 0; @@ -6606,6 +6606,7 @@ Page({ get_cart_quan: async function (order_prom_list_cart) { var th = this; var user_id = getApp().globalData.user_id; + //等待值的出现 //getApp().waitfor2(this,"g_cart_q_time","order_prom_list_cart",async function () { //var arr=th.data.order_prom_list_cart; @@ -6617,6 +6618,12 @@ Page({ //------------开始计算使用优惠券相关------------ for (var ind in arr) { var ep = arr[ind]; + + //如果门店订单使用订单促销(此订单促销取价规则不是实收价的时候) + if(th.data.can_use_ord_prom[ep.pickup_id]){ + continue; + } + var goodlist = ep.goods; var pickup_id = ep.pickup_id; //--更优惠券抵用有关,立即购买的,如果是购物车,如果有等级价还有考虑等级价的东西 @@ -8796,33 +8803,6 @@ Page({ prom_type: item.prom_type } pk_ord_map.goodsList.push(ite); - - console.log('pk_ord_map'); - console.log(pk_ord_map); - - }, - - //寻找一下商品有没有参与订单促销 - ch_no_order_prom_map_ck(item,pickid){ - var order_prom_map_ck= this.data.order_prom_map_ck; - if(!order_prom_map_ck[pickid]){ - 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]; - - //快速查找item有没有在goodsList中 - var fg = pk_ord_map.goodsList.findIndex(function (ite){ - return ite.id==item.id - }) - if(fg==-1){ - pk_ord_map.no_ord_price= item.goods_price * item.goods_num; - } }, //重置订单促销判断累计 @@ -8853,10 +8833,7 @@ Page({ //用于计算订单促销的金额 let calculate_price=0; - let txt1='show_ord_prom['+pickid+']'; - let txt2='join_ord_prom_goodslist['+pickid+']'; - //-- 此时判断活动的金额满足与否 -- switch (ord_prom.discount_field) { //实收价的时候 @@ -8872,79 +8849,54 @@ Page({ } //要显示订单促销使用的按钮 this.setData({ - [txt1]: 1, - [txt2]:order_prom_map_ck.goodsList //用于筛选商品的价格选手 + [txt1]: 1 }); - //要用户点击了同意使用订单优惠的按钮后,才允许使用订单优惠 - if (!this.data.can_use_ord_prom) { - return null; - } - - //计算金额是参与订单促销的金额+不参与订单促销的金额 - calculate_price=order_prom_map_ck.shop_price_all+order_prom_map_ck.no_ord_price; - break; //市场价的时候 case 2: if (ord_prom.money > order_prom_map_ck.market_price_all){ return null; } - - console.log('aaa'); - console.log(order_prom_map_ck.goodsList); - //要显示订单促销使用的按钮 this.setData({ - [txt1]: 2, - [txt2]:order_prom_map_ck.goodsList //用于筛选商品的价格选手 + [txt1]: 2 }); - //要用户点击了同意使用订单优惠的按钮后,才允许使用订单优惠 - if (!this.data.can_use_ord_prom) { - return null; - } - //计算金额是参与订单促销的金额+不参与订单促销的金额 - calculate_price = order_prom_map_ck.market_price_all+order_prom_map_ck.no_ord_price; break; } - - let order_prom_amount=0; - //如果用户有点击按钮要参与订单促销的时候 - if (calculate_price > 0 && this.data.can_use_ord_prom[pickid]) { - //-- 订单促销是按照实收价格进行计算的时候 -- - switch (ord_prom['type']) { - case 0: - let order_m = Math.round(calculate_price * ord_prom['expression']) / 100;//满额打折 - order_prom_amount = (calculate_price - order_m).toFixed(2); - break; - case 1: - //order_m = o_condition - ord_prom['expression'];//满额优惠金额 - var bs = 1; - if (ord_prom.is_bz) { - bs = Math.floor(calculate_price / ord_prom.money); - } - order_prom_amount = ord_prom['expression']; - break; - } - //保存到订单促销中,订单促销的金额 - ord_prom.real_order_prom_amount = order_prom_amount; - ord_prom.real_condition_price = calculate_price; + //如果订单促销是不参与订单促销的,那么就直接返回null(订单促销不是实收价的时候) + if(ord_prom.discount_field>0 && !this.data.can_use_ord_prom[pickid]){ + return null; } return ord_prom; - }, //设置能够参与订单促销 - set_can_use_ord_prom:function (e){ - 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; - this.setData({ - [txt]:!can_use - }) + set_can_use_ord_prom: function (e) { + 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; + this.setData({ + [txt]: !can_use + }) - let carr=ut.deep_cp(th.data.cartlist_y); - //-- 重新计算一下价格 -- - this.get_cart_next(carr); + //购物车进行还原,一下数据的清理的必须的 + let carr = ut.deep_cp(this.data.cartlist_old); + this.setData({ + send_lb: {}, + month_lb: {}, + send_gf: {} + }) + //清空优惠促销的内容 + this.data.prom_goods_map = {}; + //-- 过滤掉赠品 -- + let n_carr=[]; + for (var i = 0; i < carr.length; i++) { + if (!carr[i].is_gift) { + n_carr.push(carr[i]); + } + } + //-- 重新计算一下价格 -- + this.get_cart_next(n_carr); } diff --git a/packageE/pages/cart/cart2/cart2.wxml b/packageE/pages/cart/cart2/cart2.wxml index e67d64d..11e1d30 100644 --- a/packageE/pages/cart/cart2/cart2.wxml +++ b/packageE/pages/cart/cart2/cart2.wxml @@ -104,12 +104,10 @@ {{filters.show_gui_ge(items.goods_spec,items.goods_color)}} - - {{util.fm_join_ord_prom_price(items,join_ord_prom_goodslist[item.pickup_id],show_ord_prom[item.pickup_id],2)}} - {{filters.toFix(items.goods_price,2)}}({{items.discount}}折) + {{filters.toFix(items.goods_price,2)}}({{items.discount}}折) {{filters.toFix(items.goods_price,2)}} 佣金:{{filters.toFix(items.use_commission/items.goods_num,2)}}*{{items.goods_num}} x{{items.goods_num}} diff --git a/packageE/pages/cart/cart2/filter.wxs b/packageE/pages/cart/cart2/filter.wxs index a2a8fd6..dbd7d77 100644 --- a/packageE/pages/cart/cart2/filter.wxs +++ b/packageE/pages/cart/cart2/filter.wxs @@ -51,48 +51,9 @@ function check_is_last(index,goods_id){ return false; } -//-- 用于筛选商品的价格显示 -- -function fm_join_ord_prom_price(gd,join_gd_list,show_ord_prom,count){ - var price=gd.goods_price; - - console.log('1111'); - console.log(gd.id); - - //在join_gd_list中查找是否已经存在gd商品,靠购物车的id来判断 - for(var i=0;i