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 | ... | ... |