Commit fc90ffebb1f8e91d6f7b03253f29147ebb8f4e3e
1 parent
22911483
预售的指定门店的优化
Showing
7 changed files
with
211 additions
and
38 deletions
packageA/pages/goodsInfo/goodsInfo.wxss
packageC/pages/presell/cart/cart.js
| ... | ... | @@ -2763,6 +2763,14 @@ Page({ |
| 2763 | 2763 | } |
| 2764 | 2764 | }) |
| 2765 | 2765 | |
| 2766 | + if(!presellList || !presellList.length){ | |
| 2767 | + var content = good.goods_name + '未找到预售活动,请取消订单'; | |
| 2768 | + th.toast(content); | |
| 2769 | + th.setData({ paying: 0 }); | |
| 2770 | + return false; | |
| 2771 | + } | |
| 2772 | + | |
| 2773 | + | |
| 2766 | 2774 | if (presellList) { |
| 2767 | 2775 | |
| 2768 | 2776 | if (good.goods_num > presellList.presell_sumqty - presellList.buy_goodnum) { |
| ... | ... | @@ -2777,6 +2785,29 @@ Page({ |
| 2777 | 2785 | return false; |
| 2778 | 2786 | } |
| 2779 | 2787 | |
| 2788 | + var fres=await getApp().request.promiseGet("/api/weshop/marketing/marketingPresellForm/get/"+os.stoid+"/"+presell_id, {}); | |
| 2789 | + //接口调用成功的时候 | |
| 2790 | + if(fres && fres.data.code==0 && fres.data.data){ | |
| 2791 | + //如果有指定门店的时候 | |
| 2792 | + if(fres.data.data.pick_up_lists){ | |
| 2793 | + var idx0=fres.data.data.pick_up_lists.findIndex(function (e){ | |
| 2794 | + return e.pickup_id==order.pickup_id; | |
| 2795 | + }) | |
| 2796 | + if(idx0<0){ | |
| 2797 | + getApp().confirmBox(good.goods_name+"预售活动的门店不可售"); | |
| 2798 | + th.setData({ paying: 0 }); | |
| 2799 | + return false; | |
| 2800 | + } | |
| 2801 | + } | |
| 2802 | + | |
| 2803 | + }else{ | |
| 2804 | + var content = good.goods_name + '未找到预售活动,请取消订单'; | |
| 2805 | + th.toast(content); | |
| 2806 | + th.setData({ paying: 0 }); | |
| 2807 | + return false; | |
| 2808 | + } | |
| 2809 | + | |
| 2810 | + | |
| 2780 | 2811 | } |
| 2781 | 2812 | } |
| 2782 | 2813 | ... | ... |
packageC/pages/presell/goodsInfo/goodsInfo.js
| ... | ... | @@ -878,6 +878,7 @@ Page({ |
| 878 | 878 | sele_g: t.data.data, |
| 879 | 879 | userInfo: getApp().globalData.userInfo, |
| 880 | 880 | }); |
| 881 | + | |
| 881 | 882 | ee.init(gid); |
| 882 | 883 | //获取门店 |
| 883 | 884 | ee.get_sto(); |
| ... | ... | @@ -1912,6 +1913,7 @@ Page({ |
| 1912 | 1913 | //---------拿出门店分类和门店------------ |
| 1913 | 1914 | get_sto(e) { |
| 1914 | 1915 | var th = this, is_normal = e; |
| 1916 | + var that=th; | |
| 1915 | 1917 | |
| 1916 | 1918 | if (e == 1) { |
| 1917 | 1919 | th.setData({ is_normal: 1 }) |
| ... | ... | @@ -1921,6 +1923,8 @@ Page({ |
| 1921 | 1923 | |
| 1922 | 1924 | var timer_get = setInterval(function () { |
| 1923 | 1925 | if (th.data.is_get_local_ok == 0) return false; |
| 1926 | + if (!th.data.fir_def_store) return false; | |
| 1927 | + | |
| 1924 | 1928 | var dd = null, i = getApp().request; |
| 1925 | 1929 | if (!th.data.sele_g) return false; |
| 1926 | 1930 | |
| ... | ... | @@ -1968,44 +1972,107 @@ Page({ |
| 1968 | 1972 | }).then(res => { |
| 1969 | 1973 | var e = res; |
| 1970 | 1974 | |
| 1975 | + //确保门店的数量要>0时,才进行计算 | |
| 1971 | 1976 | if (e.data.code == 0 && e.data.data && e.data.data.pageData && e.data.data.pageData.length > 0) { |
| 1972 | 1977 | |
| 1973 | - //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 | |
| 1974 | - if (dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store) == '{}') && th.data.bconfig && th.data.bconfig.is_sort_storage) { | |
| 1975 | - th.setData({ | |
| 1976 | - def_pick_store: e.data.data.pageData[0], | |
| 1977 | - sto_sele_name: e.data.data.pageData[0].pickup_name, | |
| 1978 | - sto_sele_id: e.data.data.pageData[0].pickup_id, | |
| 1979 | - sto_sele_distr: e.data.data.pageData[0].distr_type | |
| 1980 | - }); | |
| 1981 | - th.data.fir_def_store = e.data.data.pageData[0]; | |
| 1982 | - } | |
| 1983 | 1978 | |
| 1984 | - //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 -- | |
| 1985 | - if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}') { | |
| 1986 | - for (var k = 0; k < e.data.data.pageData.length; k++) { | |
| 1987 | - if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { | |
| 1988 | - e.data.data.pageData.splice(k, 1); //删除 | |
| 1989 | - break; | |
| 1979 | + | |
| 1980 | + //指定门店判断, 不是普通购买的时候,秒杀的时候,秒杀有指定门店 | |
| 1981 | + var pickup_ids=th.data.presellForm.pick_up_lists | |
| 1982 | + //-- 如果有指定门店的时候 -- | |
| 1983 | + if(pickup_ids){ | |
| 1984 | + | |
| 1985 | + var ok_arr=[]; | |
| 1986 | + for (let i in e.data.data.pageData) { | |
| 1987 | + let ite = e.data.data.pageData[i]; | |
| 1988 | + //-- 查找一下门店有没有在 -- | |
| 1989 | + var idx=pickup_ids.findIndex(function (e){ | |
| 1990 | + return e.pickup_id==ite.pickup_id; | |
| 1991 | + }) | |
| 1992 | + if(idx>-1){ | |
| 1993 | + ok_arr.push(ite) | |
| 1994 | + } | |
| 1995 | + } | |
| 1996 | + | |
| 1997 | + //判断会员的默认的门店是不是匹配指定的门店 | |
| 1998 | + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ | |
| 1999 | + //-- 查找一下门店有没有在 -- | |
| 2000 | + var idx1=pickup_ids.findIndex(function (e){ | |
| 2001 | + return e.pickup_id==th.data.def_pick_store.pickup_id; | |
| 2002 | + }) | |
| 2003 | + | |
| 2004 | + if(idx1<0){ | |
| 2005 | + //如果是秒杀的指定门店,就要设置秒杀的 | |
| 2006 | + th.data.def_pick_store.is_no_dis_act=1; | |
| 2007 | + }else{ | |
| 2008 | + th.data.def_pick_store.is_no_dis_act=0; | |
| 1990 | 2009 | } |
| 2010 | + | |
| 2011 | + that.setData({ | |
| 2012 | + def_pick_store: th.data.def_pick_store | |
| 2013 | + }) | |
| 2014 | + | |
| 2015 | + } | |
| 2016 | + e.data.data.pageData=ok_arr; //数组重新赋值 | |
| 2017 | + e.data.data.total=ok_arr.length; //数组的长度 | |
| 2018 | + } | |
| 2019 | + else{ | |
| 2020 | + //-- 多规格指定门店优化 -- | |
| 2021 | + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}'){ | |
| 2022 | + th.data.def_pick_store.is_no_dis_act=0; | |
| 2023 | + that.setData({ | |
| 2024 | + def_pick_store: th.data.def_pick_store | |
| 2025 | + }) | |
| 1991 | 2026 | } |
| 1992 | - e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 | |
| 1993 | 2027 | } |
| 1994 | 2028 | |
| 2029 | + //确保门店的数量要>0时,才进行计算 | |
| 2030 | + if(e.data.data.pageData.length > 0) { | |
| 1995 | 2031 | |
| 1996 | - th.setData({ all_pick_list: e.data.data.pageData }); | |
| 1997 | 2032 | |
| 1998 | - //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购 预售-- | |
| 1999 | - if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id | |
| 2000 | - && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ([1,2,4,6,8,9].indexOf(th.data.prom_type)==-1 || is_normal == 1)) { | |
| 2001 | - setTimeout(function () { | |
| 2002 | - th.deal_pickup_dline(e); | |
| 2003 | - }, 800) | |
| 2004 | - } else { | |
| 2005 | - setTimeout(function () { | |
| 2006 | - th.deal_pickup(e); //--普通门店排版-- | |
| 2007 | - }, 800) | |
| 2033 | + //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 | |
| 2034 | + if (dd.lat && (!th.data.def_pick_store || JSON.stringify(th.data.def_pick_store) == '{}') && th.data.bconfig && th.data.bconfig.is_sort_storage) { | |
| 2035 | + th.setData({ | |
| 2036 | + def_pick_store: e.data.data.pageData[0], | |
| 2037 | + sto_sele_name: e.data.data.pageData[0].pickup_name, | |
| 2038 | + sto_sele_id: e.data.data.pageData[0].pickup_id, | |
| 2039 | + sto_sele_distr: e.data.data.pageData[0].distr_type | |
| 2040 | + }); | |
| 2041 | + th.data.fir_def_store = e.data.data.pageData[0]; | |
| 2042 | + } | |
| 2043 | + | |
| 2044 | + //-- 如果有默认选择门店的时候,要把默认门店放在第一位,修改不要配送方式的判断 -- | |
| 2045 | + if (th.data.def_pick_store && JSON.stringify(th.data.def_pick_store) != '{}') { | |
| 2046 | + for (var k = 0; k < e.data.data.pageData.length; k++) { | |
| 2047 | + if (e.data.data.pageData[k].pickup_id == th.data.def_pick_store.pickup_id) { | |
| 2048 | + e.data.data.pageData.splice(k, 1); //删除 | |
| 2049 | + break; | |
| 2050 | + } | |
| 2051 | + } | |
| 2052 | + e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 | |
| 2053 | + } | |
| 2054 | + | |
| 2055 | + | |
| 2056 | + th.setData({all_pick_list: e.data.data.pageData}); | |
| 2057 | + | |
| 2058 | + //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购 预售-- | |
| 2059 | + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id | |
| 2060 | + && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ([1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 || is_normal == 1)) { | |
| 2061 | + setTimeout(function () { | |
| 2062 | + th.deal_pickup_dline(e); | |
| 2063 | + }, 800) | |
| 2064 | + } else { | |
| 2065 | + setTimeout(function () { | |
| 2066 | + th.deal_pickup(e); //--普通门店排版-- | |
| 2067 | + }, 800) | |
| 2068 | + } | |
| 2008 | 2069 | } |
| 2070 | + else{ | |
| 2071 | + wx.hideLoading(); | |
| 2072 | + } | |
| 2073 | + } | |
| 2074 | + else{ | |
| 2075 | + wx.hideLoading(); | |
| 2009 | 2076 | } |
| 2010 | 2077 | }) |
| 2011 | 2078 | }, 200) | ... | ... |
packageC/pages/presell/goodsInfo/goodsInfo.wxml
| ... | ... | @@ -192,7 +192,10 @@ |
| 192 | 192 | </view> |
| 193 | 193 | <block wx:else> |
| 194 | 194 | <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}"> |
| 195 | - (配送不匹配2) | |
| 195 | + (配送不匹配) | |
| 196 | + </view> | |
| 197 | + <view class="no_store" wx:elif="{{def_pick_store && def_pick_store.is_no_dis_act}}"> | |
| 198 | + (该店不可售) | |
| 196 | 199 | </view> |
| 197 | 200 | <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules>=2 && prom_type==0}}"> |
| 198 | 201 | (库存不足) |
| ... | ... | @@ -629,7 +632,8 @@ |
| 629 | 632 | <block wx:else> |
| 630 | 633 | <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view> |
| 631 | 634 | <block wx:else> |
| 632 | - <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配1)</view> | |
| 635 | + <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view> | |
| 636 | + <view class="no_store" wx:elif="{{def_pick_store.is_no_dis_act}}">(该店不可售)</view> | |
| 633 | 637 | <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0}}"> |
| 634 | 638 | (库存不足) |
| 635 | 639 | </view> |
| ... | ... | @@ -671,9 +675,13 @@ |
| 671 | 675 | </view> |
| 672 | 676 | </view> |
| 673 | 677 | <view class="spec-cart-btns"> |
| 674 | - <view wx:if="{{def_pick_store && def_pick_store.is_no_dis}}" class="spec-cart-btn fs32" data-action="add" > | |
| 678 | + <view wx:if="{{def_pick_store && def_pick_store.is_no_dis}}" class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999;"> | |
| 675 | 679 | 门店的不匹配 |
| 676 | 680 | </view> |
| 681 | + <view wx:elif="{{def_pick_store && def_pick_store.is_no_dis_act}}" class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999;"> | |
| 682 | + 该门店不可售 | |
| 683 | + </view> | |
| 684 | + | |
| 677 | 685 | <block wx:else> |
| 678 | 686 | <!-- 根本就找不到门店 --> |
| 679 | 687 | <block wx:if="{{!only_pk && !def_pickpu_list}}"> |
| ... | ... | @@ -855,7 +863,10 @@ |
| 855 | 863 | <view class="address-frame xc-ash"> |
| 856 | 864 | <view class="flex-vertical-between butttem5"> |
| 857 | 865 | <view class="flex xc-ash"> |
| 858 | - <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view> | |
| 866 | + <view class="fs30 xc-black3 address_name">{{item.pickup_name}} | |
| 867 | + <text class="c-red22" wx:if="{{item.is_no_dis}}">(配送不匹配)</text> | |
| 868 | + <text class="c-red22" wx:elif="{{item.is_no_dis_act}}">(该点不可售)</text> | |
| 869 | + </view> | |
| 859 | 870 | </view> |
| 860 | 871 | <view> |
| 861 | 872 | <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}"> |
| ... | ... | @@ -881,7 +892,10 @@ |
| 881 | 892 | <view class="address-frame xc-ash"> |
| 882 | 893 | <view class="flex-vertical-between "> |
| 883 | 894 | <view class="flex xc-ash"> |
| 884 | - <view class="fs30 xc-black3 address_name">{{item.pickup_name}}</view> | |
| 895 | + <view class="fs30 xc-black3 address_name">{{item.pickup_name}} | |
| 896 | + <text class="c-red22" wx:if="{{item.is_no_dis}}">(配送不匹配)</text> | |
| 897 | + <text class="c-red22" wx:elif="{{item.is_no_dis_act}}">(该点不可售)</text> | |
| 898 | + </view> | |
| 885 | 899 | </view> |
| 886 | 900 | <view> |
| 887 | 901 | <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}"> |
| ... | ... | @@ -909,7 +923,10 @@ |
| 909 | 923 | <view class="address-frame xc-ash"> |
| 910 | 924 | <view class="flex-vertical-between "> |
| 911 | 925 | <view class="flex xc-ash"> |
| 912 | - <view class="fs28 xc-black3 address_name">{{item.pickup_name}}</view> | |
| 926 | + <view class="fs28 xc-black3 address_name">{{item.pickup_name}} | |
| 927 | + <text class="c-red22" wx:if="{{item.is_no_dis}}">(配送不匹配)</text> | |
| 928 | + <text class="c-red22" wx:elif="{{item.is_no_dis_act}}">(该点不可售)</text> | |
| 929 | + </view> | |
| 913 | 930 | </view> |
| 914 | 931 | <view> |
| 915 | 932 | <view class="distance fs24 address-val" wx:if="{{item.distance!=null}}"> | ... | ... |
packageC/pages/presell/goodsInfo/goodsInfo.wxss
pages/user/order_detail/order_detail.js
| ... | ... | @@ -592,6 +592,13 @@ Page({ |
| 592 | 592 | } |
| 593 | 593 | }) |
| 594 | 594 | |
| 595 | + if(!presellList || !presellList.length){ | |
| 596 | + var content = good.goods_name + '未找到预售活动,请取消订单'; | |
| 597 | + th.toast(content); | |
| 598 | + th.setData({ paying: 0 }); | |
| 599 | + return false; | |
| 600 | + } | |
| 601 | + | |
| 595 | 602 | if (presellList) { |
| 596 | 603 | if (good.goods_num > presellList.presell_sumqty - presellList.buy_goodnum) { |
| 597 | 604 | var content = good.goods_name + '购买数量超出商品库存,请取消订单'; |
| ... | ... | @@ -607,6 +614,28 @@ Page({ |
| 607 | 614 | return false; |
| 608 | 615 | } |
| 609 | 616 | |
| 617 | + var fres=await getApp().request.promiseGet("/api/weshop/marketing/marketingPresellForm/get/"+os.stoid+"/"+presell_id, {}); | |
| 618 | + //接口调用成功的时候 | |
| 619 | + if(fres && fres.data.code==0 && fres.data.data){ | |
| 620 | + //如果有指定门店的时候 | |
| 621 | + if(fres.data.data.pick_up_lists){ | |
| 622 | + var idx0=fres.data.data.pick_up_lists.findIndex(function (e){ | |
| 623 | + return e.pickup_id==order.pickup_id; | |
| 624 | + }) | |
| 625 | + if(idx0<0){ | |
| 626 | + getApp().confirmBox(good.goods_name+"预售活动的门店不可售"); | |
| 627 | + th.setData({ paying: 0 }); | |
| 628 | + return false; | |
| 629 | + } | |
| 630 | + } | |
| 631 | + | |
| 632 | + }else{ | |
| 633 | + var content = good.goods_name + '未找到预售活动,请取消订单'; | |
| 634 | + th.toast(content); | |
| 635 | + th.setData({ paying: 0 }); | |
| 636 | + return false; | |
| 637 | + } | |
| 638 | + | |
| 610 | 639 | } |
| 611 | 640 | } |
| 612 | 641 | ... | ... |
pages/user/order_list/order_list.js
| ... | ... | @@ -906,10 +906,15 @@ Page({ |
| 906 | 906 | } |
| 907 | 907 | }) |
| 908 | 908 | |
| 909 | - | |
| 910 | - if (presellList) { | |
| 909 | + if(!presellList || !presellList.length){ | |
| 910 | + var content = good.goods_name + '未找到预售活动,请取消订单'; | |
| 911 | + th.toast(content); | |
| 912 | + th.setData({ paying: 0 }); | |
| 913 | + return false; | |
| 914 | + } | |
| 911 | 915 | |
| 912 | 916 | |
| 917 | + if (presellList) { | |
| 913 | 918 | if (good.goods_num > presellList.presell_sumqty - presellList.buy_goodnum) { |
| 914 | 919 | var content = good.goods_name + '购买数量超出商品库存,请取消订单'; |
| 915 | 920 | th.toast(content); |
| ... | ... | @@ -924,6 +929,28 @@ Page({ |
| 924 | 929 | return false; |
| 925 | 930 | } |
| 926 | 931 | |
| 932 | + var fres=await getApp().request.promiseGet("/api/weshop/marketing/marketingPresellForm/get/"+os.stoid+"/"+presell_id, {}); | |
| 933 | + //接口调用成功的时候 | |
| 934 | + if(fres && fres.data.code==0 && fres.data.data){ | |
| 935 | + | |
| 936 | + //如果有指定门店的时候 | |
| 937 | + if(fres.data.data.pick_up_lists){ | |
| 938 | + var idx0=fres.data.data.pick_up_lists.findIndex(function (e){ | |
| 939 | + return e.pickup_id==order.pickup_id; | |
| 940 | + }) | |
| 941 | + if(idx0<0){ | |
| 942 | + getApp().confirmBox(good.goods_name+"预售活动的门店不可售"); | |
| 943 | + th.setData({ paying: 0 }); | |
| 944 | + return false; | |
| 945 | + } | |
| 946 | + } | |
| 947 | + | |
| 948 | + }else{ | |
| 949 | + var content = good.goods_name + '未找到预售活动,请取消订单'; | |
| 950 | + th.toast(content); | |
| 951 | + th.setData({ paying: 0 }); | |
| 952 | + return false; | |
| 953 | + } | |
| 927 | 954 | } |
| 928 | 955 | } |
| 929 | 956 | ... | ... |