Commit 8dd423ba924d4a6bbd158e8cdb17027a62cbcaa4
1 parent
c608a345
确认订单页面的优化
Showing
3 changed files
with
167 additions
and
40 deletions
packageE/pages/cart/cart2/cart2.js
| @@ -181,13 +181,12 @@ Page({ | @@ -181,13 +181,12 @@ Page({ | ||
| 181 | yhcx_buy_map:{}, | 181 | yhcx_buy_map:{}, |
| 182 | 182 | ||
| 183 | //-- 订单促销判断积累 ---2024-2-20 | 183 | //-- 订单促销判断积累 ---2024-2-20 |
| 184 | - order_prom_map_ck: { | ||
| 185 | - shop_price_all:0, //手店价的累计 | ||
| 186 | - market_price_all:0, //市场价的累计 | ||
| 187 | - goods_price_all:0, //实收价的累计 | ||
| 188 | - no_ord_price:0, //要累计上不参与订单促销的金额 | ||
| 189 | - goodsList:[], | ||
| 190 | - }, | 184 | + order_prom_map_ck: {}, |
| 185 | + | ||
| 186 | + //能不能使用订单促销 | ||
| 187 | + can_use_ord_prom:{}, | ||
| 188 | + show_ord_prom:{}, | ||
| 189 | + join_ord_prom_goodslist:{} | ||
| 191 | 190 | ||
| 192 | }, | 191 | }, |
| 193 | 192 | ||
| @@ -1043,6 +1042,23 @@ Page({ | @@ -1043,6 +1042,23 @@ Page({ | ||
| 1043 | for (var i = 0; i < carr.length; i++) { | 1042 | for (var i = 0; i < carr.length; i++) { |
| 1044 | 1043 | ||
| 1045 | let item1 = carr[i]; | 1044 | let item1 = carr[i]; |
| 1045 | + | ||
| 1046 | + //如果有户有点击参与订单促销的话,那么可以参与订单促销的商品的活动都要清理成0 | ||
| 1047 | + if(this.data.can_use_ord_prom[item.pick_id]){ | ||
| 1048 | + //从订单促销的order_prom_map_ck数据结构中获取到可以参与的商品列表 | ||
| 1049 | + let gdlist=this.data.order_prom_map_ck[item.pick_id]?this.data.order_prom_map_ck[item.pick_id].goodsList:null; | ||
| 1050 | + if(gdlist && gdlist.length){ | ||
| 1051 | + //查找商品item1有没有在gdlist中,就要把商品的prom_type清理0 | ||
| 1052 | + let f_idx=gdlist.findIndex(function (ele) { | ||
| 1053 | + return ele.id == item1.id | ||
| 1054 | + }); | ||
| 1055 | + if (f_idx!=-1){ | ||
| 1056 | + carr[i].prom_type=0; | ||
| 1057 | + continue; //要跳过 | ||
| 1058 | + } | ||
| 1059 | + } | ||
| 1060 | + } | ||
| 1061 | + | ||
| 1046 | //如果不是活动的时候,不是代发商品的时候,不是赠品的时候,不是阶梯商品拆分的,不是组合购拆分的 | 1062 | //如果不是活动的时候,不是代发商品的时候,不是赠品的时候,不是阶梯商品拆分的,不是组合购拆分的 |
| 1047 | if([1, 2, 4, 6, 8, 9].indexOf(item1.prom_type)== -1 && !item1.whsle_id | 1063 | if([1, 2, 4, 6, 8, 9].indexOf(item1.prom_type)== -1 && !item1.whsle_id |
| 1048 | && !item1.is_gift && !item1.is_ld_split && !item1.is_zh_split ){ | 1064 | && !item1.is_gift && !item1.is_ld_split && !item1.is_zh_split ){ |
| @@ -3058,6 +3074,8 @@ Page({ | @@ -3058,6 +3074,8 @@ Page({ | ||
| 3058 | 3074 | ||
| 3059 | var no_order_yh = 0; //-- 有些活动不能和订单优惠叠加的金额 -- | 3075 | var no_order_yh = 0; //-- 有些活动不能和订单优惠叠加的金额 -- |
| 3060 | var no_post_temp = 0; //-- 有些活动不能和包邮模板的金额 -- | 3076 | var no_post_temp = 0; //-- 有些活动不能和包邮模板的金额 -- |
| 3077 | + var no_post_temp_shop_price = 0; //-- 有些活动不能和包邮模板的金额 --因为订单促销有手店价取价 | ||
| 3078 | + var no_post_temp_market_price = 0; //-- 有些活动不能和包邮模板的金额 --因为订单促销有市场价取价 | ||
| 3061 | 3079 | ||
| 3062 | if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) | 3080 | if (th.data.using_quan[pickid] != null && th.data.using_quan[pickid] != undefined) |
| 3063 | quan_no = th.data.using_quan[pickid].coupon_no; | 3081 | quan_no = th.data.using_quan[pickid].coupon_no; |
| @@ -3114,15 +3132,22 @@ Page({ | @@ -3114,15 +3132,22 @@ Page({ | ||
| 3114 | 3132 | ||
| 3115 | 3133 | ||
| 3116 | var whsle_goods_price = 0; | 3134 | var whsle_goods_price = 0; |
| 3135 | + var whsle_shop_price = 0; | ||
| 3136 | + var whsle_market_price = 0; | ||
| 3137 | + | ||
| 3117 | var no_zh_all_quan_num=0; //不是组合购商品的使用的优惠券综合 | 3138 | var no_zh_all_quan_num=0; //不是组合购商品的使用的优惠券综合 |
| 3118 | 3139 | ||
| 3119 | //--------循环计算总价----------- | 3140 | //--------循环计算总价----------- |
| 3120 | for (var jc = 0; jc < item.length; jc++) { | 3141 | for (var jc = 0; jc < item.length; jc++) { |
| 3121 | 3142 | ||
| 3143 | + if (item[jc].prom_type == 0) { //如果item的prom_type==0,没有如果活动的时候 | ||
| 3144 | + th.get_order_prom_map_ck(item,pickid); | ||
| 3145 | + } | ||
| 3146 | + | ||
| 3122 | if (item[jc].whsle_id > 0) { | 3147 | if (item[jc].whsle_id > 0) { |
| 3123 | whsle_goods_price += item[jc].goods_price * item[jc].goods_num; | 3148 | whsle_goods_price += item[jc].goods_price * item[jc].goods_num; |
| 3124 | - }else if (item[jc].prom_type == 0) { //如果item的prom_type==0,没有如果活动的时候 | ||
| 3125 | - th.get_order_prom_map_ck(item); | 3149 | + whsle_shop_price += item[jc].shop_price * item[jc].goods_num; |
| 3150 | + whsle_market_price += item[jc].goods_market_price * item[jc].goods_num; | ||
| 3126 | } | 3151 | } |
| 3127 | 3152 | ||
| 3128 | var is_no_zh = 0; | 3153 | var is_no_zh = 0; |
| @@ -3132,13 +3157,13 @@ Page({ | @@ -3132,13 +3157,13 @@ Page({ | ||
| 3132 | if (item[jc].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[jc].prom_id] | 3157 | if (item[jc].prom_type == 7 && th.data.zhhe_act_map && th.data.zhhe_act_map[item[jc].prom_id] |
| 3133 | && th.data.zhhe_act_map[item[jc].prom_id].is_orderyh) { | 3158 | && th.data.zhhe_act_map[item[jc].prom_id].is_orderyh) { |
| 3134 | is_no_zh = 1; | 3159 | is_no_zh = 1; |
| 3135 | - th.get_order_prom_map_ck(item); //有订单优惠叠加的时候,就要构建数据解救 | 3160 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 |
| 3136 | } | 3161 | } |
| 3137 | //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加,就要累积阶梯促销的金额 | 3162 | //阶梯购的商品,且有订单优惠的叠加,is_orderyh就是优惠叠加,就要累积阶梯促销的金额 |
| 3138 | if (item[jc].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[jc].prom_id] | 3163 | if (item[jc].prom_type == 10 && ladder_prom_goods && ladder_prom_goods[item[jc].prom_id] |
| 3139 | && th.data.ladder_map[item[jc].prom_id].is_useorderyh) { | 3164 | && th.data.ladder_map[item[jc].prom_id].is_useorderyh) { |
| 3140 | is_no_zh = 1; | 3165 | is_no_zh = 1; |
| 3141 | - th.get_order_prom_map_ck(item); //有订单优惠叠加的时候,就要构建数据解救 | 3166 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 |
| 3142 | } | 3167 | } |
| 3143 | 3168 | ||
| 3144 | if (is_no_zh) { | 3169 | if (is_no_zh) { |
| @@ -3161,16 +3186,23 @@ Page({ | @@ -3161,16 +3186,23 @@ Page({ | ||
| 3161 | } | 3186 | } |
| 3162 | //参与订单促销的时候 | 3187 | //参与订单促销的时候 |
| 3163 | if(item[jc].is_order_yh && !item[jc].whsle_id && item[jc].prom_type!=7 && item[jc].prom_type!=10){ | 3188 | if(item[jc].is_order_yh && !item[jc].whsle_id && item[jc].prom_type!=7 && item[jc].prom_type!=10){ |
| 3164 | - th.get_order_prom_map_ck(item); //有订单优惠叠加的时候,就要构建数据解救 | 3189 | + th.get_order_prom_map_ck(item[jc],pickid); //有订单优惠叠加的时候,就要构建数据解救 |
| 3165 | } | 3190 | } |
| 3166 | 3191 | ||
| 3167 | if(!item[jc].is_post_temp){ | 3192 | if(!item[jc].is_post_temp){ |
| 3168 | no_post_temp+=gd_price * item[jc].goods_num; | 3193 | no_post_temp+=gd_price * item[jc].goods_num; |
| 3194 | + no_post_temp_shop_price+=item[jc].shop_price * item[jc].goods_num; | ||
| 3195 | + no_post_temp_market_price+=item[jc].goods_market_price * item[jc].goods_num; | ||
| 3169 | if(item[jc].quan_num) no_post_temp-=item[jc].quan_num; //券要把他补回去 | 3196 | if(item[jc].quan_num) no_post_temp-=item[jc].quan_num; //券要把他补回去 |
| 3170 | } | 3197 | } |
| 3171 | } | 3198 | } |
| 3199 | + | ||
| 3200 | + //-- 商品是不是没有参与优惠促销的话 -- | ||
| 3201 | + th.ch_no_order_prom_map_ck(item[jc],pickid) | ||
| 3172 | } | 3202 | } |
| 3173 | 3203 | ||
| 3204 | + | ||
| 3205 | + | ||
| 3174 | //判断是不是有组合购的金额 | 3206 | //判断是不是有组合购的金额 |
| 3175 | var f_o_price = o_price; | 3207 | var f_o_price = o_price; |
| 3176 | //如果又优惠的钱,就要减价 | 3208 | //如果又优惠的钱,就要减价 |
| @@ -3250,7 +3282,16 @@ Page({ | @@ -3250,7 +3282,16 @@ Page({ | ||
| 3250 | } | 3282 | } |
| 3251 | 3283 | ||
| 3252 | //判断订单促销的实收价的累计 | 3284 | //判断订单促销的实收价的累计 |
| 3253 | - this.data.order_prom_map_ck.goods_price_all=ord_prom_condition; | 3285 | + if(!this.data.order_prom_map_ck[pickid]){ |
| 3286 | + this.data.order_prom_map_ck[pickid]={ | ||
| 3287 | + shop_price_all:0, //手店价的累计 | ||
| 3288 | + market_price_all:0, //市场价的累计 | ||
| 3289 | + goods_price_all:0, //实收价的累计 | ||
| 3290 | + no_ord_price:0, //要累计上不参与订单促销的金额 | ||
| 3291 | + goodsList:[], | ||
| 3292 | + } | ||
| 3293 | + } | ||
| 3294 | + this.data.order_prom_map_ck[pickid].goods_price_all=ord_prom_condition; | ||
| 3254 | //---判断是不是有订单优惠--- | 3295 | //---判断是不是有订单优惠--- |
| 3255 | // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { | 3296 | // await getApp().request.promiseGet("/api/weshop/promorder/getOrderPromotion", { |
| 3256 | // data: { store_id: os.stoid, orderAmount: parseFloat(ord_prom_condition).toFixed(2), user_id: getApp().globalData.user_id } | 3297 | // data: { store_id: os.stoid, orderAmount: parseFloat(ord_prom_condition).toFixed(2), user_id: getApp().globalData.user_id } |
| @@ -3260,7 +3301,7 @@ Page({ | @@ -3260,7 +3301,7 @@ Page({ | ||
| 3260 | // } | 3301 | // } |
| 3261 | // }) | 3302 | // }) |
| 3262 | //获取当前时间段的进行中的订单促销 | 3303 | //获取当前时间段的进行中的订单促销 |
| 3263 | - ord_prom=await th.get_cur_ord_prom(); | 3304 | + ord_prom=await th.get_cur_ord_prom(pickid); |
| 3264 | 3305 | ||
| 3265 | //如果有使用优惠券,如何订单促销有控制使用优惠券不参与此活动的话 | 3306 | //如果有使用优惠券,如何订单促销有控制使用优惠券不参与此活动的话 |
| 3266 | if(quan_price>0 && ord_prom && ord_prom.is_xz_yh ){ | 3307 | if(quan_price>0 && ord_prom && ord_prom.is_xz_yh ){ |
| @@ -3320,17 +3361,16 @@ Page({ | @@ -3320,17 +3361,16 @@ Page({ | ||
| 3320 | let user_addr = th.data.user_addr; | 3361 | let user_addr = th.data.user_addr; |
| 3321 | let c_wuliu=parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2); | 3362 | let c_wuliu=parseFloat(o_price - quan_price - whsle_goods_price - no_post_temp).toFixed(2); |
| 3322 | 3363 | ||
| 3364 | + //-- 因为订单促销的取价规则,所以要判断一下各种情况 -- | ||
| 3323 | switch (ord_prom && ord_prom.discount_field){ | 3365 | switch (ord_prom && ord_prom.discount_field){ |
| 3324 | case 1: | 3366 | case 1: |
| 3325 | - | 3367 | + c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_shop_price - no_post_temp_shop_price).toFixed(2); |
| 3326 | break; | 3368 | break; |
| 3327 | case 2: | 3369 | case 2: |
| 3328 | - | ||
| 3329 | - | 3370 | + c_wuliu=parseFloat(ord_prom.real_condition_price - whsle_market_price - no_post_temp_market_price).toFixed(2); |
| 3330 | break; | 3371 | break; |
| 3331 | } | 3372 | } |
| 3332 | 3373 | ||
| 3333 | - | ||
| 3334 | var req_d = { | 3374 | var req_d = { |
| 3335 | province: user_addr.province, city: user_addr.city, district: user_addr.district, | 3375 | province: user_addr.province, city: user_addr.city, district: user_addr.district, |
| 3336 | wuliu: c_wuliu, store_id: os.stoid | 3376 | wuliu: c_wuliu, store_id: os.stoid |
| @@ -8732,31 +8772,69 @@ Page({ | @@ -8732,31 +8772,69 @@ Page({ | ||
| 8732 | }, | 8772 | }, |
| 8733 | 8773 | ||
| 8734 | //---订单促销累计的数据结构的构建,购物车计算流程的那一部分 | 8774 | //---订单促销累计的数据结构的构建,购物车计算流程的那一部分 |
| 8735 | - get_order_prom_map_ck(item) { | ||
| 8736 | - this.data.order_prom_map_ck.shop_price_all += item.shop_price * item.goods_num; | ||
| 8737 | - this.data.order_prom_map_ck.market_price_all += item.goods_market_price * item.goods_num; | 8775 | + get_order_prom_map_ck(item,pickid) { |
| 8776 | + | ||
| 8777 | + var order_prom_map_ck= this.data.order_prom_map_ck; | ||
| 8778 | + if(!order_prom_map_ck[pickid]){ | ||
| 8779 | + order_prom_map_ck[pickid]={ | ||
| 8780 | + shop_price_all:0, //手店价的累计 | ||
| 8781 | + market_price_all:0, //市场价的累计 | ||
| 8782 | + goods_price_all:0, //实收价的累计 | ||
| 8783 | + no_ord_price:0, //要累计上不参与订单促销的金额 | ||
| 8784 | + goodsList:[], | ||
| 8785 | + } | ||
| 8786 | + } | ||
| 8787 | + | ||
| 8788 | + let pk_ord_map=order_prom_map_ck[pickid]; | ||
| 8789 | + pk_ord_map.shop_price_all += item.shop_price * item.goods_num; | ||
| 8790 | + pk_ord_map.market_price_all += item.goods_market_price * item.goods_num; | ||
| 8791 | + | ||
| 8738 | let ite = { | 8792 | let ite = { |
| 8739 | id: item.id, | 8793 | id: item.id, |
| 8740 | goods_id: item.goods_id, | 8794 | goods_id: item.goods_id, |
| 8741 | goods_num: item.goods_num, | 8795 | goods_num: item.goods_num, |
| 8742 | prom_type: item.prom_type | 8796 | prom_type: item.prom_type |
| 8743 | } | 8797 | } |
| 8744 | - this.data.order_prom_map_ck.goodsList.push(item); | 8798 | + pk_ord_map.goodsList.push(ite); |
| 8799 | + | ||
| 8800 | + console.log('pk_ord_map'); | ||
| 8801 | + console.log(pk_ord_map); | ||
| 8802 | + | ||
| 8803 | + }, | ||
| 8804 | + | ||
| 8805 | + //寻找一下商品有没有参与订单促销 | ||
| 8806 | + ch_no_order_prom_map_ck(item,pickid){ | ||
| 8807 | + var order_prom_map_ck= this.data.order_prom_map_ck; | ||
| 8808 | + if(!order_prom_map_ck[pickid]){ | ||
| 8809 | + order_prom_map_ck[pickid]={ | ||
| 8810 | + shop_price_all:0, //手店价的累计 | ||
| 8811 | + market_price_all:0, //市场价的累计 | ||
| 8812 | + goods_price_all:0, //实收价的累计 | ||
| 8813 | + no_ord_price:0, //要累计上不参与订单促销的金额 | ||
| 8814 | + goodsList:[], | ||
| 8815 | + } | ||
| 8816 | + } | ||
| 8817 | + let pk_ord_map=order_prom_map_ck[pickid]; | ||
| 8818 | + | ||
| 8819 | + //快速查找item有没有在goodsList中 | ||
| 8820 | + var fg = pk_ord_map.goodsList.findIndex(function (ite){ | ||
| 8821 | + return ite.id==item.id | ||
| 8822 | + }) | ||
| 8823 | + if(fg==-1){ | ||
| 8824 | + pk_ord_map.no_ord_price= item.goods_price * item.goods_num; | ||
| 8825 | + } | ||
| 8745 | }, | 8826 | }, |
| 8746 | 8827 | ||
| 8747 | //重置订单促销判断累计 | 8828 | //重置订单促销判断累计 |
| 8748 | re_set_order_prom_map_ck() { | 8829 | re_set_order_prom_map_ck() { |
| 8749 | - this.data.order_prom_map_ck = { | ||
| 8750 | - shop_price_all: 0, //手店价的累计 | ||
| 8751 | - market_price_all: 0, //市场价的累计 | ||
| 8752 | - goodsList: [], | ||
| 8753 | - } | 8830 | + this.data.order_prom_map_ck = {} |
| 8754 | }, | 8831 | }, |
| 8755 | 8832 | ||
| 8756 | //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 | 8833 | //获取当前进行中订单促销,同时带入相应的金额判断订单促销是不是运行,同时订单促销的条件不是实收价判断的话,默认的时候,订单促销是不参与运算的 |
| 8757 | - async get_cur_ord_prom() { | 8834 | + async get_cur_ord_prom(pickid) { |
| 8758 | let ord_prom = null; | 8835 | let ord_prom = null; |
| 8759 | - let order_prom_map_ck = this.data.order_prom_map_ck; | 8836 | + let order_prom_map_ck = this.data.order_prom_map_ck[pickid]; |
| 8837 | + if(!order_prom_map_ck) return null; | ||
| 8760 | 8838 | ||
| 8761 | //获取当前进行中的优惠促销 | 8839 | //获取当前进行中的优惠促销 |
| 8762 | await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { | 8840 | await getApp().request.promiseGet("/api/weshop/promorder/getPromOrder", { |
| @@ -8774,6 +8852,11 @@ Page({ | @@ -8774,6 +8852,11 @@ Page({ | ||
| 8774 | if (!ord_prom) return null; | 8852 | if (!ord_prom) return null; |
| 8775 | //用于计算订单促销的金额 | 8853 | //用于计算订单促销的金额 |
| 8776 | let calculate_price=0; | 8854 | let calculate_price=0; |
| 8855 | + | ||
| 8856 | + | ||
| 8857 | + let txt1='show_ord_prom['+pickid+']'; | ||
| 8858 | + let txt2='join_ord_prom_goodslist['+pickid+']'; | ||
| 8859 | + | ||
| 8777 | //-- 此时判断活动的金额满足与否 -- | 8860 | //-- 此时判断活动的金额满足与否 -- |
| 8778 | switch (ord_prom.discount_field) { | 8861 | switch (ord_prom.discount_field) { |
| 8779 | //实收价的时候 | 8862 | //实收价的时候 |
| @@ -8789,14 +8872,16 @@ Page({ | @@ -8789,14 +8872,16 @@ Page({ | ||
| 8789 | } | 8872 | } |
| 8790 | //要显示订单促销使用的按钮 | 8873 | //要显示订单促销使用的按钮 |
| 8791 | this.setData({ | 8874 | this.setData({ |
| 8792 | - show_ord_prom: 1, | ||
| 8793 | - join_ord_prom_goodslist:order_prom_map_ck.goodsList //用于筛选商品的价格选手 | 8875 | + [txt1]: 1, |
| 8876 | + [txt2]:order_prom_map_ck.goodsList //用于筛选商品的价格选手 | ||
| 8794 | }); | 8877 | }); |
| 8795 | //要用户点击了同意使用订单优惠的按钮后,才允许使用订单优惠 | 8878 | //要用户点击了同意使用订单优惠的按钮后,才允许使用订单优惠 |
| 8796 | if (!this.data.can_use_ord_prom) { | 8879 | if (!this.data.can_use_ord_prom) { |
| 8797 | return null; | 8880 | return null; |
| 8798 | } | 8881 | } |
| 8799 | - calculate_price=order_prom_map_ck.shop_price_all; | 8882 | + |
| 8883 | + //计算金额是参与订单促销的金额+不参与订单促销的金额 | ||
| 8884 | + calculate_price=order_prom_map_ck.shop_price_all+order_prom_map_ck.no_ord_price; | ||
| 8800 | 8885 | ||
| 8801 | break; | 8886 | break; |
| 8802 | //市场价的时候 | 8887 | //市场价的时候 |
| @@ -8804,24 +8889,31 @@ Page({ | @@ -8804,24 +8889,31 @@ Page({ | ||
| 8804 | if (ord_prom.money > order_prom_map_ck.market_price_all){ | 8889 | if (ord_prom.money > order_prom_map_ck.market_price_all){ |
| 8805 | return null; | 8890 | return null; |
| 8806 | } | 8891 | } |
| 8892 | + | ||
| 8893 | + console.log('aaa'); | ||
| 8894 | + console.log(order_prom_map_ck.goodsList); | ||
| 8895 | + | ||
| 8807 | //要显示订单促销使用的按钮 | 8896 | //要显示订单促销使用的按钮 |
| 8808 | this.setData({ | 8897 | this.setData({ |
| 8809 | - show_ord_prom: 2, | ||
| 8810 | - join_ord_prom_goodslist:order_prom_map_ck.goodsList //用于筛选商品的价格选手 | 8898 | + [txt1]: 2, |
| 8899 | + [txt2]:order_prom_map_ck.goodsList //用于筛选商品的价格选手 | ||
| 8811 | }); | 8900 | }); |
| 8812 | //要用户点击了同意使用订单优惠的按钮后,才允许使用订单优惠 | 8901 | //要用户点击了同意使用订单优惠的按钮后,才允许使用订单优惠 |
| 8813 | if (!this.data.can_use_ord_prom) { | 8902 | if (!this.data.can_use_ord_prom) { |
| 8814 | return null; | 8903 | return null; |
| 8815 | } | 8904 | } |
| 8816 | - calculate_price = order_prom_map_ck.market_price_all; | 8905 | + //计算金额是参与订单促销的金额+不参与订单促销的金额 |
| 8906 | + calculate_price = order_prom_map_ck.market_price_all+order_prom_map_ck.no_ord_price; | ||
| 8817 | break; | 8907 | break; |
| 8818 | } | 8908 | } |
| 8819 | 8909 | ||
| 8820 | - if (calculate_price > 0) { | 8910 | + let order_prom_amount=0; |
| 8911 | + //如果用户有点击按钮要参与订单促销的时候 | ||
| 8912 | + if (calculate_price > 0 && this.data.can_use_ord_prom[pickid]) { | ||
| 8821 | //-- 订单促销是按照实收价格进行计算的时候 -- | 8913 | //-- 订单促销是按照实收价格进行计算的时候 -- |
| 8822 | switch (ord_prom['type']) { | 8914 | switch (ord_prom['type']) { |
| 8823 | case 0: | 8915 | case 0: |
| 8824 | - order_m = Math.round(calculate_price * ord_prom['expression']) / 100;//满额打折 | 8916 | + let order_m = Math.round(calculate_price * ord_prom['expression']) / 100;//满额打折 |
| 8825 | order_prom_amount = (calculate_price - order_m).toFixed(2); | 8917 | order_prom_amount = (calculate_price - order_m).toFixed(2); |
| 8826 | break; | 8918 | break; |
| 8827 | case 1: | 8919 | case 1: |
| @@ -8839,6 +8931,20 @@ Page({ | @@ -8839,6 +8931,20 @@ Page({ | ||
| 8839 | } | 8931 | } |
| 8840 | return ord_prom; | 8932 | return ord_prom; |
| 8841 | 8933 | ||
| 8934 | + }, | ||
| 8935 | + | ||
| 8936 | + //设置能够参与订单促销 | ||
| 8937 | + set_can_use_ord_prom:function (e){ | ||
| 8938 | + let pickid=e.currentTarget.dataset.pd; | ||
| 8939 | + let txt='can_use_ord_prom['+pickid+']'; | ||
| 8940 | + let can_use=this.data.can_use_ord_prom[pickid]?this.data.can_use_ord_prom[pickid]:0; | ||
| 8941 | + this.setData({ | ||
| 8942 | + [txt]:!can_use | ||
| 8943 | + }) | ||
| 8944 | + | ||
| 8945 | + let carr=ut.deep_cp(th.data.cartlist_y); | ||
| 8946 | + //-- 重新计算一下价格 -- | ||
| 8947 | + this.get_cart_next(carr); | ||
| 8842 | } | 8948 | } |
| 8843 | 8949 | ||
| 8844 | 8950 |
packageE/pages/cart/cart2/cart2.wxml
| @@ -107,7 +107,8 @@ | @@ -107,7 +107,8 @@ | ||
| 107 | 107 | ||
| 108 | <!-----商品名称规格------> | 108 | <!-----商品名称规格------> |
| 109 | <view class="order-num flex-space-between"> | 109 | <view class="order-num flex-space-between"> |
| 110 | - <view wx:if="{{can_use_ord_prom}}" class="co-red">¥<text class="fs36">{{util.fm_join_ord_prom_price(items,join_ord_prom_goodslist,item.show_ord_prom,2)}}</text></view> | 110 | + <!-- 动态显示商品的价格 --> |
| 111 | + <view wx:if="{{can_use_ord_prom[item.pickup_id]}}" class="co-red">¥<text class="fs36">{{util.fm_join_ord_prom_price(items,join_ord_prom_goodslist[item.pickup_id],show_ord_prom[item.pickup_id],2)}}</text></view> | ||
| 111 | <view wx:elif="{{items.prom_type==10}}" class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text><text>({{items.discount}}折)</text></view> | 112 | <view wx:elif="{{items.prom_type==10}}" class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text><text>({{items.discount}}折)</text></view> |
| 112 | <view wx:else class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text></view> | 113 | <view wx:else class="co-red">¥<text class="fs36">{{filters.toFix(items.goods_price,2)}}</text></view> |
| 113 | <view style="color: red;" wx:if="{{items.use_commission && items.use_commission*1>0}}">佣金:{{filters.toFix(items.use_commission/items.goods_num,2)}}*{{items.goods_num}}</view> | 114 | <view style="color: red;" wx:if="{{items.use_commission && items.use_commission*1>0}}">佣金:{{filters.toFix(items.use_commission/items.goods_num,2)}}*{{items.goods_num}}</view> |
| @@ -346,6 +347,14 @@ | @@ -346,6 +347,14 @@ | ||
| 346 | </block> | 347 | </block> |
| 347 | </view> | 348 | </view> |
| 348 | 349 | ||
| 350 | + <!-- 订单促销取价规则的优化 --> | ||
| 351 | + <view class="set-mes" wx:if="{{show_ord_prom[item.pickup_id]}}"> | ||
| 352 | + <view class="use-item" data-pd="{{item.pickup_id}}" bindtap='set_can_use_ord_prom'> | ||
| 353 | + <icon color="{{can_use_ord_prom[item.pickup_id]?'red':'gray'}}" size="16" type="success"></icon> | ||
| 354 | + <view class="yu_er">参与订单促销</view> | ||
| 355 | + </view> | ||
| 356 | + </view> | ||
| 357 | + | ||
| 349 | <!-----使用优惠券------> | 358 | <!-----使用优惠券------> |
| 350 | <view class="xc-coupon-frame flex-center" data-bn="0" bindtap="open_coupon_list" wx:if="{{!(yh_is_xz_yh[item.pickup_id]) && ((item.quan_list && item.quan_list.length>0 ) || get_by_quan_list_cart[item.pickup_id]!=null && item.can_num>0)}}" data-cind="{{pidx}}" data-pickid="{{item.pickup_id}}"> | 359 | <view class="xc-coupon-frame flex-center" data-bn="0" bindtap="open_coupon_list" wx:if="{{!(yh_is_xz_yh[item.pickup_id]) && ((item.quan_list && item.quan_list.length>0 ) || get_by_quan_list_cart[item.pickup_id]!=null && item.can_num>0)}}" data-cind="{{pidx}}" data-pickid="{{item.pickup_id}}"> |
| 351 | <view class="work-frame flex-space-between"> | 360 | <view class="work-frame flex-space-between"> |
packageE/pages/cart/cart2/filter.wxs
| @@ -54,10 +54,22 @@ function check_is_last(index,goods_id){ | @@ -54,10 +54,22 @@ function check_is_last(index,goods_id){ | ||
| 54 | //-- 用于筛选商品的价格显示 -- | 54 | //-- 用于筛选商品的价格显示 -- |
| 55 | function fm_join_ord_prom_price(gd,join_gd_list,show_ord_prom,count){ | 55 | function fm_join_ord_prom_price(gd,join_gd_list,show_ord_prom,count){ |
| 56 | var price=gd.goods_price; | 56 | var price=gd.goods_price; |
| 57 | + | ||
| 58 | + console.log('1111'); | ||
| 59 | + console.log(gd.id); | ||
| 60 | + | ||
| 57 | //在join_gd_list中查找是否已经存在gd商品,靠购物车的id来判断 | 61 | //在join_gd_list中查找是否已经存在gd商品,靠购物车的id来判断 |
| 58 | for(var i=0;i<join_gd_list.length;i++){ | 62 | for(var i=0;i<join_gd_list.length;i++){ |
| 59 | var jgd=join_gd_list[i]; | 63 | var jgd=join_gd_list[i]; |
| 64 | + | ||
| 65 | + console.log(jgd.id); | ||
| 66 | + | ||
| 67 | + | ||
| 60 | if(jgd.id==gd.id){ | 68 | if(jgd.id==gd.id){ |
| 69 | + | ||
| 70 | + console.log('yyy'); | ||
| 71 | + | ||
| 72 | + | ||
| 61 | switch (show_ord_prom){ | 73 | switch (show_ord_prom){ |
| 62 | case 1: | 74 | case 1: |
| 63 | price=gd.shop_price; | 75 | price=gd.shop_price; |
| @@ -72,8 +84,8 @@ function fm_join_ord_prom_price(gd,join_gd_list,show_ord_prom,count){ | @@ -72,8 +84,8 @@ function fm_join_ord_prom_price(gd,join_gd_list,show_ord_prom,count){ | ||
| 72 | if (!price) { | 84 | if (!price) { |
| 73 | return parseFloat(0).toFixed(count); | 85 | return parseFloat(0).toFixed(count); |
| 74 | } | 86 | } |
| 75 | - val = parseFloat(val); | ||
| 76 | - return val.toFixed(count); | 87 | + price = parseFloat(price); |
| 88 | + return price.toFixed(count); | ||
| 77 | } | 89 | } |
| 78 | 90 | ||
| 79 | 91 |