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