Commit 7be6eb40b5c4cf0fefaa640d1b6ac5f7b9ee3bdd

Authored by yvan.ni
1 parent fb660a87

限购的问题的优化

packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js
... ... @@ -2195,6 +2195,9 @@ Page({
2195 2195  
2196 2196 this.get_buy_num(this.data.sele_g, async function () {
2197 2197  
  2198 +
  2199 + var is_show_bs=0;
  2200 + var l_num=-1;
2198 2201 //--判断商品是否超出限购--
2199 2202 if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {
2200 2203  
... ... @@ -2205,10 +2208,11 @@ Page({
2205 2208 // title: '超出商品限购',
2206 2209 // });
2207 2210 getApp().my_warnning('超出商品限购', 0, th);
2208   - var num = th.data.sele_g.viplimited - gd_buy_num;
2209   - if (num < 0) num = 0;
2210   - th.setData({ goodsInputNum: num })
2211   - return false;
  2211 + l_num = th.data.sele_g.viplimited - gd_buy_num;
  2212 + if (l_num < 0) l_num = 0;
  2213 + //th.setData({ goodsInputNum: num })
  2214 + //return false;
  2215 + is_show_bs=1;
2212 2216 }
2213 2217 }
2214 2218  
... ... @@ -2263,22 +2267,41 @@ Page({
2263 2267 }
2264 2268 }
2265 2269  
  2270 + //-- 限购数量也要进行计算一下 --
  2271 + if(l_num>-1){
  2272 + if(e>l_num) e=l_num;
  2273 + }
  2274 +
  2275 + //提示了一个,就不要提示第二个
  2276 + var is_show_bs=0;
2266 2277 //--- 促销活动也不控制起订量, 这里很重要的一个控制,起订量的 ----
2267 2278 if(th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){
2268   - if(t<mo_num) t=mo_num;
  2279 + if(t<mo_num){
  2280 + t=mo_num;
  2281 + if(!is_show_bs){
  2282 + wx.showToast({
  2283 + title: '购买数未达到起订量',
  2284 + icon: 'none',
  2285 + });
  2286 + }
  2287 + is_show_bs=1;
  2288 + }
2269 2289 if(t>mo_num && (t-mo_num)%steep!=0){
2270   - wx.showToast({
2271   - title: '购买数必须是起订量的倍数',
2272   - icon: 'none',
2273   - });
  2290 + if(!is_show_bs) {
  2291 + wx.showToast({
  2292 + title: '购买数必须是起订量的倍数',
  2293 + icon: 'none',
  2294 + });
  2295 + }
2274 2296 t=mo_num+ parseInt((t-mo_num)/steep)*steep+steep;
  2297 + is_show_bs=1;
2275 2298 }
2276 2299 }
2277 2300  
2278 2301 if (!e) e = 0;
2279 2302 //库存不足,不增加
2280 2303 if (e < t) {
2281   - wx.showModal({ title: '库存不足', });
  2304 + if(!is_show_bs) wx.showModal({ title: '库存不足', });
2282 2305 if (e < 0) e = 0;
2283 2306  
2284 2307 if(th.data.is_normal == 1){
... ...
pages/cart/cart/cart.js
... ... @@ -1559,9 +1559,9 @@ Page({
1559 1559 valueToNum: function (t) {
1560 1560 if (!this.data.is_load) return false;
1561 1561 //控制住,避免事件响应冲突,只有input有输入的时候,才刷新
1562   - if (this.data.btn_click) {
1563   - return false;
1564   - }
  1562 + // if (this.data.btn_click) {
  1563 + // return false;
  1564 + // }
1565 1565 this.data.btn_click = 1;
1566 1566  
1567 1567 var a = t.currentTarget.dataset.item;
... ... @@ -2601,55 +2601,7 @@ Page({
2601 2601  
2602 2602 //----------------------更新购物数量,加减,调用接口---------------------
2603 2603 postCardList: function (t, item, pitem) {
2604   - var e = this,
2605   - th = e,
2606   - user_id = getApp().globalData.user_id;
2607   -
2608   - function normal_check(store_count, goodsinfo, wareIds,cx_arr) {
2609   -
2610   -
2611   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2612   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2613   - //-- 要判断是不是起订量不购 --
2614   - if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){
2615   - var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length);
2616   - var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1);
2617   - if(mo_num>1 && t.goods_num<mo_num){
2618   - wx.showToast({
2619   - title: '购买数量小于商品的起订量',
2620   - icon: 'none',
2621   - });
2622   - t.goods_num =mo_num;
2623   - }
2624   - if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){
2625   -
2626   - wx.showToast({
2627   - title: '购买数量必须是起订量的倍数',
2628   - icon: 'none',
2629   - });
2630   - t.goods_num =mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep+steep;
2631   - }
2632   - }
2633   -
2634   -
2635   - //--- 看一下是不是线下库存 ---
2636   - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
2637   - th.check_down_line(t, pitem, item, wareIds);
2638   - } else {
2639   - if (t.goods_num > store_count) {
2640   - wx.showToast({
2641   - title: '购买数量超出商品库存',
2642   - icon: 'none',
2643   - });
2644   - e.setData({
2645   - [txt]: store_count
2646   - });
2647   - e.doCheckAll();
2648   - t.goods_num = store_count;
2649   - }
2650   - e.update_cart(t, pitem, item);
2651   - }
2652   - }
  2604 + var e = this,th = e,user_id = getApp().globalData.user_id;
2653 2605  
2654 2606 // console.log('update');
2655 2607 // console.log('9995959595959',t);
... ... @@ -2666,7 +2618,9 @@ Page({
2666 2618 var promgoodsbuynum = 0;
2667 2619 var goodsbuynum = 0;
2668 2620  
2669   - //--要获得商品,该用户买了多少件,同步应用--
  2621 + var is_showing=0;
  2622 +
  2623 + //--要获得商品,该用户买了多少件,同步应用,用于限购的计算--
2670 2624 await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
2671 2625 data: {
2672 2626 store_id: oo.stoid,
... ... @@ -2686,279 +2640,280 @@ Page({
2686 2640 }
2687 2641 goodsbuynum = buy_num_data.goodsbuynum;
2688 2642  
2689   -
2690 2643 })
2691 2644  
2692 2645 //--> by ty
2693 2646 // var buyed_mum2 = t.goods_num + goodsbuynum;
2694 2647 var buyed_mum2 = t.goods_num;
2695 2648 //<--
  2649 + // 判断当前预购买的数量是否超过可购买的数量,限购还要考虑到商品的库存
  2650 + if (limit > 0) {
2696 2651  
2697   - // 判断当前预购买的数量是否超过可购买的数量
2698   - if (buyed_mum2 > (limit - goodsbuynum) && limit > 0) {
2699   - wx.showToast({
2700   - title: '购买数量超出商品限购',
2701   - icon: 'none',
2702   - });
2703 2652 //getApp().my_warnning('购买数量超出商品限购', 0, th);
2704 2653 var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2705 2654  
2706   - //--> by ty
2707   - var cbuy = limit - goodsbuynum;
2708   - // var cbuy = limit - buyed_mum2 + 1;
2709   - //<--
2710   -
2711   - e.setData({
2712   - // [txt]: cbuy > 0 ? cbuy : 0,
2713   - [txt]: cbuy > 0 ? cbuy : limit,
2714   - });
2715   - e.doCheckAll();
2716   -
2717   - t.goods_num = cbuy > 0 ? cbuy : limit;
2718   -
2719   - if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){
2720   -
2721   - //-- 判断商品是不是 --
2722   - var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id);
2723   -
2724   - var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length);
2725   - var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1);
2726   -
2727   - if(mo_num>1 && t.goods_num<mo_num){
2728   - wx.showToast({
2729   - title: '购买数量小于商品的起订量',
2730   - icon: 'none',
2731   - });
2732   - t.goods_num=0;
2733   - }
2734   -
2735   - if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){
2736   -
2737   - wx.showToast({
2738   - title: '购买数量必须是起订量的倍数',
2739   - icon: 'none',
2740   - });
  2655 + limit = limit - goodsbuynum;
  2656 + if(limit<0) limit=0;
2741 2657  
2742   - t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep
2743   - }
  2658 + if(buyed_mum2>limit){
  2659 + wx.showToast({
  2660 + title: '购买数量超出商品限购',
  2661 + icon: 'none',
  2662 + });
  2663 + is_showing=1;
2744 2664 }
2745   - // t.goods_num = cbuy > 0 ? cbuy : 0,
2746   - e.update_cart(t, pitem, item);
2747   - return false;
2748   - }
2749 2665  
  2666 + // e.setData({
  2667 + // // [txt]: cbuy > 0 ? cbuy : 0,
  2668 + // [txt]: cbuy > 0 ? cbuy : limit,
  2669 + // });
  2670 + //e.doCheckAll();
  2671 + // t.goods_num = cbuy > 0 ? cbuy : limit;
  2672 + //
  2673 + // if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){
  2674 + //
  2675 + // //-- 判断商品是不是 --
  2676 + // var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id);
  2677 + // var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length);
  2678 + // var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1);
  2679 + //
  2680 + // if(mo_num>1 && t.goods_num<mo_num){
  2681 + // wx.showToast({
  2682 + // title: '购买数量小于商品的起订量',
  2683 + // icon: 'none',
  2684 + // });
  2685 + // t.goods_num=0;
  2686 + // }
  2687 + //
  2688 + // if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){
  2689 + //
  2690 + // wx.showToast({
  2691 + // title: '购买数量必须是起订量的倍数',
  2692 + // icon: 'none',
  2693 + // });
  2694 + //
  2695 + // t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep
  2696 + // }
  2697 + // }
  2698 + // // t.goods_num = cbuy > 0 ? cbuy : 0,
  2699 + // e.update_cart(t, pitem, item);
  2700 + // return false;
  2701 + }
  2702 + else limit=100000;
2750 2703  
2751 2704 switch (goodsinfo.prom_type) {
2752 2705 case 1:
2753   - //-- 读取秒杀 --
2754   - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {
2755   - isShowLoading: 0,
2756   - success: function (res_d) {
2757   - if (res_d.data.code == 0 && res_d.data.data) {
2758   - if (t.goods_num > store_count) {
2759   - // wx.showModal({
2760   - // title: '提示',
2761   - // content: '购买数量超出商品库存'
2762   - // });
  2706 + //-- 读取秒杀 --
  2707 + var res_d= await getApp().promiseGet("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, {});
  2708 + if (res_d.data.code == 0 && res_d.data.data) {
  2709 +
  2710 + var cbuy=limit;
  2711 + if (t.goods_num > store_count && !is_showing) {
2763 2712 wx.showToast({
2764 2713 title: '购买数量超出商品库存',
2765 2714 icon: 'none',
2766 2715 });
2767   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2768   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2769   - e.setData({
2770   - [txt]: store_count
2771   - });
2772   - e.doCheckAll();
2773   -
2774   - t.goods_num = store_count;
2775   - e.update_cart(t, pitem, item);
2776   -
2777   - return false;
  2716 + is_showing=1;
2778 2717 }
  2718 + //一直都要给一个最小值,和库存比较
  2719 + if(cbuy>store_count) cbuy=store_count;
2779 2720  
2780 2721 var false_data = res_d.data.data;
2781 2722 //--判断库存--
2782   - if (t.goods_num > false_data.goods_num - false_data.buy_num) {
2783   - // wx.showModal({
2784   - // title: '提示',
2785   - // content: '购买数量超出活动库存'
2786   - // });
  2723 + if (t.goods_num > false_data.goods_num - false_data.buy_num && !is_showing) {
2787 2724 wx.showToast({
2788 2725 title: '购买数量超出活动库存',
2789 2726 icon: 'none',
2790 2727 });
2791   - // getApp().my_warnning('购买数量超出活动库存', 0, th);
2792   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2793   - e.setData({
2794   - [txt]: false_data.goods_num - false_data.buy_num
2795   - });
2796   - e.doCheckAll();
2797   -
2798   - t.goods_num = false_data.goods_num - false_data.buy_num;
2799   - e.update_cart(t, pitem, item);
2800   -
2801   - return false;
  2728 + is_showing=1;
2802 2729 }
  2730 + //一直都要给一个最小值,和活动库存比较
  2731 + if(cbuy>false_data.goods_num - false_data.buy_num) cbuy=false_data.goods_num - false_data.buy_num;
2803 2732  
2804 2733 //--判断redis数量是否已经超出--
2805   - if (t.goods_num > false_data.redisnum) {
2806   - // wx.showModal({
2807   - // title: '提示',
2808   - // content: '购买数量超出商品库存'
2809   - // });
  2734 + if (t.goods_num > false_data.redisnum && !is_showing) {
2810 2735 wx.showToast({
2811 2736 title: '购买数量超出商品库存',
2812 2737 icon: 'none',
2813 2738 });
2814   - //getApp().my_warnning('购买数量超出商品库存', 0, th);
2815   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2816   - e.setData({
2817   - [txt]: false_data.redisnum
2818   - });
2819   - e.doCheckAll();
2820   -
2821   - t.goods_num = false_data.redisnum;
2822   - e.update_cart(t, pitem, item);
2823   - return false;
  2739 + is_showing=1;
2824 2740 }
2825 2741  
  2742 + //一直都要给一个最小值,和活动库存比较
  2743 + if(cbuy>false_data.redisnum) cbuy=false_data.redisnum;
  2744 +
2826 2745 //--活动的限购是不是要判断--
2827   - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) {
2828   - // wx.showModal({
2829   - // title: '提示',
2830   - // content: '购买数量超出秒杀限购'
2831   - // });
2832   - wx.showToast({
2833   - title: '购买数量超出秒杀限购',
2834   - icon: 'none',
2835   - });
2836   - // getApp().my_warnning('购买数量超出秒杀限购', 0, th);
2837   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2838   - e.setData({
2839   - [txt]: false_data.buy_limit
2840   - });
2841   - e.doCheckAll();
2842   - t.goods_num = (false_data.buy_limit - promgoodsbuynum) ? false_data.buy_limit - promgoodsbuynum : 0;
2843   - e.update_cart(t, pitem, item);
2844   - return false;
  2746 + if(false_data.buy_limit > 0) {
  2747 +
  2748 + if(t.goods_num + promgoodsbuynum > false_data.buy_limit && !is_showing){
  2749 + wx.showToast({
  2750 + title: '购买数量超出秒杀限购',
  2751 + icon: 'none',
  2752 + });
  2753 + }
  2754 +
  2755 + var act_limit=false_data.buy_limit-promgoodsbuynum;
  2756 + if(!act_limit) act_limit=0;
  2757 +
  2758 + if(cbuy>act_limit) cbuy=act_limit;
  2759 +
2845 2760 }
  2761 +
  2762 + if(t.goods_num>cbuy) t.goods_num=cbuy;
  2763 +
2846 2764 e.update_cart(t, pitem, item);
2847 2765  
2848   - } else {
2849   - normal_check(store_count, goodsinfo, wareIds);
2850   - }
2851   - }
2852   - })
2853   - break;
  2766 + } else {
  2767 + e.normal_check(t, item, pitem,store_count,limit,goodsinfo, wareIds); //普通商品的调用和计算
  2768 + }
  2769 + break;
2854 2770 case 2:
2855   - getApp().request.promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {}).then(res => {
  2771 + //-- 读取团购 --
  2772 + var res= await getApp().promiseGet("/api/weshop/goods/groupBuy/getActInfo/" + os.stoid + "/" + goodsinfo.goods_id + "/" + goodsinfo.prom_id, {});
2856 2773 if (res.data.code == 0 && res.data.data) {
2857   - if (t.goods_num > store_count) {
2858   - // wx.showModal({
2859   - // title: '提示',
2860   - // content: '购买数量超出商品库存'
2861   - // });
  2774 +
  2775 + var cbuy=limit;
  2776 + if (t.goods_num > store_count && !is_showing) {
2862 2777 wx.showToast({
2863 2778 title: '购买数量超出商品库存',
2864 2779 icon: 'none',
2865 2780 });
2866   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2867   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2868   - e.setData({
2869   - [txt]: store_count
2870   - });
2871   - e.doCheckAll();
2872   -
2873   - t.goods_num = store_count;
2874   - e.update_cart(t, pitem, item);
2875   -
2876   - return false;
  2781 + is_showing=1;
2877 2782 }
  2783 + //一直都要给一个最小值,和库存比较
  2784 + if(cbuy>store_count) cbuy=store_count;
2878 2785  
2879 2786 var gr_data = res.data.data;
2880 2787 //--判断库存--
2881   - if (t.goods_num > gr_data.goods_num - gr_data.buy_num) {
2882   - // wx.showModal({
2883   - // title: '提示',
2884   - // content: '购买数量超出活动库存'
2885   - // });
  2788 + if (t.goods_num > gr_data.goods_num - gr_data.buy_num && !is_showing) {
2886 2789 wx.showToast({
2887 2790 title: '购买数量超出活动库存',
2888 2791 icon: 'none',
2889 2792 });
2890   - // getApp().my_warnning('购买数量超出活动库存', 0, th);
2891   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2892   - e.setData({
2893   - [txt]: gr_data.goods_num - gr_data.buy_num
2894   - });
2895   - e.doCheckAll();
2896   -
2897   - t.goods_num = gr_data.goods_num - gr_data.buy_num;
2898   - e.update_cart(t, pitem, item);
2899   -
2900   - return false;
  2793 + is_showing=1;
2901 2794 }
  2795 + //一直都要给一个最小值,和库存比较
  2796 + if(cbuy>gr_data.goods_num - gr_data.buy_num ) cbuy=gr_data.goods_num - gr_data.buy_num ;
2902 2797  
2903 2798 //--判断redis数量是否已经超出--
2904   - if (t.goods_num > gr_data.redisnum) {
2905   - // wx.showModal({
2906   - // title: '提示',
2907   - // content: '购买数量超出商品库存'
2908   - // });
  2799 + if (t.goods_num > gr_data.redisnum && !is_showing) {
2909 2800 wx.showToast({
2910 2801 title: '购买数量超出商品库存',
2911 2802 icon: 'none',
2912 2803 });
2913   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2914   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2915   - e.setData({
2916   - [txt]: gr_data.redisnum
2917   - });
2918   - e.doCheckAll();
2919   -
2920   - t.goods_num = gr_data.redisnum;
2921   - e.update_cart(t, pitem, item);
2922   - return false;
  2804 + is_showing=1;
2923 2805 }
  2806 + if(cbuy>gr_data.redisnum ) cbuy=gr_data.redisnum;
2924 2807  
2925 2808 //--活动的限购是不是要判断--
2926   - if (t.goods_num + promgoodsbuynum > gr_data.buy_limit && gr_data.buy_limit > 0) {
2927   - // wx.showModal({
2928   - // title: '提示',
2929   - // content: '购买数量超出团购限购'
2930   - // });
2931   - wx.showToast({
2932   - title: '购买数量超出团购限购',
2933   - icon: 'none',
2934   - });
2935   - // getApp().my_warnning('购买数量超出团购限购', 0, th);
2936   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2937   - e.setData({
2938   - [txt]: gr_data.buy_limit
2939   - });
2940   - e.doCheckAll();
  2809 + if (gr_data.buy_limit > 0) {
  2810 + if(t.goods_num + promgoodsbuynum > gr_data.buy_limit && !is_showing){
  2811 + wx.showToast({
  2812 + title: '购买数量超出团购限购',
  2813 + icon: 'none',
  2814 + });
  2815 + is_showing=1;
  2816 + }
  2817 +
  2818 + var act_limit=gr_data.buy_limit-promgoodsbuynum;
  2819 + if(!act_limit) act_limit=0;
  2820 +
  2821 + if(cbuy>act_limit) cbuy=act_limit;
2941 2822  
2942   - t.goods_num = (gr_data.buy_limit - promgoodsbuynum) ? gr_data.buy_limit - promgoodsbuynum : 0;
2943   - e.update_cart(t, pitem, item);
2944   - return false;
2945 2823 }
  2824 +
  2825 + if(t.goods_num>cbuy) t.goods_num=cbuy;
  2826 +
2946 2827 e.update_cart(t, pitem, item);
2947 2828  
2948 2829 } else {
2949   - normal_check(store_count, goodsinfo, wareIds);
  2830 + e.normal_check(t, item, pitem,store_count,limit,goodsinfo, wareIds); //普通商品的调用和计算
2950 2831 }
2951   - })
2952   - break;
  2832 + break;
2953 2833 default:
2954   - var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id);
2955   - normal_check(store_count, goodsinfo, wareIds,cx_arr);
  2834 + e.normal_check(t, item, pitem,store_count,limit, goodsinfo, wareIds); //普通商品的调用和计算
2956 2835 break
2957 2836 }
2958 2837 }
2959 2838 });
2960 2839 },
2961 2840  
  2841 + //-- 这个函数在计算的时候,要包含限购的那一部分 --
  2842 + async normal_check(t, item, pitem,store_count,limit,goodsinfo, wareIds){
  2843 +
  2844 + var cx_arr=await getApp().get_has_cx_act(goodsinfo.goods_id);
  2845 +
  2846 + var th=this;
  2847 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2848 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2849 +
  2850 + //--- 看一下是不是线下库存 ---
  2851 + if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
  2852 +
  2853 + //th.check_down_line(t, pitem, item, wareIds,limit);
  2854 + var ob = {};
  2855 + await th.check_down_line_next(t, pitem, item, erpwareid, function (res) {
  2856 + ob = res;
  2857 + });
  2858 +
  2859 +
  2860 + } else {
  2861 +
  2862 + var is_showing=0;
  2863 + var cbuy=limit;
  2864 + if (t.goods_num > limit) {
  2865 + wx.showToast({
  2866 + title: '购买数量超出商品限购',
  2867 + icon: 'none',
  2868 + });
  2869 + is_showing=1;
  2870 + }
  2871 +
  2872 + if (t.goods_num > store_count) {
  2873 + if(!is_showing){
  2874 + wx.showToast({
  2875 + title: '购买数量超出商品库存',
  2876 + icon: 'none',
  2877 + });
  2878 + is_showing=1;
  2879 + }
  2880 + }
  2881 + if(cbuy>store_count) cbuy=store_count;
  2882 +
  2883 + if(t.goods_num>cbuy) t.goods_num=cbuy;
  2884 +
  2885 + if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){
  2886 + var mo_num=getApp().get_limit_qty(goodsinfo,cx_arr.length);
  2887 + var steep=getApp().get_limit_qty(goodsinfo,cx_arr.length,1);
  2888 +
  2889 + if(mo_num>1 && t.goods_num<mo_num){
  2890 + if(!is_showing) {
  2891 + wx.showToast({
  2892 + title: '购买数量小于商品的起订量',
  2893 + icon: 'none',
  2894 + });
  2895 + }
  2896 + t.goods_num=mo_num;
  2897 + }
  2898 +
  2899 + if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0){
  2900 + if(!is_showing) {
  2901 + wx.showToast({
  2902 + title: '购买数量必须是起订量的倍数',
  2903 + icon: 'none',
  2904 + });
  2905 + }
  2906 + if(t.goods_num<mo_num) t.goods_num=mo_num;
  2907 + else{
  2908 + t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep
  2909 + }
  2910 + }
  2911 + }
  2912 +
  2913 + th.update_cart(t, pitem, item);
  2914 + }
  2915 + },
  2916 +
2962 2917 //----------------------更新购物数量,加减,调用接口---------------------
2963 2918 postCardList_ser: async function (t, item, pitem) {
2964 2919 var e = this,
... ... @@ -3156,11 +3111,10 @@ Page({
3156 3111 promcardbuynum: tt.data.data.promcardbuynum,
3157 3112 cardbuynum: tt.data.data.cardbuynum,
3158 3113 });
3159   - };
  3114 + }
3160 3115 });
3161 3116  
3162 3117  
3163   -
3164 3118 var buylimit = 0
3165 3119 await getApp().request.promiseGet("/api/ms/flash_sale/getNew/" + t.store_id + "/" + getApp().globalData.user_id + "/" + t.prom_id, {
3166 3120  
... ... @@ -3170,7 +3124,7 @@ Page({
3170 3124 th.data.sele_g = res.data.data;
3171 3125 th.data.sele_g.viplimited = res.data.data.buy_limit;
3172 3126 buylimit = res.data.data.buy_limit;
3173   - };
  3127 + }
3174 3128 });
3175 3129  
3176 3130  
... ... @@ -3188,18 +3142,15 @@ Page({
3188 3142 });
3189 3143 // getApp().my_warnning('超出活动限购', 0, th);
3190 3144 th.setData({ [txt]: buylimit });
3191   -
3192 3145 };
3193 3146  
3194 3147 }
3195 3148  
3196   -
3197 3149 th.doCheckAll();
3198 3150 th.update_cart_ser(t, pitem, item);
3199 3151  
3200 3152  
3201   -
3202   - };
  3153 + }
3203 3154 },
3204 3155  
3205 3156  
... ... @@ -3232,11 +3183,9 @@ Page({
3232 3183  
3233 3184 var this_obj = this.data.requestData[pitem].goods[item];
3234 3185  
3235   - if (th.data.sales_rules == 3 && this_obj.selected) {
3236   -
  3186 + if (th.data.sales_rules >= 2 && this_obj.selected) {
3237 3187  
3238 3188 var goods_id = this_obj.goods_id;
3239   -
3240 3189 var num = 0;
3241 3190  
3242 3191 for (let i = 0; i < this.data.requestData.length; i++) {
... ... @@ -3257,17 +3206,15 @@ Page({
3257 3206 return false;
3258 3207 }
3259 3208  
3260   -
3261   -
3262 3209 }
3263 3210 }
3264 3211  
3265 3212  
3266   -
3267   -
3268 3213 this.update_cart(t, pitem, item);
3269 3214 },
3270 3215  
  3216 +
  3217 +
3271 3218 //---检验线下库存的数量的子函数---
3272 3219 async check_down_line_next(t, pitem, item, erpwareid, func) {
3273 3220  
... ...
pages/goods/goodsInfo/goodsInfo.js
... ... @@ -2444,11 +2444,14 @@ Page({
2444 2444 //------检查数量是不是超出限购------
2445 2445 checkCartNum: function (t) {
2446 2446 var th = this;
  2447 +
2447 2448 var mo_num=getApp().get_limit_qty(th.data.sele_g,th.data.is_act);
2448 2449 var steep=getApp().get_limit_qty(th.data.sele_g,th.data.is_act,1);
2449   -
2450 2450 this.get_buy_num(this.data.sele_g, async function () {
2451 2451  
  2452 + var is_show_bs=0;
  2453 + var l_num=-1;
  2454 +
2452 2455 //--判断商品是否超出限购--
2453 2456 if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {
2454 2457  
... ... @@ -2459,13 +2462,16 @@ Page({
2459 2462 title: '超出商品限购',
2460 2463 icon: 'none',
2461 2464 });
  2465 +
  2466 + is_show_bs=1;
  2467 +
2462 2468 // s.my_warnning('超出商品限购', 0, th);
2463   - var num = th.data.sele_g.viplimited - gd_buy_num;
2464   - if (num < 0) num = 0;
2465   - th.setData({
2466   - goodsInputNum: num
2467   - })
2468   - return false;
  2469 + l_num = th.data.sele_g.viplimited - gd_buy_num;
  2470 + if (l_num < 0) l_num = 0;
  2471 + // th.setData({
  2472 + // goodsInputNum: num
  2473 + // })
  2474 + // return false;
2469 2475 }
2470 2476 }
2471 2477  
... ... @@ -2533,25 +2539,47 @@ Page({
2533 2539 }
2534 2540 }
2535 2541  
  2542 + //-- 限购数量也要进行计算一下 --
  2543 + if(l_num>-1){
  2544 + if(e>l_num) e=l_num;
  2545 + }
  2546 +
2536 2547 //--- 促销活动也不控制起订量, 这里很重要的一个控制,起订量的 ----
2537 2548 if([0,3,5,7,10].indexOf(p_type)>-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){
2538   - if(t<mo_num) t=mo_num;
  2549 + if(t<mo_num) {
  2550 + t=mo_num;
  2551 + if(!is_show_bs) {
  2552 + wx.showToast({
  2553 + title: '购买数未达到起订量',
  2554 + icon: 'none',
  2555 + });
  2556 + }
  2557 + is_show_bs=1;
  2558 + }
2539 2559 if(t>mo_num && (t-mo_num)%steep!=0){
2540   - wx.showToast({
2541   - title: '购买数必须是起订量的倍数',
2542   - icon: 'none',
2543   - });
  2560 +
  2561 + if(!is_show_bs){
  2562 + wx.showToast({
  2563 + title: '购买数必须是起订量的倍数',
  2564 + icon: 'none',
  2565 + });
  2566 + }
  2567 +
2544 2568 t=mo_num+ parseInt((t-mo_num)/steep)*steep+steep;
  2569 + is_show_bs=1;
2545 2570 }
2546 2571 }
2547 2572  
2548 2573 if (!e) e = 0;
2549 2574 //库存不足,不增加
2550 2575 if (e < t) {
2551   - wx.showToast({
2552   - title: '库存不足',
2553   - icon: 'none',
2554   - });
  2576 + if(!is_show_bs){
  2577 + wx.showToast({
  2578 + title: '库存不足',
  2579 + icon: 'none',
  2580 + });
  2581 + }
  2582 +
2555 2583 // wx.showModal({title: '库存不足',});
2556 2584 if (e < 0) e = 0;
2557 2585  
... ...