Commit 2dcbeb36ebe424f9192c88b9f992082e65af491a
1 parent
85254bb9
组合购多余的商品有店铺优惠的时候的bug优化
Showing
3 changed files
with
52 additions
and
10 deletions
pages/cart/cart/cart.js
| ... | ... | @@ -828,7 +828,7 @@ Page({ |
| 828 | 828 | |
| 829 | 829 | //---------------全选,全选的时候要判断是否门店的匹配方式一致-------------- |
| 830 | 830 | checkAll: function() { |
| 831 | - var e = this, | |
| 831 | + var e = this,th=this, | |
| 832 | 832 | dda = e.data.requestData, |
| 833 | 833 | sdda = e.data.service_data, |
| 834 | 834 | tfeel = 0, |
| ... | ... | @@ -846,11 +846,17 @@ Page({ |
| 846 | 846 | |
| 847 | 847 | this.data.btn_click=1; |
| 848 | 848 | |
| 849 | + | |
| 850 | + | |
| 851 | + var offline_price=0; | |
| 852 | + var offline_num=0; | |
| 853 | + | |
| 854 | + | |
| 849 | 855 | if(dda && dda.length>0){ |
| 850 | 856 | for (var i = 0; i < dda.length; i++) { |
| 851 | 857 | var item = dda[i].goods; |
| 852 | 858 | |
| 853 | - if (!e.data.checkAllToggle) { | |
| 859 | + if (e.data.checkAllToggle) { | |
| 854 | 860 | var txt = "requestData[" + i + "].selected"; |
| 855 | 861 | e.setData({ |
| 856 | 862 | [txt]: 0, |
| ... | ... | @@ -889,6 +895,13 @@ Page({ |
| 889 | 895 | tfeel += item[j].goods_num * item[j].goods_price; |
| 890 | 896 | t_num += item[j].goods_num; |
| 891 | 897 | } |
| 898 | + | |
| 899 | + //-- 如果这个商品是线下取价的时候 -- | |
| 900 | + if(item[j].is_offline && item[j].prom_type!=7){ | |
| 901 | + offline_price+= (item[j].goods_price-item[j].offline_price)*item[j].goods_num; | |
| 902 | + offline_num+=item[j].goods_num; | |
| 903 | + } | |
| 904 | + | |
| 892 | 905 | } |
| 893 | 906 | } |
| 894 | 907 | |
| ... | ... | @@ -900,13 +913,42 @@ Page({ |
| 900 | 913 | }); |
| 901 | 914 | return false; |
| 902 | 915 | } else { |
| 903 | - | |
| 916 | + | |
| 904 | 917 | for (var i = 0; i < dda.length; i++) { |
| 918 | + | |
| 919 | + if (!e.data.checkAllToggle) { | |
| 920 | + var txt = "requestData[" + i + "].selected"; | |
| 921 | + e.setData({ | |
| 922 | + [txt]: 1, | |
| 923 | + }); | |
| 924 | + } | |
| 925 | + | |
| 905 | 926 | //总的价格,把组合商品的价格拿出来 |
| 906 | 927 | var zh_calc_res=zh_calc.calculate_zh(dda,i,this); |
| 907 | 928 | tfeel+=zh_calc_res.tfeel; |
| 929 | + offline_price+=zh_calc_res.offline_price; | |
| 930 | + offline_num+=zh_calc_res.offline_num; | |
| 931 | + | |
| 932 | + //当有线下取价的时候 | |
| 933 | + if(offline_price){ | |
| 934 | + var txt1= "requestData[" + i + "].offline_price"; | |
| 935 | + var txt2= "requestData[" + i+ "].offline_num"; | |
| 936 | + th.setData({ | |
| 937 | + [txt1]: offline_price.toFixed(2), | |
| 938 | + [txt2]: offline_num, | |
| 939 | + }); | |
| 940 | + }else{ | |
| 941 | + if(dda[i].offline_price>0){ | |
| 942 | + var txt1= "requestData[" + i + "].offline_price"; | |
| 943 | + var txt2= "requestData[" + i + "].offline_num"; | |
| 944 | + th.setData({ | |
| 945 | + [txt1]: 0, | |
| 946 | + [txt2]: 0 | |
| 947 | + }); | |
| 948 | + } | |
| 949 | + } | |
| 908 | 950 | } |
| 909 | - | |
| 951 | + | |
| 910 | 952 | e.setData({ |
| 911 | 953 | checkAllToggle: !e.data.checkAllToggle, |
| 912 | 954 | total_fee: tfeel.toFixed(2), |
| ... | ... | @@ -922,7 +964,7 @@ Page({ |
| 922 | 964 | if(sdda && sdda.length>0){ |
| 923 | 965 | for (var i = 0; i < sdda.length; i++) { |
| 924 | 966 | var item = sdda[i].goods; |
| 925 | - if (!e.data.checkAllToggle) { | |
| 967 | + if (e.data.checkAllToggle) { | |
| 926 | 968 | var txt = "service_data[" + i + "].selected"; |
| 927 | 969 | e.setData({ |
| 928 | 970 | [txt]: 0, | ... | ... |
pages/cart/cart2/cart2.js
| ... | ... | @@ -2324,8 +2324,8 @@ Page({ |
| 2324 | 2324 | 'store_id': oo.stoid, |
| 2325 | 2325 | }; |
| 2326 | 2326 | |
| 2327 | - //-- 线下取价也要写入 -- | |
| 2328 | - if (g_item.offline_price && t_item.is_offline == 1) { | |
| 2327 | + //-- 线下取价也要写入,组合购的商品不能去线下价格 -- | |
| 2328 | + if (g_item.offline_price && t_item.is_offline == 1 && g_item.prom_type!=7) { | |
| 2329 | 2329 | goods.goods_price = g_item.offline_price; |
| 2330 | 2330 | goods.member_goods_price = g_item.offline_price; |
| 2331 | 2331 | goods.offline_cut = (g_item.goods_price - g_item.offline_price).toFixed(2); | ... | ... |
pages/cart/cart2/zh_calculate.js
| ... | ... | @@ -42,14 +42,14 @@ module.exports = { |
| 42 | 42 | if (item.num > item.zhqty) { |
| 43 | 43 | for (let i = 0; i < item.num - item.zhqty; i++) { |
| 44 | 44 | no_in_arr.push({ |
| 45 | - price: item.goods_price, goods_id: item.goods_id, offline_price: item.offline_price | |
| 45 | + price: item.goods_price, goods_id: item.goods_id, offline_price: item_j.offline_price | |
| 46 | 46 | }) |
| 47 | 47 | } |
| 48 | 48 | } |
| 49 | 49 | } else { |
| 50 | 50 | for (let j = 0; j < item.num; j++) { |
| 51 | 51 | no_in_arr.push({ |
| 52 | - price: item.goods_price, goods_id: item.goods_id, offline_price: item.offline_price | |
| 52 | + price: item.goods_price, goods_id: item.goods_id, offline_price: item_j.offline_price | |
| 53 | 53 | }) |
| 54 | 54 | } |
| 55 | 55 | } |
| ... | ... | @@ -92,7 +92,7 @@ module.exports = { |
| 92 | 92 | for (let ii in no_in_arr) { |
| 93 | 93 | let item = no_in_arr[ii]; |
| 94 | 94 | if (item.offline_price) { |
| 95 | - offline_price += item.goods_price - item.offline_price; | |
| 95 | + offline_price += item.price - item.offline_price; | |
| 96 | 96 | offline_num += 1; |
| 97 | 97 | } |
| 98 | 98 | if (goods_map[item.goods_id]) { | ... | ... |