Commit d96122807a6ab986627271b9ef3286d08013dec5
1 parent
978b96a2
优化完成
Showing
4 changed files
with
67 additions
and
12 deletions
components/promate_pop/promate_pop.wxss
packageE/pages/cart/cart2/cart2.js
| ... | ... | @@ -1294,7 +1294,7 @@ Page({ |
| 1294 | 1294 | await m_cx.cart_cx_group(th, arr[k].goods, c_item, 0, 0, (show_can_cx) => { |
| 1295 | 1295 | |
| 1296 | 1296 | arr[k].show_can_cx = show_can_cx; |
| 1297 | - }) | |
| 1297 | + },2) | |
| 1298 | 1298 | } else { |
| 1299 | 1299 | var show_can_cx = this.data.cartlist[k].show_can_cx; |
| 1300 | 1300 | //-- 多促销活动的优化 -- | ... | ... |
pages/cart/cart/cart.js
| ... | ... | @@ -855,6 +855,7 @@ Page({ |
| 855 | 855 | item.selected = 0; |
| 856 | 856 | item.erpwareid = good.erpwareid; //要同步下线商品的id |
| 857 | 857 | item.shop_price = good.shop_price; //要同步下线商品的id |
| 858 | + item.init_goods_price=good.goods_price; | |
| 858 | 859 | |
| 859 | 860 | //-- 读出每一种商品的所有的活动,方便后面的活动切换使用 -- |
| 860 | 861 | if (item.prom_type == 0) |
| ... | ... | @@ -1559,6 +1560,10 @@ Page({ |
| 1559 | 1560 | var fir = 0; |
| 1560 | 1561 | for (var j = 0; j < item.length; j++) { |
| 1561 | 1562 | if (item[j].is_gift) continue; |
| 1563 | + | |
| 1564 | + //把价格还原 | |
| 1565 | + item[j].goods_price=item[j].init_goods_price; | |
| 1566 | + | |
| 1562 | 1567 | var obj = JSON.parse(JSON.stringify(item[j])); |
| 1563 | 1568 | var gd_info=obj; |
| 1564 | 1569 | |
| ... | ... | @@ -2078,6 +2083,7 @@ Page({ |
| 2078 | 2083 | this.data.btn_click = 1; |
| 2079 | 2084 | var garr = e.data.service_data; |
| 2080 | 2085 | |
| 2086 | + //之前没有选中,代表现在要选中 | |
| 2081 | 2087 | if (!a.selected) { |
| 2082 | 2088 | |
| 2083 | 2089 | //如果是标记的时候 |
| ... | ... | @@ -2385,7 +2391,7 @@ Page({ |
| 2385 | 2391 | //不需要修改价格 |
| 2386 | 2392 | await m_cx.cart_cx_group(th, ite1, car[a], 0, n_ok, (show_can_cx) => { |
| 2387 | 2393 | rd_arr.push(show_can_cx) |
| 2388 | - },1) | |
| 2394 | + }) | |
| 2389 | 2395 | } |
| 2390 | 2396 | |
| 2391 | 2397 | if(car.length>1 && c_ind>-1){ |
| ... | ... | @@ -2393,7 +2399,7 @@ Page({ |
| 2393 | 2399 | //检验和设置商品的最终是以 取用什么活动,因为多促销 |
| 2394 | 2400 | await m_cx.cart_cx_group(th, ite2, car[c_ind], 0, n_ok, (show_can_cx) => { |
| 2395 | 2401 | rd_arr[c_ind]=show_can_cx; |
| 2396 | - },1) | |
| 2402 | + }) | |
| 2397 | 2403 | } |
| 2398 | 2404 | |
| 2399 | 2405 | for (var a = 0; a < car.length; a++) { |
| ... | ... | @@ -4012,7 +4018,7 @@ Page({ |
| 4012 | 4018 | |
| 4013 | 4019 | //如果会员是等级会员,商品有等级价,且不是活动商品 |
| 4014 | 4020 | if (card_field && val[card_field] > 0 && |
| 4015 | - ((val.prom_type == 0 && g_arr[i].prom_type == 0) || g_arr[i].prom_type == 3 || g_arr[i].prom_type == 5 || g_arr[i].prom_type == 7 || g_arr[i].prom_type == 10)) { | |
| 4021 | + ((val.prom_type == 0 && g_arr[i].prom_type == 0) || g_arr[i].prom_type == 5 || g_arr[i].prom_type == 7 || g_arr[i].prom_type == 10)) { | |
| 4016 | 4022 | if (g_arr[i].goods_price != val[card_field]) { |
| 4017 | 4023 | isok = 0; |
| 4018 | 4024 | gname = val.goods_name; |
| ... | ... | @@ -5104,8 +5110,11 @@ Page({ |
| 5104 | 5110 | |
| 5105 | 5111 | var th = this; |
| 5106 | 5112 | var car = JSON.parse(JSON.stringify(this.data.requestData)); |
| 5107 | - var item = car[c_idx].goods, | |
| 5108 | - is_s_sele = 1; | |
| 5113 | + var item = car[c_idx].goods, is_s_sele = 1; | |
| 5114 | + | |
| 5115 | + for (var i = 0; i < item.length; i++) { | |
| 5116 | + item[i].goods_price = item[i].init_goods_price; | |
| 5117 | + } | |
| 5109 | 5118 | |
| 5110 | 5119 | var is_has_other = 0; |
| 5111 | 5120 | for (var ii = 0; ii < car.length; ii++) { |
| ... | ... | @@ -5126,15 +5135,16 @@ Page({ |
| 5126 | 5135 | } |
| 5127 | 5136 | //-- 让选择进入对应 -- |
| 5128 | 5137 | for (var i = 0; i < item.length; i++) { |
| 5129 | - if (sele_arr.hasOwnProperty(i)) { | |
| 5130 | - item[i].selected = sele_arr[i]; | |
| 5131 | - } | |
| 5138 | + if (sele_arr.hasOwnProperty(i)) { | |
| 5139 | + item[i].selected = sele_arr[i]; | |
| 5140 | + } | |
| 5132 | 5141 | } |
| 5142 | + | |
| 5133 | 5143 | //-- 先批量判断一下活动的类型,同时要同步跟新 -- |
| 5134 | 5144 | m_cx.cart_cx_group(this, item, car[c_idx], 0, 0, (show_can_cx) => { |
| 5135 | 5145 | car[c_idx].show_can_cx = show_can_cx; |
| 5136 | 5146 | th.cx_check_ok2(func, car); |
| 5137 | - },1); | |
| 5147 | + }); | |
| 5138 | 5148 | |
| 5139 | 5149 | }, |
| 5140 | 5150 | |
| ... | ... | @@ -5257,6 +5267,7 @@ Page({ |
| 5257 | 5267 | } |
| 5258 | 5268 | } |
| 5259 | 5269 | } |
| 5270 | + | |
| 5260 | 5271 | func({ |
| 5261 | 5272 | 'code': 0, |
| 5262 | 5273 | 'msg': '成功' | ... | ... |
utils/more_cx.js
| ... | ... | @@ -364,8 +364,29 @@ module.exports = { |
| 364 | 364 | return g_item.goods_id==ck_prom_type.goods[b].goods_id && [0,3,5,7,10].indexOf(g_item.prom_type)>-1; |
| 365 | 365 | }) |
| 366 | 366 | if(fg>-1){ |
| 367 | + | |
| 368 | + goods[fg].goods_price = goods[fg].init_goods_price; | |
| 367 | 369 | goods[fg].prom_type=ck_prom_type.prom_type; |
| 368 | 370 | goods[fg].prom_id=ck_prom_type.prom_id; |
| 371 | + | |
| 372 | + if(ck_prom_type.prom_type==3){ | |
| 373 | + let ffd=th.data.in_yhact[ck_prom_type.prom_id]; | |
| 374 | + let f_price = goods[fg].goods_price; | |
| 375 | + if (ffd.discount_field != undefined) { | |
| 376 | + switch (ffd.discount_field) { | |
| 377 | + case 0: | |
| 378 | + f_price = goods[fg].goods_price; | |
| 379 | + break; | |
| 380 | + case 1: | |
| 381 | + f_price = goods[fg].shop_price; | |
| 382 | + break; | |
| 383 | + case 2: | |
| 384 | + f_price = goods[fg].goods_market_price; | |
| 385 | + break; | |
| 386 | + } | |
| 387 | + } | |
| 388 | + goods[fg].goods_price = f_price; | |
| 389 | + } | |
| 369 | 390 | } |
| 370 | 391 | } |
| 371 | 392 | |
| ... | ... | @@ -402,7 +423,10 @@ module.exports = { |
| 402 | 423 | //-- 促销活动对象表,最初的map表,包含活动类型,活动id,goods商品 --- |
| 403 | 424 | var cx_act_map=[]; |
| 404 | 425 | for(var i=0; i<goods.length;i++){ |
| 405 | - var c_item=goods[i]; | |
| 426 | + //商品的价格要还原 | |
| 427 | + goods[i].goods_price=goods[i].init_goods_price; | |
| 428 | + //进行深拷贝 | |
| 429 | + var c_item=JSON.parse(JSON.stringify(goods[i])); | |
| 406 | 430 | //没有选中 |
| 407 | 431 | if(!c_item.selected) continue; |
| 408 | 432 | //如果是秒杀之类是商品 |
| ... | ... | @@ -525,7 +549,7 @@ module.exports = { |
| 525 | 549 | for(var f=0;f<t_goods.length;f++){ |
| 526 | 550 | all_num+=t_goods[f].goods_num; |
| 527 | 551 | |
| 528 | - if(!is_no_change) { | |
| 552 | + if(is_no_change!=1) { | |
| 529 | 553 | //-- 优惠促销取价的优化 -- |
| 530 | 554 | let f_price = t_goods[f].goods_price; |
| 531 | 555 | if (fd.discount_field != undefined) { |
| ... | ... | @@ -751,6 +775,25 @@ module.exports = { |
| 751 | 775 | if(fg>-1){ |
| 752 | 776 | goods[fg].prom_type=ck_prom_type.prom_type; |
| 753 | 777 | goods[fg].prom_id=ck_prom_type.prom_id; |
| 778 | + | |
| 779 | + if(ck_prom_type.prom_type==3 && (is_no_change!=2 || ck_prom_type.is_no_ok!=1) ){ | |
| 780 | + let ffd=th.data.in_yhact[ck_prom_type.prom_id]; | |
| 781 | + let f_price = goods[fg].goods_price; | |
| 782 | + if (ffd.discount_field != undefined) { | |
| 783 | + switch (ffd.discount_field) { | |
| 784 | + case 0: | |
| 785 | + f_price = goods[fg].goods_price; | |
| 786 | + break; | |
| 787 | + case 1: | |
| 788 | + f_price = goods[fg].shop_price; | |
| 789 | + break; | |
| 790 | + case 2: | |
| 791 | + f_price = goods[fg].goods_market_price; | |
| 792 | + break; | |
| 793 | + } | |
| 794 | + } | |
| 795 | + goods[fg].goods_price = f_price; | |
| 796 | + } | |
| 754 | 797 | } |
| 755 | 798 | } |
| 756 | 799 | } | ... | ... |