Commit 660d0b171147ef017d8710ee93065fae35e4a711

Authored by WXD-SEASON\season
2 parents b6e96511 80cbc1b6

合并dev_oa_fu6

... ... @@ -1314,7 +1314,6 @@ App({
1314 1314 var stoid=this.globalData.setting.stoid;
1315 1315 var user_id=this.globalData.user_id;
1316 1316  
1317   -
1318 1317 this.getConfig2(async function (e){
1319 1318 if(e && e.switch_list) conf=JSON.parse(e.switch_list);
1320 1319 if(conf && conf.express_searchtype==1){
... ... @@ -1335,7 +1334,43 @@ App({
1335 1334 return true;
1336 1335 }
1337 1336 return false;
  1337 + },
  1338 + //---- 判断是不是虚拟商品狗阿米 -----
  1339 + is_virtual(gd){
  1340 + if(gd.is_virtual==2) return true;
  1341 + return false;
  1342 + },
  1343 +
  1344 + /**
  1345 + *
  1346 + * @param gd 商品
  1347 + * @param act 活动
  1348 + * @param get_type 0默认 1是加和减的时候
  1349 + */
  1350 + get_limit_qty(gd,act,get_type){
  1351 + var islimit=gd.erp_islimit; //是不是限购
  1352 + var limittype=gd.erp_limittype; //不低于0、倍数1
  1353 + var limitqty=gd.erp_limitqty; //起购量
  1354 +
  1355 + //-- 如果有活动的时候 --
  1356 + if(act){
  1357 + islimit=act.islimit;
  1358 + limittype=act.limittype;
  1359 + limitqty=act.limitqty;
  1360 + }
  1361 +
  1362 + //-- 不是限购的时候,返回1--
  1363 + if(!islimit) return 1;
  1364 + //-- 默认的时候 --
  1365 + if(!get_type) return limitqty;
  1366 + //不低于的时候,加减的时候
  1367 + if(!limittype) return 1;
  1368 + //倍数,加减的时候
  1369 + return limitqty;
1338 1370  
1339 1371 }
1340 1372  
  1373 +
  1374 +
  1375 +
1341 1376 });
... ...
components/diy_seckill/diy_seckill.wxml
... ... @@ -481,52 +481,12 @@
481 481 </view>
482 482 </block>
483 483  
484   -<<<<<<< HEAD
485   - <view class="o1_right">
486   - <view class="sp_wzi ellipsis-2">{{aitem.goods_name}}</view>
487   - <view class="o1_sj_kill">
488   - <text>{{aitem.djs.day}}</text> 天
489   - <text>{{aitem.djs.hou}}</text> :
490   - <text>{{aitem.djs.min}}</text> :
491   - <text>{{aitem.djs.sec}}</text>
492   -
493   - </view>
494   - <view class="money">
495   - <view class='sp_jg'>¥{{aitem.price}}</view>
496   -<!-- <view class='sp_jgx'>¥{{aitem.market_price}}</view>-->
497   - </view>
498   - <block wx:if="{{aitem.status == 0}}">
499   - <view class="rob">
500   - <view class="wo" style="background-color: #adadad">正在预热</view>
501   - </view>
502   - </block>
503   -
504   - <block wx:if="{{aitem.status == 3}}">
505   - <view class="rob">
506   - <view class="wo" style="background-color: #adadad">已结束</view>
507   - </view>
508   - </block>
509   - <block wx:else>
510   - <block wx:if="{{aitem.status == 1}}">
511   - <view class="rob">
512   - <view class="wo">我要抢</view>
513   - </view>
514   - </block>
515   -
516   - <block wx:if="{{aitem.status == 2}}">
517   - <view class="rob">
518   - <view class="wo" style="background-color: #adadad">已抢光</view>
519   - </view>
520   - </block>
521   - </block>
522   -=======
523 484 <block wx:if="{{aitem.status == 2}}">
524 485 <view class="rob">
525 486 <view class="wo" style="background-color: #adadad">已抢光</view>
526 487 </view>
527 488 </block>
528 489 </block>
529   ->>>>>>> dev_component
530 490  
531 491  
532 492 </view>
... ...
packageA/pages/goodsInfo/goodsInfo.js
... ... @@ -3894,507 +3894,7 @@ Page({
3894 3894 });
3895 3895 },
3896 3896  
3897   -
3898   -
3899   -
3900   -
3901   -
3902   -
3903   - //-- 加入购物的函数 --
3904   - add_cart_func: function (t) {
3905   - var i = getApp().request;
3906   - if (oo.user_id == null) {
3907   - return s.my_warnning("还未登录!", 0, this);
3908   - }
3909   -
3910   - if (!getApp().globalData.userInfo) {
3911   - return s.my_warnning("还未登录!", 0, this);
3912   - }
3913   -
3914   - var e = this,
3915   - th = e,
3916   - a = 0,
3917   - o = this.data.sele_g;
3918   - a = o.goods_id;
3919   -
3920   - //----------添加到购物车时,要判断限购数量,--------
3921   - e.get_buy_num(o, function (ee) {
3922   - //---判断商品是否超出限购---
3923   - if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {
3924   - if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) {
3925   - // wx.showModal({
3926   - // title: '提示',
3927   - // content: '超出活动限购数量'
3928   - // });
3929   - getApp().my_warnning('超出活动限购数量', 0, self);
3930   - return false;
3931   - }
3932   - }
3933   - //---判断商品是否超出活动限购---
3934   - if ((th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0) && !th.data.is_normal) {
3935   - if (th.data.goodsInputNum + th.data.prom_buy_num > th.data.prom_buy_limit) {
3936   - // wx.showModal({
3937   - // title: '提示',
3938   - // content: '超出活动限购数量'
3939   - // });
3940   - getApp().my_warnning('超出活动限购数量', 0, self);
3941   - return false;
3942   - }
3943   - }
3944   -
3945   - if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th);
3946   - if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined)
3947   - th.setData({
3948   - sto_sele_name: ""
3949   - });
3950   - if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th);
3951   -
3952   - //--------------此时操作的数据------------
3953   - var newd = {
3954   - goods_id: o.goods_id,
3955   - goods_num: th.data.goodsInputNum,
3956   - pick_id: th.data.sto_sele_id,
3957   - user_id: oo.user_id,
3958   - store_id: th.data.stoid,
3959   - goods_price: o.shop_price,
3960   - member_goods_price: o.shop_price,
3961   - goods_name: o.goods_name,
3962   - goods_sn: o.goods_sn,
3963   - sku: o.sku,
3964   - prom_id: th.data.sele_g.prom_id,
3965   - prom_type: th.data.sele_g.prom_type,
3966   - };
3967   -
3968   - //---是不是从收藏夹出来的---
3969   - if (th.data.c_guide_id) {
3970   - newd['guide_id'] = th.data.c_guide_id;
3971   - newd['guide_type'] = 2;
3972   - if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 3;
3973   - } else {
3974   - if (getApp().globalData.guide_id) {
3975   - newd['guide_id'] = getApp().globalData.guide_id;
3976   - newd['guide_type'] = 0;
3977   - if ("add" == t.currentTarget.dataset.action) newd['guide_type'] = 1;
3978   - }
3979   - }
3980   - if(getApp().globalData.groupchat_id){
3981   - newd['groupchat_id'] = getApp().globalData.groupchat_id;
3982   - }
3983   - //让商品带上房间号
3984   - //让商品带上房间号
3985   - if (th.data.sys_switch.is_skuroom_id == 1) {
3986   - if (th.data.data.goods_id == getApp().globalData.room_goods_id) {
3987   - newd.room_id = getApp().globalData.room_id;
3988   - }
3989   - } else {
3990   - if (newd.goods_id == getApp().globalData.room_goods_id) newd.room_id = getApp().globalData.room_id;
3991   - }
3992   -
3993   - //如果是积分够,is_integral_normal就要有积分购普通购买字段
3994   - if (o.prom_type == 4) {
3995   - newd.is_integral_normal = 1;
3996   - }
3997   -
3998   - //如果有线下取价
3999   - if (o.offline_price) {
4000   - newd.offline_price = o.offline_price;
4001   - newd.pricing_type = o.pricing_type;
4002   - }
4003   -
4004   - //-----如果是秒杀,团购,积分购,拼团-----
4005   - if (th.data.prom_type == 1 || th.data.prom_type == 2) {
4006   -
4007   - if (th.data.openSpecModal_flash_normal) {
4008   -
4009   - newd.prom_type = 0;
4010   - newd.prom_id = 0;
4011   -
4012   - //---如果是线下门店销售的时候---
4013   - if (th.data.sales_rules == 2) {
4014   - var pick = th.get_pick_from_list(th.data.sto_sele_id)
4015   - //---通过接口获取门店的线下库存信息--
4016   - getApp().request.get("/api/weshop/goods/getWareStorages", {
4017   - data: {
4018   - storageNos: pick.pickup_no,
4019   - wareIds: encodeURIComponent(th.data.sele_g.erpwareid),
4020   - storeId: os.stoid
4021   - },
4022   - success: function (res) {
4023   - if (res.data.code == 0) {
4024   - if (res.data.data.pageData.length > 0) {
4025   - var CanOutQty = res.data.data.pageData[0].CanOutQty;
4026   - if (CanOutQty < e.data.goodsInputNum) {
4027   - return s.my_warnning("库存不足!", 0, th);
4028   - }
4029   - //在调一次接口,读取商品的预出库的数量,lock
4030   - getApp().request.get("/api/weshop/order/ware/lock/page", {
4031   - data: {
4032   - store_id: os.stoid,
4033   - wareId: th.data.sele_g.goods_id,
4034   - storageId: pick.pickup_id,
4035   - pageSize: 1000
4036   - },
4037   - success: function (res_data) {
4038   - if (res_data.data.code == 0 && res_data.data.data.total > 0) {
4039   -
4040   - var lock = 0;
4041   - for (var i in res_data.data.data.pageData) {
4042   - lock += res_data.data.data.pageData[i].outQty;
4043   - }
4044   -
4045   - if (CanOutQty <= lock) {
4046   - return s.my_warnning("库存不足!", 0, th);
4047   - }
4048   - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);
4049   - } else {
4050   - th.add_cart_next(e, t, a, o, newd, CanOutQty);
4051   - }
4052   - }
4053   - })
4054   - } else {
4055   - return s.my_warnning("库存不足!", 0, th);
4056   - }
4057   -
4058   - }
4059   - }
4060   - })
4061   - } else {
4062   - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
4063   - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
4064   - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步
4065   - }
4066   -
4067   - return false;
4068   - }
4069   -
4070   -
4071   - newd.goods_price = th.data.prom_price;
4072   - newd.member_goods_price = th.data.prom_price,
4073   - newd.prom_type = th.data.prom_type;
4074   - newd.prom_id = th.data.prom_id;
4075   -
4076   - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
4077   - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
4078   -
4079   - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步
4080   -
4081   - } else if (o.prom_type == 7) {
4082   -
4083   - //判断进行中的活动,是不是要判断线下库存
4084   - th.check_zh_acting(function (ee) {
4085   - newd.prom_id = 0;
4086   - newd.prom_type = 0;
4087   - if (ee && th.data.sele_g.act) {
4088   - newd.prom_id = th.data.sele_g.act.id;
4089   - newd.prom_type = 7;
4090   - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
4091   - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
4092   - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步
4093   - return false;
4094   - } else {
4095   - //---如果是线下门店销售的时候---
4096   - if (th.data.sales_rules == 2) {
4097   - var pick = th.get_pick_from_list(th.data.sto_sele_id)
4098   - //---通过接口获取门店的线下库存信息--
4099   - getApp().request.get("/api/weshop/goods/getWareStorages", {
4100   - data: {
4101   - storageNos: pick.pickup_no,
4102   - wareIds: encodeURIComponent(th.data.sele_g.erpwareid),
4103   - storeId: os.stoid
4104   - },
4105   - success: function (res) {
4106   - if (res.data.code == 0) {
4107   - if (res.data.data.pageData.length > 0) {
4108   - var CanOutQty = res.data.data.pageData[0].CanOutQty;
4109   - if (CanOutQty < e.data.goodsInputNum) {
4110   - return s.my_warnning("库存不足!", 0, th);
4111   - }
4112   - //在调一次接口,读取商品的预出库的数量,lock
4113   - getApp().request.get("/api/weshop/order/ware/lock/page", {
4114   - data: {
4115   - store_id: os.stoid,
4116   - wareId: th.data.sele_g.goods_id,
4117   - storageId: pick.pickup_id,
4118   - pageSize: 1000
4119   - },
4120   - success: function (res_data) {
4121   - if (res_data.data.code == 0 && res_data.data.data.total > 0) {
4122   -
4123   - var lock = 0;
4124   - for (var i in res_data.data.data.pageData) {
4125   - lock += res_data.data.data.pageData[i].outQty;
4126   - }
4127   -
4128   - if (CanOutQty <= lock) {
4129   - return s.my_warnning("库存不足!", 0, th);
4130   - }
4131   - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);
4132   - } else {
4133   - th.add_cart_next(e, t, a, o, newd, CanOutQty);
4134   - }
4135   - }
4136   - })
4137   - } else {
4138   - return s.my_warnning("库存不足!", 0, th);
4139   - }
4140   -
4141   - }
4142   - }
4143   - })
4144   - } else {
4145   - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
4146   - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
4147   - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步
4148   - }
4149   - }
4150   - })
4151   -
4152   - }
4153   - else if (th.data.prom_type == 0 || th.data.prom_type == 3 || th.data.prom_type == 4 || th.data.prom_type == 5 || th.data.prom_type == 10) {
4154   - newd.prom_type = 0;
4155   - newd.prom_id = 0;
4156   -
4157   - if (th.data.prom_type == 10) {
4158   - newd.prom_type = th.data.prom_type;
4159   - newd.prom_id = th.data.prom_id;
4160   - }
4161   -
4162   - //---如果是线下门店销售的时候---
4163   - if (th.data.sales_rules == 2) {
4164   - var pick = th.get_pick_from_list(th.data.sto_sele_id)
4165   - //---通过接口获取门店的线下库存信息--
4166   - getApp().request.get("/api/weshop/goods/getWareStorages", {
4167   - data: {
4168   - storageNos: pick.pickup_no,
4169   - wareIds: encodeURIComponent(th.data.sele_g.erpwareid),
4170   - storeId: os.stoid
4171   - },
4172   - success: function (res) {
4173   - if (res.data.code == 0) {
4174   - if (res.data.data.pageData.length > 0) {
4175   - var CanOutQty = res.data.data.pageData[0].CanOutQty;
4176   - if (CanOutQty < e.data.goodsInputNum) {
4177   - return s.my_warnning("库存不足!", 0, th);
4178   - }
4179   - //在调一次接口,读取商品的预出库的数量,lock
4180   - getApp().request.get("/api/weshop/order/ware/lock/page", {
4181   - data: {
4182   - store_id: os.stoid,
4183   - wareId: th.data.sele_g.goods_id,
4184   - storageId: pick.pickup_id,
4185   - pageSize: 1000
4186   - },
4187   - success: function (res_data) {
4188   - if (res_data.data.code == 0 && res_data.data.data.total > 0) {
4189   -
4190   - var lock = 0;
4191   - for (var i in res_data.data.data.pageData) {
4192   - lock += res_data.data.data.pageData[i].outQty;
4193   - }
4194   -
4195   - if (CanOutQty <= lock) {
4196   - return s.my_warnning("库存不足!", 0, th);
4197   - }
4198   - th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);
4199   - } else {
4200   - th.add_cart_next(e, t, a, o, newd, CanOutQty);
4201   - }
4202   - }
4203   - })
4204   - } else {
4205   - return s.my_warnning("库存不足!", 0, th);
4206   - }
4207   -
4208   - }
4209   - }
4210   - })
4211   - } else {
4212   - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th);
4213   - if (o.store_count < e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th);
4214   - th.add_cart_next(e, t, a, o, newd); //加入购物车下一步
4215   - }
4216   - }
4217   - })
4218   - },
4219   -
4220   - //---加入购物车的最后一步---
4221   - add_cart_next(e, t, a, o, newd, CanOutQty) {
4222   - var th = this, i = getApp().request;
4223   - //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------
4224   - if ((o.prom_type != 1 || o.prom_id <= 0) && ((o.prom_type != 6 && o.prom_type != 4 && o.prom_type != 2 ) || th.data.is_normal)) {
4225   - var conf = th.data.bconfig;
4226   - if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) {
4227   - var s_list = JSON.parse(conf.switch_list);
4228   - var now = ut.gettimestamp();
4229   -
4230   -
4231   - var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/');
4232   - var end = new Date(str);
4233   - end = Date.parse(end) / 1000;
4234   -
4235   - //--如果后台有开启等级价的功能,而且会员的等级没有过期的情况下--
4236   - if (parseInt(s_list.rank_switch) == 2 && end > now) {
4237   - var card_price = o[getApp().globalData.userInfo['card_field']];
4238   - //如果会员有等级价
4239   - if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null
4240   - && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) {
4241   - newd.goods_price = card_price;
4242   - newd.member_goods_price = card_price;
4243   - }
4244   - }
4245   - }
4246   - }
4247   -
4248   - //if (this.data.data.goods.is_virtual) return this.buyVirtualGoods(d);
4249   - if ("add" == t.currentTarget.dataset.action) {
4250   -
4251   - if (th.data.prom_goods) {
4252   - newd.prom_type = 3;
4253   - newd.prom_id = th.data.prom_goods[0].prom_id;
4254   - }
4255   -
4256   - //----先看会员在购物车中是否加入了该商品-----
4257   - i.get("/api/weshop/cart/page", {
4258   - data: {
4259   - store_id: e.data.stoid,
4260   - user_id: oo.user_id,
4261   - goods_id: a,
4262   - pick_id: e.data.sto_sele_id,
4263   - prom_type:(newd.prom_type?newd.prom_type:0),
4264   - state: 0
4265   - },
4266   - success: function (re) {
4267   -
4268   - //-------如果购物车中有相关的数据---------
4269   - if (re.data.data.total > 0) {
4270   -
4271   - var item = re.data.data.pageData[0];
4272   -
4273   - //判断数量,要看下购物车中有没有该商品
4274   - if (CanOutQty) {
4275   - if (item.goods_num + th.data.goodsInputNum > CanOutQty) {
4276   - return s.my_warnning("库存不足!", 0, th);
4277   - }
4278   - } else {
4279   - if (item.goods_num + th.data.goodsInputNum > o.store_count) {
4280   - return s.my_warnning("库存不足!", 0, th);
4281   - }
4282   - }
4283   -
4284   - var updata = {
4285   - id: item.id,
4286   - goods_num: e.data.goodsInputNum + item.goods_num,
4287   - goods_price: newd.goods_price,
4288   - member_goods_price: newd.goods_price,
4289   - store_id: th.data.stoid,
4290   - };
4291   -
4292   - //---是不是从收藏夹出来的---
4293   - if (th.data.c_guide_id) {
4294   - updata['guide_id'] = th.data.c_guide_id;
4295   - updata['guide_type'] = 3; //加入购物车之后就变成了3
4296   - } else {
4297   - if (getApp().globalData.guide_id) {
4298   - updata['guide_id'] = getApp().globalData.guide_id;
4299   - updata['guide_type'] = 0;
4300   - }
4301   - }
4302   - if(getApp().globalData.groupchat_id){
4303   - updata['groupchat_id'] = getApp().globalData.groupchat_id;
4304   - }
4305   - i.put("/api/weshop/cart/update", {
4306   - data: updata,
4307   - success: function (t) {
4308   - getApp().my_warnning('加入购物车成功', 1, th, 450);
4309   - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum;
4310   - th.setData({
4311   - cartGoodsNum: c_num
4312   - });
4313   - th.closeSpecModal();
4314   - }
4315   - });
4316   - } else {
4317   -
4318   -
4319   - i.post("/api/weshop/cart/save", {
4320   - data: newd,
4321   - success: function (t) {
4322   - getApp().my_warnning('加入购物车成功', 1, th, 450);
4323   - var c_num = th.data.cartGoodsNum + e.data.goodsInputNum;
4324   - th.setData({
4325   - cartGoodsNum: c_num
4326   - });
4327   - th.closeSpecModal();
4328   - }
4329   - });
4330   - }
4331   - }
4332   - });
4333   -
4334   - }
4335   - else {
4336   -
4337   - //这一步主要是要让立即购买 走 购物车的逻辑 参与活动
4338   - if (newd.prom_type == 10 || newd.prom_type == 7) {
4339   - //----先看会员在购物车中是否加入了该商品,立即购买的-----
4340   - getApp().request.get("/api/weshop/cart/page", {
4341   - data: {
4342   - store_id: e.data.stoid,
4343   - user_id: oo.user_id,
4344   - state: 1
4345   - },
4346   - success: function (res) {
4347   - //-------如果购物车中有相关的数据---------
4348   - if (res.data.code == 0 && res.data.data.total > 0) {
4349   - for (let j in res.data.data.pageData) {
4350   - let item_j = res.data.data.pageData[j];
4351   - var url = '/api/weshop/cart/del/' + e.data.stoid + '/' + item_j.id;
4352   - getApp().request.delete(url, {});
4353   - }
4354   - }
4355   - newd.state = 1;
4356   - getApp().request.post("/api/weshop/cart/save", {
4357   - data: newd,
4358   - success: function (t) {
4359   - th.closeSpecModal();
4360   - getApp().goto("/packageE/pages/cart/cart2/cart2?state=1");
4361   - }
4362   - });
4363   - },
4364   - })
4365   - return false;
4366   - }
4367   -
4368   - if (th.data.prom_goods) {
4369   - var prom_d = th.data.prom_goods;
4370   - for (var i in prom_d) {
4371   - //判断活动有俩种条件,0元 1件
4372   - var condition_t = prom_d[i].prom_type;
4373   - switch (condition_t) {
4374   - case 0: //按钱
4375   - if (newd.goods_price >= condition_t) {
4376   - newd.prom_type = 3;
4377   - newd.prom_id = prom_d[i].prom_id;
4378   - }
4379   - break
4380   - case 1://按购买数量
4381   - if (newd.goods_num >= condition_t) {
4382   - newd.prom_type = 3;
4383   - newd.prom_id = prom_d[i].prom_id;
4384   - }
4385   - break;
4386   - }
4387   - }
4388   -
4389   - }
4390   -
4391   - newd['pick_name'] = th.data.sto_sele_name;
4392   - newd['pick_dis'] = th.data.sto_sele_distr;
4393   - th.buyNow(newd);
4394   - }
4395   - },
4396   -
4397   -
  3897 +
4398 3898 click_contact:function () {
4399 3899 getApp().globalData.no_clear=1;
4400 3900 },
... ...
packageA/pages/prom_list/prom_list.js
... ... @@ -351,7 +351,7 @@ Page({
351 351  
352 352 //获取统一条形码,普通商品和优惠促销的商品
353 353 //默认门店要拿下门店库存
354   - if (that.data.sales_rules >= 2) {
  354 + if (!getApp().is_virtual(t.data.data) && !t.data.data.whsle_id && that.data.sales_rules >= 2) {
355 355 //--等待某个值只运行---,这里有可能因为导航的时间太久,而不能计算门店库存
356 356 getApp().waitfor2(that, "wait_for_user_store", "fir_def_store", function () {
357 357  
... ... @@ -1622,12 +1622,12 @@ Page({
1622 1622 var plist=null;
1623 1623 var lock=0;
1624 1624  
1625   - //---如果是活动的时候---
1626   - if(th.data.prom_type==1 || th.data.prom_type==6){
  1625 + //---如果是活动的时候,或者是虚拟商品的时候---
  1626 + if(th.data.prom_type==1 || th.data.prom_type==6 || getApp().is_virtual(goodsinfo)){
1627 1627 func(); return false;
1628 1628 }
1629 1629  
1630   - if(this.data.sales_rules!=2){
  1630 + if(this.data.sales_rules<2){
1631 1631 func();
1632 1632 }else{
1633 1633  
... ...
packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.js
... ... @@ -575,7 +575,9 @@ Page({
575 575 var that = this, th = this;
576 576 getApp().getConfig2(function (e) {
577 577 var sales_rules = e.sales_rules;
578   - if (sales_rules >= 2) {
  578 +
  579 + //虚拟商品, 代发商品不计算
  580 + if (!getApp().is_virtual(that.data.fir_goods) && !that.data.fir_goods.whsle_id && sales_rules >= 2) {
579 581 getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () {
580 582 var lock = 0, plist = null;
581 583 var gd = that.data.fir_goods;
... ... @@ -1570,7 +1572,7 @@ Page({
1570 1572 // title: '提示',
1571 1573 // content: '超出商品限购'
1572 1574 // });
1573   - getApp().my_warnning('超出商品限购', 0, th);
  1575 + getApp().my_warnning('超出商品限购', 0, th);
1574 1576 return false;
1575 1577 }
1576 1578 }
... ... @@ -1581,7 +1583,7 @@ Page({
1581 1583 // title: '提示',
1582 1584 // content: '超出商品活动限购'
1583 1585 // });
1584   - getApp().my_warnning('超出商品活动限购', 0, th);
  1586 + getApp().my_warnning('超出商品活动限购', 0, th);
1585 1587 return false;
1586 1588 }
1587 1589 }
... ... @@ -1672,7 +1674,7 @@ Page({
1672 1674 return false;
1673 1675 } else {
1674 1676 //---如果是线下门店销售的时候---
1675   - if (th.data.sales_rules >= 2) {
  1677 + if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2) {
1676 1678 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1677 1679 //---通过接口获取门店的线下库存信息--
1678 1680 // getApp().request.get("/api/weshop/goods/getWareStorages", {
... ... @@ -1748,45 +1750,9 @@ Page({
1748 1750 newd.prom_id = 0;
1749 1751  
1750 1752 //---如果是线下门店销售的时候---
1751   - if (th.data.sales_rules >= 2) {
  1753 + if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2) {
1752 1754 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1753   - //---通过接口获取门店的线下库存信息--
1754   - // getApp().request.get("/api/weshop/goods/getWareStorages", {
1755   - // data: { storageNos: pick.pickup_no, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid },
1756   - // success: function (res) {
1757   - // if (res.data.code == 0) {
1758   - // if (res.data.data.pageData.length > 0) {
1759   - // var CanOutQty = res.data.data.pageData[0].CanOutQty;
1760   - // if (CanOutQty < e.data.goodsInputNum) {
1761   - // return s.my_warnning("库存不足!", 0, th);
1762   - // }
1763   - // //在调一次接口,读取商品的预出库的数量,lock
1764   - // getApp().request.get("/api/weshop/order/ware/lock/page", {
1765   - // data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, storageId: pick.pickup_id, pageSize: 1000 },
1766   - // success: function (res_data) {
1767   - // if (res_data.data.code == 0 && res_data.data.data.total > 0) {
1768   - //
1769   - // var lock = 0;
1770   - // for (var i in res_data.data.data.pageData) {
1771   - // lock += res_data.data.data.pageData[i].outQty;
1772   - // }
1773   - //
1774   - // if (CanOutQty <= lock) {
1775   - // return s.my_warnning("库存不足!", 0, th);
1776   - // }
1777   - // th.add_cart_next(e, t, a, o, newd, CanOutQty - lock);
1778   - // } else {
1779   - // th.add_cart_next(e, t, a, o, newd, CanOutQty);
1780   - // }
1781   - // }
1782   - // })
1783   - // } else {
1784   - // return s.my_warnning("库存不足!", 0, th);
1785   - // }
1786   - //
1787   - // }
1788   - // }
1789   - // })
  1755 +
1790 1756  
1791 1757  
1792 1758 th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) {
... ... @@ -2188,11 +2154,20 @@ Page({
2188 2154  
2189 2155 //----------增加购买数量-----------
2190 2156 addCartNum: function (t) {
2191   - this.checkCartNum(this.data.goodsInputNum + 1);
  2157 +
  2158 + var add_num=1;
  2159 + if(this.data.is_normal == 1){
  2160 + add_num=getApp().get_limit_qty(this.data.sele_g,0,1);
  2161 + }
  2162 + this.checkCartNum(this.data.goodsInputNum + add_num);
2192 2163 },
2193 2164 //----------减少购买数量-----------
2194 2165 subCartNum: function (t) {
2195   - this.checkCartNum(this.data.goodsInputNum - 1);
  2166 + var add_num=1;
  2167 + if(this.data.is_normal == 1){
  2168 + add_num=getApp().get_limit_qty(this.data.sele_g,0,1);
  2169 + }
  2170 + this.checkCartNum(this.data.goodsInputNum - add_num);
2196 2171 },
2197 2172 //----------输入框输入购买数量-----------
2198 2173 inputCartNum: function (t) {
... ... @@ -2216,6 +2191,7 @@ Page({
2216 2191 //------检查数量是不是超出限购------
2217 2192 checkCartNum: function (t) {
2218 2193 var th = this;
  2194 + var mo_num=getApp().get_limit_qty(th.data.sele_g);
2219 2195 this.get_buy_num(this.data.sele_g, async function () {
2220 2196  
2221 2197 //--判断商品是否超出限购--
... ... @@ -2269,8 +2245,9 @@ Page({
2269 2245 }
2270 2246 }
2271 2247 var e = th.data.sele_g.store_count;
2272   - var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
2273   - if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
  2248 + var p_type = parseInt(th.data.prom_type); //&& p_type!=1 && p_type!=4
  2249 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id &&
  2250 + th.data.sales_rules >= 2 && ( [1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
2274 2251 if (!th.data.def_pick_store) {
2275 2252 wx.showModal({ title: '请选择门店', });
2276 2253 return false;
... ... @@ -2283,9 +2260,20 @@ Page({
2283 2260 if (e < t) {
2284 2261 wx.showModal({ title: '库存不足', });
2285 2262 if (e < 0) e = 0;
  2263 +
  2264 + if(th.data.is_normal == 1){
  2265 + if(e<mo_num) e=mo_num;
  2266 + }
  2267 +
2286 2268 th.setData({ goodsInputNum: e }); return false;
2287 2269 }
2288 2270 t > e || 0 == e ? t = e : t < 1 && (t = 1);
  2271 +
  2272 + //只有普通商品才有起购数
  2273 + if(th.data.is_normal == 1){
  2274 + if(t<mo_num) t=mo_num;
  2275 + }
  2276 +
2289 2277 th.setData({ goodsInputNum: t });
2290 2278 th.is_show_more_buy();
2291 2279  
... ... @@ -2350,8 +2338,9 @@ Page({
2350 2338 }
2351 2339  
2352 2340 var e = th.data.sele_g.store_count;
2353   - var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
2354   - if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
  2341 + var p_type = parseInt(th.data.prom_type); //&& p_type!=1 && p_type!=4
  2342 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id &&
  2343 + th.data.sales_rules >= 2 && ([1,2,4,6,8,9].indexOf(p_type)== -1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
2355 2344 if (!th.data.def_pick_store) {
2356 2345 wx.showModal({ title: '请选择门店', });
2357 2346 return false;
... ... @@ -2983,7 +2972,7 @@ Page({
2983 2972  
2984 2973  
2985 2974 //默认门店要拿下门店库存
2986   - if (that.data.sales_rules >= 2 && that.data.def_pick_store) {
  2975 + if (!getApp().is_virtual(item) && !item.whsle_id && that.data.sales_rules >= 2 && that.data.def_pick_store) {
2987 2976 var lock = 0, plist = null;
2988 2977 // //先读取门店的lock,采用链式写法,少用await
2989 2978 // getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
... ... @@ -3213,7 +3202,8 @@ Page({
3213 3202 th.setData({ all_pick_list: e.data.data.pageData });
3214 3203  
3215 3204 //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购--
3216   - if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 9 && th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) {
  3205 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id &&
  3206 + 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)) {
3217 3207 setTimeout(function () {
3218 3208 th.deal_pickup_dline(e);
3219 3209 }, 800)
... ... @@ -4298,7 +4288,10 @@ Page({
4298 4288 // ind == 1 为普通购买
4299 4289 openSpecModel_pt: function (e) {
4300 4290  
4301   - this.setData({ open_ind_store: 9, goodsInputNum: 1 });
  4291 +
  4292 + var mo_num=getApp().get_limit_qty(this.data.sele_g);
  4293 +
  4294 + this.setData({ open_ind_store: 9, goodsInputNum: mo_num });
4302 4295 // 判断是否有待支付订单
4303 4296 var aid = this.data.group_id;
4304 4297 var switOn = true;
... ... @@ -4472,172 +4465,252 @@ Page({
4472 4465 //----------添加到购物车时,要判断限购数量,--------
4473 4466 e.get_buy_num(o, async function (ee) {
4474 4467  
4475   - //---判断商品是否超出限购---
4476   - // if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {
4477   - // if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) {
4478   - // wx.showModal({
4479   - // title: '提示',
4480   - // content: '超出商品限购'
4481   - // });
4482   -
4483   - // var num = th.data.prom_buy_limit - th.data.prom_buy_num;
4484   - // if (num < 0) num = 0;
4485   - // th.setData({ goodsInputNum: num })
4486   - // return false;
4487   - // }
4488   - // }
  4468 + //---判断商品是否超出限购---
  4469 + if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) {
  4470 + if (th.data.goodsInputNum + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) {
  4471 + wx.showModal({
  4472 + title: '提示',
  4473 + content: '超出商品限购'
  4474 + });
4489 4475  
4490   - //---判断商品是否超出活动限购,拼团的普通购买不计算活动的限购---
4491   - // if (th.data.prom_buy_num != -1 && th.data.prom_buy_limit > 0 && th.data.is_normal != 1) {
4492   - // if (th.data.goodsInputNum + th.data.prom_buy_num > th.data.prom_buy_limit) {
4493   - // wx.showModal({
4494   - // title: '提示',
4495   - // content: '超出商品活动限购'
4496   - // });
4497   -
4498   - // var num = th.data.prom_buy_limit - th.data.prom_buy_num;
4499   - // if (num < 0) num = 0;
4500   - // th.setData({ goodsInputNum: num })
4501   - // return false;
4502   - // }
4503   - // }
  4476 + var num = th.data.prom_buy_limit - th.data.prom_buy_num;
  4477 + if (num < 0) num = 0;
  4478 + th.setData({goodsInputNum: num})
  4479 + return false;
  4480 + }
  4481 + }
4504 4482  
4505   - var redis_num = 0
4506   - //不是普通购买的时候
4507   - // if (th.data.is_normal != 1) {
4508   - // //-------判断活动是否抢光---------
4509   - // await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + os.stoid + "/6/" + th.data.sele_g.prom_id, {
4510   - // 1: 1
4511   - // }).then(res => {
4512   - // redis_num = res.data.data;
4513   - // })
4514 4483  
4515   - // if (th.data.goodsInputNum > redis_num) {
4516   - // wx.showModal({
4517   - // title: '提示',
4518   - // content: '超出商品活动库存'
4519   - // });
  4484 + var redis_num = 0
4520 4485  
4521   - // th.setData({ goodsInputNum: redis_num })
  4486 + if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined)
  4487 + th.setData({
  4488 + sto_sele_name: ""
  4489 + });
4522 4490  
4523   - // return false;
4524   - // }
4525   - // }
  4491 + if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th);
  4492 +
  4493 + //--------------此时操作的数据------------
  4494 + var newd = {
  4495 + goods_id: o.goods_id,
  4496 + goods_num: th.data.goodsInputNum,
  4497 + pick_id: th.data.sto_sele_id,
  4498 + user_id: oo.user_id,
  4499 + store_id: th.data.stoid,
  4500 + goods_price: o.shop_price,
  4501 + goods_name: o.goods_name,
  4502 + goods_sn: o.goods_sn,
  4503 + sku: o.sku,
  4504 + };
4526 4505  
4527   - // if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th);
4528   - // if (th.data.goodsInputNum > o.store_count) {
4529   - // th.setData({ goodsInputNum: o.store_count })
4530   - // return s.my_warnning("超出商品库存", 0, th);
4531   - // }
  4506 + //---是不是从收藏夹出来的---
  4507 + if (th.data.c_guide_id) {
  4508 + newd['guide_id'] = th.data.c_guide_id;
  4509 + newd['guide_type'] = 2;
4532 4510  
4533   - if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined)
4534   - th.setData({
4535   - sto_sele_name: ""
4536   - });
4537   - if (th.data.sto_sele_name == "") return s.my_warnning("请选择门店", 0, th);
  4511 + } else {
  4512 + if (getApp().globalData.guide_id) {
  4513 + newd['guide_id'] = getApp().globalData.guide_id;
  4514 + newd['guide_type'] = 0;
4538 4515  
4539   - //--------------此时操作的数据------------
4540   - var newd = {
4541   - goods_id: o.goods_id,
4542   - goods_num: th.data.goodsInputNum,
4543   - pick_id: th.data.sto_sele_id,
4544   - user_id: oo.user_id,
4545   - store_id: th.data.stoid,
4546   - goods_price: o.shop_price,
4547   - goods_name: o.goods_name,
4548   - goods_sn: o.goods_sn,
4549   - sku: o.sku,
4550   - };
  4516 + }
  4517 + }
  4518 + if (getApp().globalData.groupchat_id) {
  4519 + newd['groupchat_id'] = getApp().globalData.groupchat_id;
  4520 + }
  4521 + //让商品带上房间号
  4522 + if (th.data.sys_switch.is_skuroom_id == 1) {
  4523 + if (th.data.data.goods_id == getApp().globalData.room_goods_id) {
  4524 + newd.room_id = getApp().globalData.room_id;
  4525 + }
  4526 + } else {
  4527 + if (newd.goods_id == getApp().globalData.room_goods_id) {
  4528 + newd.room_id = getApp().globalData.room_id;
  4529 + }
  4530 + }
4551 4531  
4552   - //---是不是从收藏夹出来的---
4553   - if (th.data.c_guide_id) {
4554   - newd['guide_id'] = th.data.c_guide_id;
4555   - newd['guide_type'] = 2;
  4532 + //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------
4556 4533  
4557   - } else {
4558   - if (getApp().globalData.guide_id) {
4559   - newd['guide_id'] = getApp().globalData.guide_id;
4560   - newd['guide_type'] = 0;
  4534 + if (th.data.is_normal == 1) {
  4535 + var conf = th.data.bconfig;
  4536 + if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) {
  4537 + var s_list = JSON.parse(conf.switch_list);
4561 4538  
4562   - }
4563   - }
4564   - if(getApp().globalData.groupchat_id){
4565   - newd['groupchat_id'] = getApp().globalData.groupchat_id;
4566   - }
4567   - //让商品带上房间号
4568   - if (th.data.sys_switch.is_skuroom_id == 1) {
4569   - if (th.data.data.goods_id == getApp().globalData.room_goods_id) {
4570   - newd.room_id = getApp().globalData.room_id;
4571   - }
4572   - } else {
4573   - if (newd.goods_id == getApp().globalData.room_goods_id) {
4574   - newd.room_id = getApp().globalData.room_id;
4575   - }
4576   - }
  4539 + var now = ut.gettimestamp();
  4540 +
  4541 + var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/');
  4542 + var end = new Date(str);
  4543 + end = Date.parse(end) / 1000;
  4544 +
  4545 + //如果后台有开启等级价的功能
  4546 + if (parseInt(s_list.rank_switch) == 2 && end > now) {
  4547 + var card_price = o[getApp().globalData.userInfo['card_field']];
  4548 + //如果会员有等级价
  4549 + if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null
  4550 + && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) {
  4551 + newd.goods_price = card_price;
  4552 + }
  4553 + }
  4554 + }
4577 4555  
4578   - //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------
  4556 + //---如果是线下门店销售的时候---
  4557 + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) {
  4558 + var pick = th.get_pick_from_list(th.data.sto_sele_id)
4579 4559  
4580   - if (th.data.is_normal == 1) {
4581   - var conf = th.data.bconfig;
4582   - if (conf.switch_list && getApp().globalData.userInfo['card_field'] && getApp().globalData.userInfo['card_expiredate']) {
4583   - var s_list = JSON.parse(conf.switch_list);
  4560 + th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) {
  4561 + if (CanOutQty) {
4584 4562  
4585   - var now = ut.gettimestamp();
  4563 + if (CanOutQty < e.data.goodsInputNum) {
  4564 + wx.showToast({
  4565 + title: '库存不足!',
  4566 + icon: 'none',
  4567 + });
  4568 + return false;
  4569 + }
4586 4570  
4587   - var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/');
4588   - var end = new Date(str);
4589   - end = Date.parse(end) / 1000;
  4571 + th.by_next_func(newd);
  4572 + } else {
  4573 + wx.showToast({
  4574 + title: '库存不足!',
  4575 + icon: 'none',
  4576 + });
  4577 + return false;
  4578 + }
  4579 + })
4590 4580  
4591   - //如果后台有开启等级价的功能
4592   - if (parseInt(s_list.rank_switch) == 2 && end > now) {
4593   - var card_price = o[getApp().globalData.userInfo['card_field']];
4594   - //如果会员有等级价
4595   - if (getApp().globalData.userInfo['card_field'] != undefined && getApp().globalData.userInfo['card_field'] != null
4596   - && getApp().globalData.userInfo['card_field'] != "" && card_price > 0) {
4597   - newd.goods_price = card_price;
  4581 + } else {
  4582 + if (o.store_count <= 0) {
  4583 + wx.showToast({
  4584 + title: '库存已为空!',
  4585 + icon: 'none',
  4586 + });
  4587 + return false;
  4588 + //return s.my_warnning("库存已为空!", 0, th);
  4589 + }
  4590 +
  4591 + if (o.store_count < e.data.goodsInputNum) {
  4592 + wx.showToast({
  4593 + title: '库存不足!',
  4594 + icon: 'none',
  4595 + });
  4596 + return false;
  4597 + //return s.my_warnning("库存不足!", 0, th);
  4598 + }
  4599 +
  4600 +
  4601 + th.by_next_func(newd);
4598 4602 }
  4603 + return false;
  4604 +
  4605 +
4599 4606 }
4600   - }
4601   - }
4602 4607  
4603 4608  
4604   - //-----如果是秒杀,团购,积分购,拼团,且不是普通购买-----
4605   - if (th.data.prom_type == 9 && th.data.is_normal != 1) {
4606   - newd.goods_price = th.data.prom_price;
4607   - newd.prom_type = th.data.prom_type;
4608   - newd.prom_id = th.data.prom_id;
4609   - //newd.kt_type = th.data.prom_act.kttype; //开团类型
4610   - newd.is_pt_tz = 0;
4611   - //th.data.sto_sele_distr=1; //直接用自提的方式提交
4612   - if (newd.kt_type > 1) {
4613   - newd.is_pt_tz = 1; //开团类型
  4609 + //-----如果是秒杀,团购,积分购,拼团,且不是普通购买-----
  4610 + if (th.data.prom_type == 9 && th.data.is_normal != 1) {
  4611 + newd.goods_price = th.data.prom_price;
  4612 + newd.prom_type = th.data.prom_type;
  4613 + newd.prom_id = th.data.prom_id;
  4614 + //newd.kt_type = th.data.prom_act.kttype; //开团类型
  4615 + newd.is_pt_tz = 0;
  4616 + //th.data.sto_sele_distr=1; //直接用自提的方式提交
  4617 + if (newd.kt_type > 1) {
  4618 + newd.is_pt_tz = 1; //开团类型
  4619 + }
  4620 + if (newd.kt_type == 3) {
  4621 + th.data.sto_sele_distr = 1;
  4622 + }
  4623 +
  4624 + }
  4625 +
  4626 + // else if (th.data.prom_type == 3) {
  4627 + // newd.prom_type = 0;
  4628 + // newd.prom_id = 0;
  4629 + // }
  4630 +
  4631 + th.by_next_func(newd);
4614 4632 }
4615   - if (newd.kt_type == 3) {
4616   - th.data.sto_sele_distr = 1;
  4633 +
  4634 +
  4635 + )
  4636 + },
  4637 + by_next_func(newd){
  4638 + var th=this;
  4639 + newd['pick_name'] = th.data.sto_sele_name;
  4640 + newd['pick_dis'] = th.data.sto_sele_distr;
  4641 + newd['is_normal'] = th.data.is_normal;
  4642 +
  4643 + if (newd['is_normal']) {
  4644 + newd['is_pd_normal'] = 1;
  4645 + //判断一下有没有全局优惠活动
  4646 + th.buyNow(newd);
  4647 + }
  4648 + else {
  4649 + // 点击立即参团
  4650 + th.buyNow_pt(newd);
  4651 + }
  4652 + },
  4653 +
  4654 + //统一一下获取线下库存的函数
  4655 + async check_CanOutQty(goodsinfo, item, func) {
  4656 +
  4657 + var sales_rules = this.data.sales_rules;
  4658 +
  4659 + var lock_rq = {
  4660 + store_id: os.stoid,
  4661 + wareId: goodsinfo.goods_id,
  4662 + pageSize: 1000
  4663 + };
  4664 +
  4665 + if (sales_rules == 2) {
  4666 + lock_rq.storageId = item.pickup_id
  4667 + } else {
  4668 + lock_rq.appoint_pick_keyid = encodeURIComponent(this.data.appoint_pick_keyid)
  4669 + }
  4670 +
  4671 + var lock = 0;
  4672 + var CanOutQty = 0;
  4673 + var plist = null;
  4674 + //先读取门店的lock
  4675 + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
  4676 + data: lock_rq
  4677 + }).then(res => {
  4678 + if (res.data.code == 0 && res.data.data.total > 0) {
  4679 + for (var i in res.data.data.pageData)
  4680 + lock += res.data.data.pageData[i].outQty;
4617 4681 }
  4682 + })
4618 4683  
  4684 + var sto_req = {
  4685 + wareIds: encodeURIComponent(goodsinfo.erpwareid),
  4686 + storeId: os.stoid
  4687 + }
  4688 + if (sales_rules == 2) {
  4689 + sto_req.storageNos = item.pickup_no
  4690 + } else {
  4691 + sto_req.storageIds = encodeURIComponent(this.data.appoint_pick_keyid)
4619 4692 }
4620 4693  
4621   - // else if (th.data.prom_type == 3) {
4622   - // newd.prom_type = 0;
4623   - // newd.prom_id = 0;
4624   - // }
4625 4694  
4626   - newd['pick_name'] = th.data.sto_sele_name;
4627   - newd['pick_dis'] = th.data.sto_sele_distr;
4628   - newd['is_normal'] = th.data.is_normal;
4629 4695  
4630   - if (newd['is_normal']) {
4631   - newd['is_pd_normal'] = 1;
4632   - //判断一下有没有全局优惠活动
4633   - th.buyNow(newd);
  4696 + //读取线下的门店库存
  4697 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
  4698 + data: sto_req
  4699 + }).then(res => {
  4700 + if (res.data.code == 0 && res.data.data.total > 0) {
  4701 + plist = res.data.data.pageData[0];
  4702 + }
  4703 + })
  4704 +
  4705 + if (plist && plist.CanOutQty - lock > 0) {
  4706 + CanOutQty = plist.CanOutQty - lock;
4634 4707 }
4635   - else {
4636   - // 点击立即参团
4637   - th.buyNow_pt(newd);
4638   - };
4639   - })
4640   - },
  4708 +
  4709 + if (func) func(CanOutQty);
  4710 +
  4711 + },
  4712 +
  4713 +
4641 4714 //----------立即购买_pt-----------
4642 4715 buyNow_pt: function (e) {
4643 4716 s.set_b_now(e);
... ...
packageC/pages/luckyGo/luckyGo_goodsInfo/luckyGo_goodsInfo.wxml
... ... @@ -436,7 +436,7 @@
436 436 <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}">
437 437 (配送不匹配)
438 438 </view>
439   - <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules>=2 && prom_type==0}}">
  439 + <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0}}">
440 440 (库存不足)
441 441 </view>
442 442 </block>
... ... @@ -1064,12 +1064,17 @@
1064 1064 <block wx:if="{{prom_type == 0}}">
1065 1065 <view class="flex">
1066 1066 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view>
  1067 + <!-- 线下门店销售的时候 -->
1067 1068 <block wx:if="{{sales_rules>=2}}">
1068   - <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
1069   - 可售:{{def_pick_store.CanOutQty}}
1070   - </view>
1071   - <view class="spec-goods-stock" wx:else>可售:0</view>
  1069 +
  1070 + <block wx:if="{{!filters.is_virtual_gd(sele_g.is_virtual)}}">
  1071 + <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
  1072 + 可售:{{def_pick_store.CanOutQty}}
  1073 + </view>
  1074 + <view class="spec-goods-stock" wx:else>可售:0</view>
  1075 + </block>
1072 1076 </block>
  1077 +
1073 1078 <block wx:else>
1074 1079 <view class="spec-goods-stock">可售:{{sele_g.store_count}}</view>
1075 1080 </block>
... ... @@ -1105,7 +1110,7 @@
1105 1110 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
1106 1111 <block wx:else>
1107 1112 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
1108   - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules>=2 && prom_type==0}}">
  1113 + <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0}}">
1109 1114 (库存不足)
1110 1115 </view>
1111 1116 </block>
... ... @@ -1177,7 +1182,7 @@
1177 1182 </block>
1178 1183 <block wx:else>
1179 1184 <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 -->
1180   - <block wx:if="{{sales_rules>=2 && prom_type==0}}">
  1185 + <block wx:if="{{!filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0}}">
1181 1186 <block wx:if="{{!def_pick_store.CanOutQty}}">
1182 1187 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">
1183 1188 库存不足
... ...
packageC/pages/presell/cart/cart2.js
... ... @@ -128,8 +128,8 @@ Page({
128 128  
129 129 dis_config:null,
130 130 bn_use_commission:0, //是不是使用佣金
131   -
132   - same_ok:1 //同城配送按钮控制
  131 + same_ok:1,
  132 + appoint_pick_keyid: '',
133 133  
134 134 },
135 135 onLoad: function (t) {
... ... @@ -248,7 +248,8 @@ Page({
248 248 sales_rules: ee.sales_rules,
249 249 rank_switch: json_d.rank_switch,
250 250 is_default_logistics: is_default_logistics,
251   - is_same_city: is_same_city
  251 + is_same_city: is_same_city,
  252 + appoint_pick_keyid: json_d.appoint_pick_keyid
252 253 });
253 254  
254 255 var rank_switch = json_d.rank_switch;
... ... @@ -1284,7 +1285,7 @@ Page({
1284 1285 if (gg.is_pd_normal) goods.is_pd_normal = 1;
1285 1286  
1286 1287 //如果不立即购买或者秒杀,如果是线下库存购买的时候
1287   - if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 8 && th.data.sales_rules == 2) {
  1288 + if ([1,2,4,6,8,9].indexOf(goods.prom_type)== -1 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) {
1288 1289 var isok = 1;
1289 1290 await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) {
1290 1291 isok = res;
... ... @@ -1552,7 +1553,7 @@ Page({
1552 1553 }
1553 1554  
1554 1555 //如果不立即购买或者秒杀,如果是线下库存购买的时候
1555   - if (goods.prom_type == 0 && th.data.sales_rules == 2) {
  1556 + if (goods.prom_type == 0 && th.data.sales_rules >= 2 && !g_item.whsle_id && !getApp().is_virtual(g_item)) {
1556 1557 var isok = 1;
1557 1558 await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) {
1558 1559 isok = res;
... ... @@ -1729,26 +1730,38 @@ Page({
1729 1730 })
1730 1731  
1731 1732 },
  1733 +
  1734 +
  1735 +
1732 1736 //---确认线下门店的数量足不足---
1733 1737 async check_store_num(goods_id, pick, goods_num, func) {
1734 1738 var lock = 0, pick_no, plist, erpwareid;
  1739 +
  1740 + var lock_rq = { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 };
  1741 + if (this.data.sales_rules == 3) {
  1742 + lock_rq.appoint_pick_keyid = this.data.appoint_pick_keyid;
  1743 + delete lock_rq.storageId
  1744 + }
1735 1745 //先读取门店的lock
1736 1746 await getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
1737   - data: { store_id: os.stoid, wareId: goods_id, storageId: pick, pageSize: 1000 }
  1747 + data:lock_rq
1738 1748 }).then(res => {
1739 1749 if (res.data.code == 0 && res.data.data.total > 0) {
1740 1750 for (var i in res.data.data.pageData)
1741 1751 lock += res.data.data.pageData[i].outQty;
1742 1752 }
1743 1753 })
1744   - //先获取门店的编号
1745   - await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, {
1746   - data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick }
1747   - }).then(res => {
1748   - if (res.data.code == 0) {
1749   - pick_no = res.data.data.pickup_no;
1750   - }
1751   - })
  1754 +
  1755 + if (this.data.sales_rules == 2) {
  1756 + //先获取门店的编号
  1757 + await getApp().request.promiseGet("/api/weshop/pickup/get/" + os.stoid + "/" + pick, {
  1758 + data: {storeId: os.stoid, goodsId: t.goods_id, pickupId: pick}
  1759 + }).then(res => {
  1760 + if (res.data.code == 0) {
  1761 + pick_no = res.data.data.pickup_no;
  1762 + }
  1763 + })
  1764 + }
1752 1765 //先获取商品的线下库存
1753 1766 await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + goods_id, {
1754 1767 data: { storeId: os.stoid, goodsId: t.goods_id, pickupId: pick }
... ... @@ -1757,9 +1770,16 @@ Page({
1757 1770 erpwareid = res.data.data.erpwareid;
1758 1771 }
1759 1772 })
  1773 +
  1774 + var sto_rq = { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 };
  1775 + if (this.data.sales_rules == 3) {
  1776 + sto_rq.storageIds = this.data.appoint_pick_keyid;
  1777 + delete sto_rq.storageNos
  1778 + }
  1779 +
1760 1780 //读取线下的门店库存
1761 1781 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
1762   - data: { storageNos: pick_no, wareIds: encodeURIComponent(erpwareid), storeId: os.stoid, pageSize: 2000 }
  1782 + data: sto_rq
1763 1783 }).then(res => {
1764 1784 if (res.data.code == 0) {
1765 1785 plist = res.data.data.pageData[0];
... ...
packageC/pages/presell/goodsInfo/goodsInfo.js
... ... @@ -395,6 +395,8 @@ Page({
395 395 is_closecoupon: json_d.is_closecoupon,
396 396 is_newsales_rules: json_d.is_newsales_rules,
397 397 is_retail_price: json_d.is_retail_price || 0,
  398 + appoint_pick_keyid: json_d.appoint_pick_keyid
  399 +
398 400 });
399 401 // ee.init(gid);
400 402 //------几人评价-------
... ... @@ -1992,7 +1994,8 @@ Page({
1992 1994 th.setData({ all_pick_list: e.data.data.pageData });
1993 1995  
1994 1996 //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购 预售--
1995   - if (th.data.sales_rules == 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4 && th.data.prom_type != 8) || is_normal == 1)) {
  1997 + if(!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id
  1998 + && 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)) {
1996 1999 setTimeout(function () {
1997 2000 th.deal_pickup_dline(e);
1998 2001 }, 800)
... ... @@ -2199,7 +2202,8 @@ Page({
2199 2202  
2200 2203 //------------处理线下门店库存--------
2201 2204 deal_pickup_dline(e) {
2202   - var pkno = [], th = this;
  2205 + var pkno = [],
  2206 + th = this;
2203 2207 if (!th.data.sele_g) return false;
2204 2208  
2205 2209 if (this.data.def_pick_store) {
... ... @@ -2219,78 +2223,165 @@ Page({
2219 2223  
2220 2224 var g_distr_type = th.data.sele_g.distr_type;
2221 2225 var lock = [];
  2226 +
  2227 + var lock_rq = {
  2228 + store_id: os.stoid,
  2229 + wareId: th.data.sele_g.goods_id,
  2230 + pageSize: 1000
  2231 + };
  2232 +
  2233 + if (th.data.sales_rules == 3) {
  2234 + lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid;
  2235 + }
  2236 +
2222 2237 //先读取门店的lock,采用链式写法,少用await
2223 2238 getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
2224   - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, pageSize: 1000 }
  2239 + data: lock_rq
2225 2240 }).then(res => {
2226 2241 if (res.data.code == 0 && res.data.data.total > 0) {
2227 2242 lock = res.data.data.pageData
2228 2243 }
  2244 + var sto_rq = {
  2245 + wareIds: encodeURIComponent(th.data.sele_g.erpwareid),
  2246 + storeId: os.stoid,
  2247 + pageSize: 2000
  2248 + }
  2249 +
  2250 + if (th.data.sales_rules == 3) {
  2251 + sto_rq.storageIds = th.data.appoint_pick_keyid;
  2252 + } else {
  2253 + sto_rq.storageNos = pkno_str;
  2254 + }
  2255 +
  2256 +
2229 2257 //---通过接口获取门店的线下库存信息--
2230 2258 return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
2231   - data: { storageNos: pkno_str, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid, pageSize: 2000 }
  2259 + data: sto_rq
2232 2260 })
2233 2261 }).then(res => {
2234 2262  
2235 2263 wx.hideLoading();
2236 2264 if (res.data.code == 0) {
  2265 +
2237 2266 if (res.data.data.pageData && res.data.data.pageData.length > 0) {
2238   - var plist = res.data.data.pageData;
  2267 +
2239 2268 var def_pick_store = th.data.def_pick_store;
2240   - //以原来的数组为外循环,保证距离的顺序
2241   - for (var kk in o_plist) {
2242   - for (var ii in plist) {
2243   - //线下的门店小心
2244   - var n_item = plist[ii];
2245   - if (n_item.StorageNo == o_plist[kk].pickup_no) {
2246   -
2247   - //拿到锁库的数量
2248   - var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock);
2249   - //可出库数大于预出库库存的数量,可以判断为有库存
2250   - if (n_item.CanOutQty > lock_num) {
2251   - o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num;
2252   - new_list.push(o_plist[kk]);
2253   - //--如果找到默认门店,同时也应该判断配送方式对不对--
2254   - if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
2255   - th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num;
2256   - if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
2257   - th.setData({ def_pick_store: th.data.fir_def_store })
2258   - is_find_def_store = 1;
  2269 + var plist = res.data.data.pageData;
  2270 + if (th.data.sales_rules == 3) {
  2271 + var lock_num = 0;
  2272 + var Qty = 0;
  2273 + //-- 计算锁住的库存 --
  2274 + for (var i in lock) lock_num += lock[i].outQty;
  2275 + Qty = plist[0].CanOutQty - lock_num;
  2276 +
  2277 + if (Qty > 0) {
  2278 + for (var kk in o_plist) {
  2279 + o_plist[kk].CanOutQty = Qty;
  2280 + new_list.push(o_plist[kk]);
  2281 + }
  2282 + if (th.data.fir_def_store &&
  2283 + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) {
  2284 + th.data.fir_def_store.Qty=Qty;
  2285 + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
  2286 + th.setData({
  2287 + def_pick_store: th.data.fir_def_store
  2288 + })
  2289 + is_find_def_store = 1;
  2290 + }
  2291 +
  2292 + } else {
  2293 + th.setData({
  2294 + all_sto: null,
  2295 + only_pk: null,
  2296 + def_pickpu_list: null
  2297 + });
  2298 + return false;
  2299 + }
  2300 +
  2301 + } else {
  2302 +
  2303 +
  2304 + //以原来的数组为外循环,保证距离的顺序
  2305 + for (var kk in o_plist) {
  2306 + for (var ii in plist) {
  2307 + //线下的门店小心
  2308 + var n_item = plist[ii];
  2309 + if (n_item.StorageNo == o_plist[kk].pickup_no) {
  2310 +
  2311 + //拿到锁库的数量
  2312 + var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock);
  2313 + //可出库数大于预出库库存的数量,可以判断为有库存
  2314 + if (n_item.CanOutQty > lock_num) {
  2315 + o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num;
  2316 + new_list.push(o_plist[kk]);
  2317 + //--如果找到默认门店,同时也应该判断配送方式对不对--
  2318 + if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
  2319 + th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num;
  2320 + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
  2321 + th.setData({
  2322 + def_pick_store: th.data.fir_def_store
  2323 + })
  2324 + is_find_def_store = 1;
  2325 + }
2259 2326 }
  2327 + break;
2260 2328 }
2261   - break;
2262 2329 }
2263 2330 }
  2331 +
2264 2332 }
2265 2333  
2266 2334 //数据组装下
2267   - var em = {}; em.data = {}; em.data.data = {};
  2335 + var em = {};
  2336 + em.data = {};
  2337 + em.data.data = {};
2268 2338 em.data.data.total = new_list.length;
2269 2339 em.data.data.pageData = new_list;
2270 2340  
  2341 +
2271 2342 //--如果找到默认门店,同时也应该判断配送方式对不对--
2272   - if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
  2343 + if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id &&
  2344 + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
2273 2345 th.data.fir_def_store.CanOutQty = 0;
2274 2346 //--当选择的门店是客户默认的门店的时候--
2275 2347 if (th.data.def_pick_store && th.data.fir_def_store.pickup_id == th.data.def_pick_store.pickup_id) {
2276   - th.setData({ def_pick_store: th.data.fir_def_store });
  2348 + th.setData({
  2349 + def_pick_store: th.data.fir_def_store
  2350 + });
2277 2351 em.data.data.pageData.unshift(th.data.def_pick_store);
2278 2352 } else {
2279 2353 em.data.data.pageData.splice(1, 0, th.data.fir_def_store);
2280 2354 }
2281 2355 }
2282 2356  
  2357 + for (let j = 0; j < em.data.data.pageData.length; j++) {
  2358 + var iu = em.data.data.pageData[j];
  2359 + if (iu.CanOutQty <= 0) iu.is_no_qyt = 1;
  2360 +
  2361 + }
  2362 +
2283 2363 //---把数组组装进去---
2284 2364 th.deal_pickup(em);
  2365 +
2285 2366 } else {
2286   - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null })
  2367 + th.setData({
  2368 + all_sto: null,
  2369 + only_pk: null,
  2370 + def_pickpu_list: null
  2371 + })
2287 2372 }
  2373 +
2288 2374 } else {
2289   - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null })
  2375 + th.setData({
  2376 + all_sto: null,
  2377 + only_pk: null,
  2378 + def_pickpu_list: null
  2379 + })
2290 2380 }
2291 2381 })
2292 2382 },
2293 2383  
  2384 +
2294 2385 find_lock_num(pick_id, lock) {
2295 2386 var lock_num = 0;
2296 2387 if (!lock) return 0;
... ...
packageC/pages/presell/goodsInfo/goodsInfo.wxml
... ... @@ -194,7 +194,7 @@
194 194 <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}">
195 195 (配送不匹配2)
196 196 </view>
197   - <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}">
  197 + <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0}}">
198 198 (库存不足)
199 199 </view>
200 200 </block>
... ... @@ -630,7 +630,7 @@
630 630 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
631 631 <block wx:else>
632 632 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配1)</view>
633   - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}">
  633 + <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 634 (库存不足)
635 635 </view>
636 636 </block>
... ...
packageC/pages/presell/list/list.wxml
... ... @@ -33,7 +33,7 @@
33 33 </navigator>
34 34 <view class="kill-cont">
35 35 <navigator class="goods-name ellipsis-2"
36   - url="/packageC/pages/presell/pregoodsInfo/goodsInfo?goods_id={{item.goods_id}}&pre_id={{item.id}}">{{item.goods_name}}</navigator>
  36 + url="/packageC/pages/presell/goodsInfo/goodsInfo?goods_id={{item.goods_id}}&pre_id={{item.id}}">{{item.goods_name}}</navigator>
37 37 <view class="flex-vertical xc-strip-frame">
38 38 <view class="xc-strip-blank rel">
39 39  
... ...
packageC/pages/presell/pregoodsInfo/goodsInfo.js
... ... @@ -1916,7 +1916,7 @@ Page({
1916 1916 th.setData({ all_pick_list: e.data.data.pageData });
1917 1917  
1918 1918 //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购--
1919   - if (th.data.sales_rules == 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) {
  1919 + if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && ((th.data.prom_type != 1 && th.data.prom_type != 6 && th.data.prom_type != 4) || is_normal == 1)) {
1920 1920 setTimeout(function () {
1921 1921 th.deal_pickup_dline(e);
1922 1922 }, 800)
... ... @@ -2121,9 +2121,10 @@ Page({
2121 2121 }
2122 2122 },
2123 2123  
2124   - //------------处理线下门店库存--------
  2124 + //------------处理线下门店库存--------
2125 2125 deal_pickup_dline(e) {
2126   - var pkno = [], th = this;
  2126 + var pkno = [],
  2127 + th = this;
2127 2128 if (!th.data.sele_g) return false;
2128 2129  
2129 2130 if (this.data.def_pick_store) {
... ... @@ -2143,78 +2144,166 @@ Page({
2143 2144  
2144 2145 var g_distr_type = th.data.sele_g.distr_type;
2145 2146 var lock = [];
  2147 +
  2148 + var lock_rq = {
  2149 + store_id: os.stoid,
  2150 + wareId: th.data.sele_g.goods_id,
  2151 + pageSize: 1000
  2152 + };
  2153 +
  2154 + if (th.data.sales_rules == 3) {
  2155 + lock_rq.appoint_pick_keyid = th.data.appoint_pick_keyid;
  2156 + }
  2157 +
2146 2158 //先读取门店的lock,采用链式写法,少用await
2147 2159 getApp().request.promiseGet("/api/weshop/order/ware/lock/page", {
2148   - data: { store_id: os.stoid, wareId: th.data.sele_g.goods_id, pageSize: 1000 }
  2160 + data: lock_rq
2149 2161 }).then(res => {
2150 2162 if (res.data.code == 0 && res.data.data.total > 0) {
2151 2163 lock = res.data.data.pageData
2152 2164 }
  2165 + var sto_rq = {
  2166 + wareIds: encodeURIComponent(th.data.sele_g.erpwareid),
  2167 + storeId: os.stoid,
  2168 + pageSize: 2000
  2169 + }
  2170 +
  2171 + if (th.data.sales_rules == 3) {
  2172 + sto_rq.storageIds = th.data.appoint_pick_keyid;
  2173 + } else {
  2174 + sto_rq.storageNos = pkno_str;
  2175 + }
  2176 +
  2177 +
2153 2178 //---通过接口获取门店的线下库存信息--
2154 2179 return getApp().request.promiseGet("/api/weshop/goods/getWareStorages", {
2155   - data: { storageNos: pkno_str, wareIds: encodeURIComponent(th.data.sele_g.erpwareid), storeId: os.stoid, pageSize: 2000 }
  2180 + data: sto_rq
2156 2181 })
2157 2182 }).then(res => {
2158 2183  
2159 2184 wx.hideLoading();
2160 2185 if (res.data.code == 0) {
  2186 +
2161 2187 if (res.data.data.pageData && res.data.data.pageData.length > 0) {
2162   - var plist = res.data.data.pageData;
  2188 +
2163 2189 var def_pick_store = th.data.def_pick_store;
2164   - //以原来的数组为外循环,保证距离的顺序
2165   - for (var kk in o_plist) {
2166   - for (var ii in plist) {
2167   - //线下的门店小心
2168   - var n_item = plist[ii];
2169   - if (n_item.StorageNo == o_plist[kk].pickup_no) {
2170   -
2171   - //拿到锁库的数量
2172   - var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock);
2173   - //可出库数大于预出库库存的数量,可以判断为有库存
2174   - if (n_item.CanOutQty > lock_num) {
2175   - o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num;
2176   - new_list.push(o_plist[kk]);
2177   - //--如果找到默认门店,同时也应该判断配送方式对不对--
2178   - if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
2179   - th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num;
2180   - if (def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
2181   - th.setData({ def_pick_store: th.data.fir_def_store })
2182   - is_find_def_store = 1;
  2190 + var plist = res.data.data.pageData;
  2191 + if (th.data.sales_rules == 3) {
  2192 + var lock_num = 0;
  2193 + var Qty = 0;
  2194 + //-- 计算锁住的库存 --
  2195 + for (var i in lock) lock_num += lock[i].outQty;
  2196 + Qty = plist[0].CanOutQty - lock_num;
  2197 +
  2198 + if (Qty > 0) {
  2199 + for (var kk in o_plist) {
  2200 + o_plist[kk].CanOutQty = Qty;
  2201 + new_list.push(o_plist[kk]);
  2202 + }
  2203 + if (th.data.fir_def_store &&
  2204 + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) {
  2205 + th.data.fir_def_store.Qty=Qty;
  2206 + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
  2207 + th.setData({
  2208 + def_pick_store: th.data.fir_def_store
  2209 + })
  2210 + is_find_def_store = 1;
  2211 + }
  2212 +
  2213 + } else {
  2214 + th.setData({
  2215 + all_sto: null,
  2216 + only_pk: null,
  2217 + def_pickpu_list: null
  2218 + });
  2219 + return false;
  2220 + }
  2221 +
  2222 + } else {
  2223 +
  2224 +
  2225 + //以原来的数组为外循环,保证距离的顺序
  2226 + for (var kk in o_plist) {
  2227 + for (var ii in plist) {
  2228 + //线下的门店小心
  2229 + var n_item = plist[ii];
  2230 + if (n_item.StorageNo == o_plist[kk].pickup_no) {
  2231 +
  2232 + //拿到锁库的数量
  2233 + var lock_num = th.find_lock_num(o_plist[kk].pickup_id, lock);
  2234 + //可出库数大于预出库库存的数量,可以判断为有库存
  2235 + if (n_item.CanOutQty > lock_num) {
  2236 + o_plist[kk].CanOutQty = n_item.CanOutQty - lock_num;
  2237 + new_list.push(o_plist[kk]);
  2238 + //--如果找到默认门店,同时也应该判断配送方式对不对--
  2239 + if (th.data.fir_def_store && n_item.StorageNo == th.data.fir_def_store.pickup_no && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
  2240 + th.data.fir_def_store.CanOutQty = n_item.CanOutQty - lock_num;
  2241 + if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
  2242 + th.setData({
  2243 + def_pick_store: th.data.fir_def_store
  2244 + })
  2245 + is_find_def_store = 1;
  2246 + }
2183 2247 }
  2248 + break;
2184 2249 }
2185   - break;
2186 2250 }
2187 2251 }
  2252 +
2188 2253 }
2189 2254  
2190 2255 //数据组装下
2191   - var em = {}; em.data = {}; em.data.data = {};
  2256 + var em = {};
  2257 + em.data = {};
  2258 + em.data.data = {};
2192 2259 em.data.data.total = new_list.length;
2193 2260 em.data.data.pageData = new_list;
2194 2261  
  2262 +
2195 2263 //--如果找到默认门店,同时也应该判断配送方式对不对--
2196   - if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id && (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
  2264 + if (th.data.fir_def_store && !is_find_def_store && th.data.fir_def_store.pickup_id &&
  2265 + (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || th.data.def_pick_store.distr_type == g_distr_type)) {
2197 2266 th.data.fir_def_store.CanOutQty = 0;
2198 2267 //--当选择的门店是客户默认的门店的时候--
2199 2268 if (th.data.def_pick_store && th.data.fir_def_store.pickup_id == th.data.def_pick_store.pickup_id) {
2200   - th.setData({ def_pick_store: th.data.fir_def_store });
  2269 + th.setData({
  2270 + def_pick_store: th.data.fir_def_store
  2271 + });
2201 2272 em.data.data.pageData.unshift(th.data.def_pick_store);
2202 2273 } else {
2203 2274 em.data.data.pageData.splice(1, 0, th.data.fir_def_store);
2204 2275 }
2205 2276 }
2206 2277  
  2278 + for (let j = 0; j < em.data.data.pageData.length; j++) {
  2279 + var iu = em.data.data.pageData[j];
  2280 + if (iu.CanOutQty <= 0) iu.is_no_qyt = 1;
  2281 +
  2282 + }
  2283 +
2207 2284 //---把数组组装进去---
2208 2285 th.deal_pickup(em);
  2286 +
2209 2287 } else {
2210   - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null })
  2288 + th.setData({
  2289 + all_sto: null,
  2290 + only_pk: null,
  2291 + def_pickpu_list: null
  2292 + })
2211 2293 }
  2294 +
2212 2295 } else {
2213   - th.setData({ def_pick_store: null, all_sto: null, only_pk: null, def_pickpu_list: null })
  2296 + th.setData({
  2297 + all_sto: null,
  2298 + only_pk: null,
  2299 + def_pickpu_list: null
  2300 + })
2214 2301 }
2215 2302 })
2216 2303 },
2217 2304  
  2305 +
  2306 +
2218 2307 find_lock_num(pick_id, lock) {
2219 2308 var lock_num = 0;
2220 2309 if (!lock) return 0;
... ...
packageE/pages/cart/cart2/cart2.js
... ... @@ -4000,8 +4000,25 @@ Page({
4000 4000 }
4001 4001  
4002 4002  
  4003 + var mo_num=getApp().get_limit_qty(th.data.bn_goods);
  4004 + var steep=getApp().get_limit_qty(th.data.bn_goods,0,1);
  4005 +
  4006 + if ([0,3,5,7,10].indexOf(goods.prom_type)>=-1){
  4007 + if(mo_num>goods.goods_num){
  4008 + getApp().confirmBox(goods.goods_name + "的未到达起订数量");
  4009 + th.data.is_summit_ing = 0;
  4010 + return false;
  4011 + }
  4012 + if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){
  4013 + getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数");
  4014 + th.data.is_summit_ing = 0;
  4015 + return false;
  4016 + }
  4017 + }
  4018 +
4003 4019 //如果不立即购买或者秒杀,如果是线下库存购买的时候
4004   - if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2 && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id) {
  4020 + if (goods.prom_type != 1 && goods.prom_type != 6 && goods.prom_type != 2
  4021 + && th.data.sales_rules >= 2 && !th.data.bn_goods.whsle_id && !getApp().is_virtual(th.data.bn_goods)) {
4005 4022 var isok = 1;
4006 4023 await th.check_store_num(goods.goods_id, th.data.bn_pick, gg.goods_num, function (res) {
4007 4024 isok = res;
... ... @@ -4124,7 +4141,6 @@ Page({
4124 4141  
4125 4142 var order_prom_list_cart = th.data.order_prom_list_cart;
4126 4143  
4127   -
4128 4144 //--组装推送数据--
4129 4145 for (var i = 0; i < order_prom_list_cart.length; i++) {
4130 4146 var t_item = order_prom_list_cart[i];
... ... @@ -4347,8 +4363,26 @@ Page({
4347 4363 check_map[txt] = 1;
4348 4364 }
4349 4365  
4350   - //如果不立即购买或者秒杀,如果是线下库存购买的时候
4351   - if (goods.prom_type == 0 && th.data.sales_rules >= 2) {
  4366 + goods.prom_type=parseInt(goods.prom_type+'');
  4367 + var mo_num=getApp().get_limit_qty(g_item);
  4368 + var steep=getApp().get_limit_qty(g_item,0,1);
  4369 +
  4370 + if ([0,3,5,7,10].indexOf(goods.prom_type)>=-1){
  4371 + if(mo_num>goods.goods_num){
  4372 + getApp().confirmBox(goods.goods_name + "的未到达起订数量");
  4373 + th.data.is_summit_ing = 0;
  4374 + return false;
  4375 + }
  4376 + if(steep>1 && (goods.goods_num-mo_num)%steep!=0 ){
  4377 + getApp().confirmBox(goods.goods_name + "的购买的数量不是起订量的倍数");
  4378 + th.data.is_summit_ing = 0;
  4379 + return false;
  4380 + }
  4381 +
  4382 + }
  4383 +
  4384 + //如果不立即购买或者秒杀,如果是线下库存购买的时候
  4385 + if ([0,3,5,7,10].indexOf(goods.prom_type)>=-1 && th.data.sales_rules >= 2 && !g_item.whsle_id && !getApp().is_virtual(g_item) ) {
4352 4386 var isok = 1;
4353 4387 await th.check_store_num(goods.goods_id, t_item.pickup_id, goods.goods_num, function (res) {
4354 4388 isok = res;
... ...
pages/activity/pind_list/pind_list.js
... ... @@ -163,6 +163,39 @@ Page({
163 163 if (plist.length <= 0) {
164 164 getApp().showWarning("没有更多数据");
165 165 th.data.ismore = 0;
  166 +
  167 +
  168 +
  169 + //没有数据切换
  170 + if (e.data.currentPage == 1 && this.data.type == 1) {
  171 +
  172 +
  173 + e.data.currentPage=1;
  174 + i = "/api/weshop/teamlist/pageteam/0?page=" + e.data.currentPage;
  175 + await getApp().request.promiseGet(i, {
  176 + isShowLoading: 0,
  177 + data: {
  178 + store_id: os.stoid,
  179 + is_end: 0,
  180 + is_show: 1,
  181 + user_id:getApp().globalData.user_id,
  182 + }
  183 + }).then(res => {
  184 + plist = res.data.data.pageData;
  185 + });
  186 +
  187 + if(plist){
  188 + setTimeout(function () {
  189 + th.data.ismore = 1;
  190 + th.setData({
  191 + type: 0
  192 + });
  193 + th.requestSalelist();
  194 + }, 1000);
  195 + }
  196 +
  197 + }
  198 +
166 199 }
167 200 //--循环读取接口---
168 201 for (var i = 0; i < plist.length; i++) {
... ...
pages/cart/cart/cart.js
... ... @@ -1612,9 +1612,16 @@ Page({
1612 1612 }
1613 1613 }
1614 1614  
  1615 + var add_num=1;
  1616 + var mo_num=getApp().get_limit_qty(a);
  1617 + var steep=getApp().get_limit_qty(a,0,1);
  1618 + if(steep>1){
  1619 + add_num=steep;
  1620 + }
  1621 +
1615 1622  
1616 1623 var e = {
1617   - goods_num: a.goods_num + 1,
  1624 + goods_num: a.goods_num + add_num,
1618 1625 id: a.id,
1619 1626 goods_id: a.goods_id,
1620 1627 store_id: oo.stoid
... ... @@ -1640,16 +1647,26 @@ Page({
1640 1647 }
1641 1648  
1642 1649  
  1650 + var add_num=1;
  1651 + var mo_num=getApp().get_limit_qty(a);
  1652 + var steep=getApp().get_limit_qty(a,0,1);
  1653 + if(steep>1){
  1654 + add_num=steep;
  1655 + }
1643 1656  
1644   - if (1 != a.goods_num) {
1645   - var e = {
1646   - goods_num: a.goods_num - 1,
1647   - id: a.id,
1648   - goods_id: a.goods_id,
1649   - store_id: oo.stoid
1650   - };
1651   - this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1657 + var e = {
  1658 + goods_num: a.goods_num - add_num,
  1659 + id: a.id,
  1660 + goods_id: a.goods_id,
  1661 + store_id: oo.stoid
  1662 + };
  1663 +
  1664 + if(e.goods_num<=0){
  1665 + this.data.up_dating = 0;
  1666 + return false;
1652 1667 }
  1668 + this.postCardList(e, t.currentTarget.dataset.item, t.currentTarget.dataset.pitems);
  1669 +
1653 1670 },
1654 1671  
1655 1672  
... ... @@ -1668,7 +1685,10 @@ Page({
1668 1685 var e = a;
1669 1686 var th = this;
1670 1687  
1671   - if (a = isNaN(t.detail.value) || t.detail.value < 1 ? 1 : parseInt(t.detail.value)) {
  1688 +
  1689 + var mo_num=getApp().get_limit_qty(e);
  1690 +
  1691 + if (a = isNaN(t.detail.value) || t.detail.value < mo_num ? mo_num : parseInt(t.detail.value)) {
1672 1692 var s = {
1673 1693 goods_num: a,
1674 1694 goods_id: e.service_id,
... ... @@ -1754,6 +1774,33 @@ Page({
1754 1774 },
1755 1775  
1756 1776  
  1777 + click_set_limit(gd_info,pitems,item){
  1778 + var th=this;
  1779 + var mo_num=getApp().get_limit_qty(gd_info);
  1780 + var steep=getApp().get_limit_qty(gd_info,0,1);
  1781 + if(gd_info.is_integral_normal || gd_info.is_pd_normal || [0,3,5,7,10].indexOf(gd_info.prom_type) > -1){
  1782 +
  1783 + var ue = {
  1784 + goods_num: gd_info.goods_num,store_id: oo.stoid,
  1785 + id: gd_info.id,goods_id: gd_info.goods_id
  1786 + };
  1787 + var up_num=0;
  1788 + if(mo_num>gd_info.goods_num){
  1789 + up_num=mo_num;
  1790 + }
  1791 + if(gd_info.goods_num>mo_num && (gd_info.goods_num-mo_num)%steep!=0 && steep>1){
  1792 + up_num=mo_num+ parseInt((gd_info.goods_num-mo_num)/steep)*steep+steep;
  1793 + }
  1794 + if(up_num){
  1795 + ue.goods_num=up_num;
  1796 + th.update_cart(ue, pitems, item);
  1797 + var txt1 = "requestData[" + pitems + "].goods[" + item + "].goods_num";
  1798 + th.setData({[txt1]:up_num })
  1799 + }
  1800 + }
  1801 + },
  1802 +
  1803 +
1757 1804 //---------------全选,全选的时候要判断是否门店的匹配方式一致--------------
1758 1805 checkAll: async function () {
1759 1806 var e = this,
... ... @@ -1792,11 +1839,16 @@ Page({
1792 1839 [txt]: 0,
1793 1840 });
1794 1841 }
  1842 +
1795 1843 var fir = 0;
1796 1844 for (var j = 0; j < item.length; j++) {
1797 1845 if (item[j].is_gift) continue;
1798   -
1799 1846 var obj = JSON.parse(JSON.stringify(item[j]));
  1847 + //-- 判断起购数量 --
  1848 + if(!e.data.checkAllToggle){
  1849 + th.click_set_limit(obj,i,j);
  1850 + }
  1851 +
1800 1852 //计算之前先移除组合购的计算
1801 1853 if (obj.prom_type == 7)
1802 1854 zh_calc.remove_zhprom(dda, i, obj);
... ... @@ -1884,7 +1936,7 @@ Page({
1884 1936  
1885 1937 // if (!e.data.checkAllToggle) {
1886 1938 //多门店优惠促销次数控制
1887   - if(dda[i].pro_off){
  1939 + if(dda[i].pro_off || e.data.checkAllToggle){
1888 1940 var txt = "requestData[" + i + "].selected";
1889 1941 e.setData({
1890 1942 [txt]: 0,
... ... @@ -2041,9 +2093,11 @@ Page({
2041 2093 for (var i = 0; i < item.length; i++) {
2042 2094 let pro_off1=false
2043 2095 var txt = "requestData[" + pitems + "].goods[" + i + "].selected";
2044   -
2045 2096 var gd_info = item[i];
2046   - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected) {
  2097 +
  2098 + if(!sele) th.click_set_limit(gd_info,pitems,i)
  2099 +
  2100 + if (!getApp().is_virtual(gd_info) && th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !gd_info.selected) {
2047 2101 var ob = {};
2048 2102 await th.check_down_line_next(gd_info, pitems, i, gd_info.erpwareid, function (res) {
2049 2103 ob = res;
... ... @@ -2227,45 +2281,56 @@ Page({
2227 2281 var gd_info = a;
2228 2282  
2229 2283 var erpwareid = gd_info.erpwareid;
2230   - if (th.data.sales_rules >= 2 && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 && !a.selected) {
2231   - var ob = {};
2232   - await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) {
2233   - ob = res;
2234   - });
2235 2284  
2236   - if (ob.code == -1) {
2237   -
2238   - wx.showToast({
2239   - title: '购买数量超出商品库存',
2240   - icon: 'none',
2241   - });
  2285 + //-- 如果是选中的时候 --
  2286 + if(!a.selected){
2242 2287  
2243   - return false;
2244   - } else {
2245   - if (th.data.sales_rules == 3) {
2246   - var goods_id = gd_info.goods_id;
2247   - var num = 0;
  2288 + //-- 专门来设置商品订购数量 --
  2289 + th.click_set_limit(gd_info,pitems,item)
  2290 + if (!getApp().is_virtual(gd_info) && th.data.sales_rules >= 2
  2291 + && !gd_info.whsle_id && [1, 2, 4, 6, 8, 9].indexOf(gd_info.prom_type) == -1 ) {
2248 2292  
2249   - for (let i = 0; i < th.data.requestData.length; i++) {
2250   - if (pitems == i) continue;
2251   - var it = th.data.requestData[i].goods.find((e) => {
2252   - return e.goods_id == goods_id;
2253   - })
2254   - if (it && it.selected) num += it.goods_num
2255   - }
  2293 + var ob = {};
  2294 + await th.check_down_line_next(gd_info, pitems, item, erpwareid, function (res) {
  2295 + ob = res;
  2296 + });
  2297 + if (ob.code == -1) {
2256 2298  
2257   - if (num > ob.CanOutQty) {
2258 2299 wx.showToast({
2259 2300 title: '购买数量超出商品库存',
2260 2301 icon: 'none',
2261 2302 });
2262 2303  
2263 2304 return false;
  2305 + } else {
  2306 + if (th.data.sales_rules == 3) {
  2307 + var goods_id = gd_info.goods_id;
  2308 + var num = 0;
  2309 +
  2310 + for (let i = 0; i < th.data.requestData.length; i++) {
  2311 + if (pitems == i) continue;
  2312 + var it = th.data.requestData[i].goods.find((e) => {
  2313 + return e.goods_id == goods_id;
  2314 + })
  2315 + if (it && it.selected) num += it.goods_num
  2316 + }
  2317 +
  2318 + if (num > ob.CanOutQty) {
  2319 + wx.showToast({
  2320 + title: '购买数量超出商品库存',
  2321 + icon: 'none',
  2322 + });
  2323 +
  2324 + return false;
  2325 + }
  2326 + }
2264 2327 }
2265   - }
  2328 +
2266 2329 }
2267 2330  
2268 2331 }
  2332 +
  2333 +
2269 2334 let pro_off=false
2270 2335 //判断多店优惠促销次数控制
2271 2336 if (th.data.requestData.length>1) {
... ... @@ -2536,8 +2601,34 @@ Page({
2536 2601 user_id = getApp().globalData.user_id;
2537 2602  
2538 2603 function normal_check(store_count, goodsinfo, wareIds) {
  2604 +
  2605 +
  2606 + // getApp().my_warnning('购买数量超出商品库存', 0, th);
  2607 + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
  2608 + //-- 要判断是不是起订量不购 --
  2609 + if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){
  2610 + var mo_num=getApp().get_limit_qty(goodsinfo);
  2611 + var steep=getApp().get_limit_qty(goodsinfo,0,1);
  2612 + if(mo_num>1 && t.goods_num<mo_num){
  2613 + wx.showToast({
  2614 + title: '购买数量小于商品的起订量',
  2615 + icon: 'none',
  2616 + });
  2617 + t.goods_num =0;
  2618 + }
  2619 + if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){
  2620 +
  2621 + wx.showToast({
  2622 + title: '购买数量必须是起订量的倍数',
  2623 + icon: 'none',
  2624 + });
  2625 + t.goods_num =mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep+steep;
  2626 + }
  2627 + }
  2628 +
  2629 +
2539 2630 //--- 看一下是不是线下库存 ---
2540   - if (th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
  2631 + if (!getApp().is_virtual(goodsinfo) && th.data.sales_rules >= 2 && !goodsinfo.whsle_id) {
2541 2632 th.check_down_line(t, pitem, item, wareIds);
2542 2633 } else {
2543 2634 if (t.goods_num > store_count) {
... ... @@ -2545,8 +2636,6 @@ Page({
2545 2636 title: '购买数量超出商品库存',
2546 2637 icon: 'none',
2547 2638 });
2548   - // getApp().my_warnning('购买数量超出商品库存', 0, th);
2549   - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num";
2550 2639 e.setData({
2551 2640 [txt]: store_count
2552 2641 });
... ... @@ -2620,7 +2709,29 @@ Page({
2620 2709 });
2621 2710 e.doCheckAll();
2622 2711  
2623   - t.goods_num = cbuy > 0 ? cbuy : limit,
  2712 + t.goods_num = cbuy > 0 ? cbuy : limit;
  2713 +
  2714 + if([0,3,5,7,10].indexOf(goodsinfo.prom_type)>-1){
  2715 + var mo_num=getApp().get_limit_qty(goodsinfo);
  2716 + var steep=getApp().get_limit_qty(goodsinfo,0,1);
  2717 + if(mo_num>1 && t.goods_num<mo_num){
  2718 + wx.showToast({
  2719 + title: '购买数量小于商品的起订量',
  2720 + icon: 'none',
  2721 + });
  2722 + t.goods_num=0;
  2723 +
  2724 + }
  2725 + if(steep>1 && t.goods_num>mo_num && (t.goods_num-mo_num)%steep!=0 ){
  2726 +
  2727 + wx.showToast({
  2728 + title: '购买数量必须是起订量的倍数',
  2729 + icon: 'none',
  2730 + });
  2731 +
  2732 + t.goods_num=mo_num+parseInt((t.goods_num-mo_num)/steep+'')*steep
  2733 + }
  2734 + }
2624 2735 // t.goods_num = cbuy > 0 ? cbuy : 0,
2625 2736 e.update_cart(t, pitem, item);
2626 2737 return false;
... ... @@ -3370,10 +3481,42 @@ Page({
3370 3481 }
3371 3482 glist += i_arr[j].goods_id + ",";
3372 3483 ab = 1;
  3484 +
  3485 + //判断商品的起订数量
  3486 + var mo_num=getApp().get_limit_qty(i_arr[j]);
  3487 + var steep=getApp().get_limit_qty(i_arr[j],0,1);
  3488 + var py_type= parseInt(i_arr[j].prom_type+'');
  3489 +
  3490 + if([0,3,5,7,10].indexOf(py_type)>-1){
  3491 +
  3492 + if(mo_num>i_arr[j].goods_num){
  3493 + getApp().confirmBox(i_arr[j].goods_name + "的未到达起订数量");
  3494 + wx.hideLoading();
  3495 + return false;
  3496 + }
  3497 + if(steep>1 && (i_arr[j].goods_num-mo_num)%steep!=0 ){
  3498 + getApp().confirmBox(i_arr[j].goods_name + "的购买的数量不是起订量的倍数");
  3499 + var num=mo_num+ parseInt((i_arr[j].goods_num-mo_num)/steep)*steep+steep;
  3500 + var e = {
  3501 + goods_num: num,
  3502 + id: i_arr[j].id,
  3503 + goods_id: i_arr[j].goods_id,
  3504 + store_id: oo.stoid
  3505 + };
  3506 +
  3507 + th.postCardList(e, j, i);
  3508 +
  3509 + wx.hideLoading();
  3510 + return false;
  3511 + }
  3512 +
  3513 + }
  3514 +
  3515 +
3373 3516  
3374 3517 //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算,赠品不要进行调用线下库存---
3375   - if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 ||
3376   - i_arr[j].need_downlow_num) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) {
  3518 + if ((i_arr[j].prom_type == 0 || i_arr[j].prom_type == 3 || i_arr[j].prom_type == 5 || i_arr[j].prom_type == 7 || i_arr[j].prom_type == 10 ||
  3519 + i_arr[j].need_downlow_num) && !getApp().is_virtual(i_arr[j]) && th.data.sales_rules >= 2 && i_arr[j].is_gift != 1 && !i_arr[j].whsle_id) {
3377 3520 //--获取商品的线下商品ID--
3378 3521  
3379 3522 var gd = null;
... ...
pages/cart/cart/cart.wxml
... ... @@ -42,6 +42,7 @@
42 42 <!-- 门店底下的商品 -->
43 43 <view class="store">
44 44 <view class="shmd_m">
  45 +
45 46 <!-- 门店 -->
46 47 <icon wx:if="{{checkAllToggle||item.selected}}" class="order-raido flex-center" bindtap="check_th_all_item" data-pitems="{{pidx}}"
47 48 color="red" size="20" type="success"></icon>
... ...
pages/goods/goodsInfo/buy_com_pop.wxml
... ... @@ -13,10 +13,14 @@
13 13 <view class="flex">
14 14 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view>
15 15 <block wx:if="{{sales_rules>=2}}">
16   - <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
17   - 可售:{{def_pick_store.CanOutQty}}
18   - </view>
19   - <view class="spec-goods-stock" wx:else>可售:0</view>
  16 +
  17 + <block wx:if="{{!filters.is_virtual_gd(sele_g.is_virtual)}}">
  18 + <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
  19 + 可售:{{def_pick_store.CanOutQty}}
  20 + </view>
  21 + <view class="spec-goods-stock" wx:else>可售:0</view>
  22 + </block>
  23 +
20 24 </block>
21 25 <block wx:else>
22 26 <view class="spec-goods-stock">可售:{{sele_g.store_count}}</view>
... ... @@ -29,8 +33,8 @@
29 33 <!-- 选择门店模块 -->
30 34 <view class="flex-space-between address ai_end xc-width ">
31 35  
32   - <view class="flex ai_end" wx:if="{{def_pick_store && def_pick_store.pickup_name}}">
33   - <text class="fs30 xc-black3 shop_name">{{def_pick_store.pickup_name}}</text>
  36 + <view class="flex" wx:if="{{def_pick_store && def_pick_store.pickup_name}}">
  37 + <text class="fs30 xc-black3 shop_name {{def_pick_store.distance!=null?'max':''}} ">{{def_pick_store.pickup_name}}</text>
34 38 <view class="distance fs24 xc-ash" wx:if="{{def_pick_store.distance!=null}}">
35 39 距离:{{def_pick_store.distance > 1000 ? filters.toFix(def_pick_store.distance / 1000, 2) + "km" : filters.toFix(def_pick_store.distance, 0) + "m"}}
36 40  
... ... @@ -53,7 +57,7 @@
53 57 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
54 58 <block wx:else>
55 59 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
56   - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2}}">
  60 + <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules>=2 && !filters.is_virtual_gd(sele_g.is_virtual) }}">
57 61 (库存不足)
58 62 </view>
59 63 </block>
... ... @@ -136,7 +140,7 @@
136 140 </view>
137 141 </block>
138 142 <block wx:else>
139   - <block wx:if="{{sales_rules>=2 && !sele_g.whsle_id}}">
  143 + <block wx:if="{{sales_rules>=2 && !sele_g.whsle_id && !filters.is_virtual_gd(sele_g.is_virtual) }}">
140 144 <view wx:if="{{!def_pick_store.CanOutQty}}" class="spec-cart-btn fs32" data-action="add"
141 145 style="background-color: #dcdcdc;color: #999">库存不足
142 146 </view>
... ... @@ -154,7 +158,7 @@
154 158  
155 159  
156 160  
157   - <block wx:elif="{{data.store_count<=0}}">
  161 + <block wx:elif="{{data.store_count<(mo_num?mo_num:1)}}">
158 162 <view class="spec-cart-btn fs32" data-action="add"
159 163 style="background-color: #dcdcdc;color: #999">库存不足
160 164 </view>
... ...
pages/goods/goodsInfo/buy_integral.wxml
... ... @@ -26,9 +26,9 @@
26 26 <!-- 选择门店模块 -->
27 27 <view class="flex-space-between address ai_end xc-width ">
28 28  
29   - <view class="flex ai_end" wx:if="{{def_pick_store && def_pick_store.pickup_name}}">
30   - <text class="fs30 xc-black3 shop_name">{{def_pick_store.pickup_name}}</text>
31   - <view class="distance fs24 xc-ash"wx:if="{{def_pick_store.distance!=null}}">
  29 + <view class="flex" wx:if="{{def_pick_store && def_pick_store.pickup_name}}">
  30 + <text class="fs30 xc-black3 shop_name bold {{def_pick_store.distance!=null?'max':''}} ">{{def_pick_store.pickup_name}}</text>
  31 + <view class="distance fs24 xc-ash" wx:if="{{def_pick_store.distance!=null}}">
32 32 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}}
33 33  
34 34 </view>
... ... @@ -47,11 +47,11 @@
47 47 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
48 48 <block wx:else>
49 49 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
50   - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}">(库存不足)</view>
  50 + <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0}}">(库存不足)</view>
51 51 </block>
52 52 </block>
53 53  
54   - <view class="fs24 xc-ash-9f xc-distance-top "wx:if="{{def_pick_store && def_pick_store.fulladdress}}">地址:{{def_pick_store.fulladdress}}</view>
  54 + <view class="fs24 xc-ash-9f xc-distance-top " wx:if="{{def_pick_store && def_pick_store.fulladdress}}">地址:{{def_pick_store.fulladdress}}</view>
55 55  
56 56  
57 57 <!--商品的属性项目-->
... ...
pages/goods/goodsInfo/buy_pt.wxml
... ... @@ -25,8 +25,10 @@
25 25 <view class="flex">
26 26 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view>
27 27 <block wx:if="{{sales_rules>=2}}">
28   - <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">可售:{{def_pick_store.CanOutQty}}</view>
29   - <view class="spec-goods-stock" wx:else>可售:0</view>
  28 + <block wx:if="{{!filters.is_virtual_gd(sele_g.is_virtual)}}">
  29 + <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">可售:{{def_pick_store.CanOutQty}}</view>
  30 + <view class="spec-goods-stock" wx:else>可售:0</view>
  31 + </block>
30 32 </block>
31 33 <block wx:else><view class="spec-goods-stock">可售:{{sele_g.store_count}}</view></block>
32 34 </view>
... ... @@ -47,11 +49,11 @@
47 49 <view style="margin-top: 20rpx">
48 50 <view class="flex-space-between address ai_end xc-width ">
49 51  
50   - <view class="flex ai_end" wx:if="{{def_pick_store && def_pick_store.pickup_name}}">
51   - <text class="fs30 xc-black3 shop_name">{{def_pick_store.pickup_name}}</text>
  52 + <view class="flex" wx:if="{{def_pick_store && def_pick_store.pickup_name}}">
  53 + <text class="fs30 xc-black3 shop_name {{def_pick_store.distance!=null?'max':''}} ">{{def_pick_store.pickup_name}}</text>
52 54  
53 55  
54   - <view class="distance fs24 xc-ash"wx:if="{{def_pick_store.distance!=null}}">
  56 + <view class="distance fs24 xc-ash" wx:if="{{def_pick_store.distance!=null}}">
55 57 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}}
56 58  
57 59 </view>
... ... @@ -71,7 +73,7 @@
71 73 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
72 74 <block wx:else>
73 75 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
74   - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && is_normal}}">(库存不足)</view>
  76 + <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && is_normal}}">(库存不足)</view>
75 77 </block>
76 78 </block>
77 79  
... ... @@ -176,16 +178,32 @@
176 178 <block wx:else>
177 179 <block wx:if="{{!def_pick_store}}">
178 180 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">请先选择门店</view>
179   - </block>
180   - <block wx:else>
181   - <block wx:if="{{data.store_count<=0}}">
182   - <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">库存不足</view>
183   - </block>
184   - <block wx:else>
185   - <view bindtap="addCart_pt" class="spec-cart-btn spec-buy" data-action="buy">立即购买</view>
186   - </block>
187   -
188   - </block>
  181 + </block>
  182 +
  183 + <block wx:else>
  184 + <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 -->
  185 + <block wx:if="{{sales_rules>=2 && !sele_g.whsle_id && !filters.is_virtual_gd(sele_g.is_virtual) }}">
  186 + <block wx:if="{{!def_pick_store.CanOutQty}}">
  187 + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">
  188 + 库存不足
  189 + </view>
  190 + </block>
  191 + <block wx:else>
  192 + <view bindtap="addCart_pt" class="spec-cart-btn spec-buy" data-action="buy">立即购买</view>
  193 + </block>
  194 + </block>
  195 + <!-- 线上销售 -->
  196 + <block wx:else>
  197 + <block wx:if="{{sele_g.store_count<=0 && is_no_new}}">
  198 + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">
  199 + 库存不足
  200 + </view>
  201 + </block>
  202 + <block wx:else>
  203 + <view bindtap="addCart_pt" class="spec-cart-btn spec-buy" data-action="buy">立即购买</view>
  204 + </block>
  205 + </block>
  206 + </block>
189 207 </block>
190 208 </block>
191 209 </block>
... ...
pages/goods/goodsInfo/goodsInfo.js
... ... @@ -558,7 +558,7 @@ Page({
558 558 th = this;
559 559 getApp().getConfig2(function (e) {
560 560 var sales_rules = e.sales_rules;
561   - if (sales_rules >= 2 && [1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 && !th.data.sele_g.whsle_id) {
  561 + if (!getApp().is_virtual(th.data.sele_g) && sales_rules >= 2 && [1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) == -1 && !th.data.sele_g.whsle_id) {
562 562 getApp().waitfor2(that, "wait_for_user_store", "fir_goods", function () {
563 563 var lock = 0,
564 564 plist = null;
... ... @@ -1102,18 +1102,18 @@ Page({
1102 1102 });
1103 1103  
1104 1104  
  1105 +
  1106 +
1105 1107 //获取统一条形码,普通商品和优惠促销的商品
1106 1108 if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5 || ee.data.data.prom_type == 7 || ee.data.data.prom_type == 9 || ee.data.data.prom_type == 10) {
1107   - //默认门店要拿下门店库存
1108   - if (that.data.sales_rules == 2 && that.data.is_newsales_rules) {
1109   - //获取门店
1110   - ee.get_sto();
1111 1109  
1112   - } else {
1113   - //获取门店
1114   - ee.get_sto();
1115   - }
1116 1110  
  1111 + //-- 更新默认购买的数量 ---
  1112 + var mo_num=getApp().get_limit_qty(t.data.data);
  1113 + ee.setData({goodsInputNum:mo_num})
  1114 + ee.setData({mo_num:mo_num})
  1115 +
  1116 + ee.get_sto();
1117 1117 ee.get_sku(o.stoid, t.data.data, gid);
1118 1118 ee.check_has_flash();
1119 1119  
... ... @@ -1197,6 +1197,7 @@ Page({
1197 1197 setTimeout(()=> {
1198 1198 console.log('cccc');
1199 1199 console.log(th.data.prom_type);
  1200 +
1200 1201 },500)
1201 1202  
1202 1203  
... ... @@ -1208,11 +1209,8 @@ Page({
1208 1209 console.log('aaaaaaaaaa');
1209 1210 console.log(this.data.prom_type);
1210 1211  
1211   - this.data.enterAddressPage && (this.data.enterAddressPage = !1);
1212   -
1213   -
1214   -
1215 1212  
  1213 + this.data.enterAddressPage && (this.data.enterAddressPage = !1);
1216 1214  
1217 1215  
1218 1216 },
... ... @@ -1680,7 +1678,7 @@ Page({
1680 1678 newd.is_pd_normal = 1;
1681 1679  
1682 1680 //---如果是线下门店销售的时候---
1683   - if (th.data.sales_rules >= 2) {
  1681 + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2) {
1684 1682 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1685 1683 //---通过接口获取门店的线下库存信息--
1686 1684 th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) {
... ... @@ -1778,7 +1776,7 @@ Page({
1778 1776 return false;
1779 1777 } else {
1780 1778 //---如果是线下门店销售的时候---
1781   - if (th.data.sales_rules >= 2) {
  1779 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2) {
1782 1780 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1783 1781  
1784 1782 th.check_CanOutQty(th.data.sele_g, pick, function (CanOutQty) {
... ... @@ -1837,7 +1835,7 @@ Page({
1837 1835 }
1838 1836  
1839 1837 //---如果是线下门店销售的时候---
1840   - if (th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) {
  1838 + if ( !getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.sele_g.whsle_id) {
1841 1839 var pick = th.get_pick_from_list(th.data.sto_sele_id)
1842 1840 //---通过接口获取门店的线下库存信息--
1843 1841 // getApp().request.get("/api/weshop/goods/getWareStorages", {
... ... @@ -1942,6 +1940,9 @@ Page({
1942 1940 th.add_cart_next(e, t, a, o, newd); //加入购物车下一步
1943 1941 }
1944 1942 }
  1943 +
  1944 +
  1945 +
1945 1946 })
1946 1947 },
1947 1948  
... ... @@ -2402,11 +2403,24 @@ Page({
2402 2403  
2403 2404 //----------增加购买数量-----------
2404 2405 addCartNum: function (t) {
2405   - this.checkCartNum(this.data.goodsInputNum + 1);
  2406 +
  2407 + var add_num=1;
  2408 + var p_type=parseInt(this.data.prom_type)
  2409 + if([1,2,4,6,8,9].indexOf(p_type)==-1 || this.data.openSpecModal_inte_normal == 1 || this.data.is_normal == 1){
  2410 + add_num=getApp().get_limit_qty(this.data.sele_g,0,1);
  2411 + }
  2412 +
  2413 + this.checkCartNum(this.data.goodsInputNum + add_num);
2406 2414 },
2407 2415 //----------减少购买数量-----------
2408 2416 subCartNum: function (t) {
2409   - this.checkCartNum(this.data.goodsInputNum - 1);
  2417 +
  2418 + var add_num=1;
  2419 + var p_type=parseInt(this.data.prom_type)
  2420 + if([1,2,4,6,8,9].indexOf(p_type)==-1 || this.data.openSpecModal_inte_normal == 1 || this.data.is_normal == 1){
  2421 + add_num=getApp().get_limit_qty(this.data.sele_g,0,1);
  2422 + }
  2423 + this.checkCartNum(this.data.goodsInputNum - add_num);
2410 2424 },
2411 2425 //----------输入框输入购买数量-----------
2412 2426 inputCartNum: function (t) {
... ... @@ -2430,6 +2444,8 @@ Page({
2430 2444 //------检查数量是不是超出限购------
2431 2445 checkCartNum: function (t) {
2432 2446 var th = this;
  2447 + var mo_num=getApp().get_limit_qty(th.data.sele_g);
  2448 + var steep=getApp().get_limit_qty(th.data.sele_g,0,1);
2433 2449 this.get_buy_num(this.data.sele_g, async function () {
2434 2450  
2435 2451 //--判断商品是否超出限购--
... ... @@ -2495,8 +2511,9 @@ Page({
2495 2511 }
2496 2512 }
2497 2513 var e = th.data.sele_g.store_count;
2498   - var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
2499   - if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 && p_type != 2 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
  2514 + var p_type =parseInt(th.data.prom_type+'') ; //&& p_type!=1 && p_type!=4
  2515 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2 &&
  2516 + ([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
2500 2517 if (!th.data.def_pick_store) {
2501 2518 wx.showToast({
2502 2519 title: '请选择门店',
... ... @@ -2517,12 +2534,33 @@ Page({
2517 2534 });
2518 2535 // wx.showModal({title: '库存不足',});
2519 2536 if (e < 0) e = 0;
  2537 +
  2538 + //只有普通商品才有起购数
  2539 + if([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){
  2540 + if(e<mo_num) e=mo_num;
  2541 + if(e>mo_num && (e-mo_num)%steep!=0){
  2542 + e=mo_num+ parseInt((e-mo_num)/steep)*steep;
  2543 + }
  2544 + }
2520 2545 th.setData({
2521 2546 goodsInputNum: e
2522 2547 });
2523 2548 return false;
2524 2549 }
  2550 +
  2551 +
  2552 + //var steep=getApp().get_limit_qty(th.data.sele_g,0,1);
  2553 +
  2554 +
2525 2555 t > e || 0 == e ? t = e : t < 1 && (t = 1);
  2556 +
  2557 +
  2558 + //只有普通商品才有起购数
  2559 + if([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1){
  2560 + if(t<mo_num) t=mo_num;
  2561 + }
  2562 +
  2563 +
2526 2564 th.setData({
2527 2565 goodsInputNum: t
2528 2566 });
... ... @@ -2612,7 +2650,8 @@ Page({
2612 2650  
2613 2651 var e = th.data.sele_g.store_count;
2614 2652 var p_type = th.data.prom_type; //&& p_type!=1 && p_type!=4
2615   - if (th.data.sales_rules >= 2 && (p_type != 1 && p_type != 4 && p_type != 6 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
  2653 + if (!getApp().is_virtual(th.data.sele_g) && !th.data.sele_g.whsle_id && th.data.sales_rules >= 2 &&
  2654 + ([1,2,4,6,8,9].indexOf(p_type)==-1 || th.data.openSpecModal_inte_normal == 1 || th.data.is_normal == 1)) {
2616 2655 if (!th.data.def_pick_store) {
2617 2656 wx.showModal({
2618 2657 title: '请选择门店',
... ... @@ -3342,7 +3381,7 @@ Page({
3342 3381 if (!item.whsle_id && [1,2,4,6].indexOf(item.prom_type)==-1) that.check_is_youhui(gid, that.data.is_normal);
3343 3382  
3344 3383 //默认门店要拿下门店库存
3345   - if (that.data.sales_rules >= 2 && that.data.def_pick_store && !that.data.sele_g.whsle_id && [1,2,4,6].indexOf(item.prom_type)==-1) {
  3384 + if (!getApp().is_virtual(th.data.sele_g) && that.data.sales_rules >= 2 && that.data.def_pick_store && !that.data.sele_g.whsle_id && [1,2,4,6].indexOf(item.prom_type)==-1) {
3346 3385 var lock = 0,
3347 3386 plist = null;
3348 3387  
... ... @@ -3643,7 +3682,7 @@ Page({
3643 3682 });
3644 3683  
3645 3684 //--获取线下库存,而且不是新的门店规则, 同时是普通购买的时候,或者同时不能是活动,秒杀,拼团,积分购--
3646   - if (th.data.sales_rules >= 2 && !th.data.is_newsales_rules && !th.data.sele_g.whsle_id && ([1,2,4,6,8,9].indexOf(th.data.prom_type)==-1 || is_normal == 1)) {
  3685 + if (!getApp().is_virtual(th.data.sele_g) && th.data.sales_rules >= 2 && !th.data.is_newsales_rules && !th.data.sele_g.whsle_id && ([1,2,4,6,8,9].indexOf(th.data.prom_type)==-1 || is_normal == 1)) {
3647 3686 setTimeout(function () {
3648 3687 th.deal_pickup_dline(e);
3649 3688 }, 800)
... ... @@ -3939,7 +3978,7 @@ Page({
3939 3978 }
3940 3979 if (th.data.fir_def_store &&
3941 3980 (g_distr_type == 0 || th.data.fir_def_store.distr_type == 0 || (th.data.def_pick_store && th.data.def_pick_store.distr_type == g_distr_type))) {
3942   - th.data.fir_def_store.Qty;
  3981 + th.data.fir_def_store.Qty=Qty;
3943 3982 if (def_pick_store && def_pick_store.pickup_id == th.data.fir_def_store.pickup_id)
3944 3983 th.setData({
3945 3984 def_pick_store: th.data.fir_def_store
... ... @@ -4946,6 +4985,7 @@ Page({
4946 4985  
4947 4986 var th = this;
4948 4987 var ind = parseInt(e.currentTarget.dataset.it);
  4988 + var mo_num=getApp().get_limit_qty(this.data.sele_g);
4949 4989  
4950 4990 //如果是拼单活动的普通购买
4951 4991 if (ind == 1) {
... ... @@ -4959,14 +4999,19 @@ Page({
4959 4999 th.get_sto(1);
4960 5000 th.setData({
4961 5001 is_normal: ind,
4962   - openSpecModal_pt: 1
  5002 + openSpecModal_pt: 1,
  5003 + goodsInputNum: mo_num,
  5004 + mo_num:mo_num
  5005 +
4963 5006 });
4964 5007 } else {
4965 5008 th.get_sto(1);
4966 5009 th.get_sku(o.stoid, th.data.data, th.data.gid, 1, function () {
4967 5010 th.setData({
4968 5011 is_normal: ind,
4969   - openSpecModal_pt: 1
  5012 + openSpecModal_pt: 1,
  5013 + goodsInputNum: mo_num,
  5014 + mo_num:mo_num
4970 5015 });
4971 5016 });
4972 5017 }
... ... @@ -4975,6 +5020,10 @@ Page({
4975 5020  
4976 5021 if (th.data.is_normal) {
4977 5022 th.data.g_buy_num = new Map();
  5023 + th.setData({
  5024 + goodsInputNum: mo_num,
  5025 + mo_num:mo_num
  5026 + });
4978 5027 }
4979 5028  
4980 5029 //拼单商品从这里进,先判断有没有买过商品,
... ... @@ -5041,7 +5090,6 @@ Page({
5041 5090 getApp().confirmBox("拼团商品至少要买" + qnum + "件!");
5042 5091 return false;
5043 5092 }
5044   -
5045 5093 }
5046 5094  
5047 5095 th.addcart_pt_func();
... ... @@ -6919,7 +6967,7 @@ Page({
6919 6967 var lock = 0;
6920 6968  
6921 6969 //---如果是活动的时候,同时不是普通购买---
6922   - if (th.data.sele_g.whsle_id || [1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) > -1 && !th.data.is_normal) {
  6970 + if (getApp().is_virtual(th.data.sele_g) || th.data.sele_g.whsle_id || ([1, 2, 4, 6, 8, 9].indexOf(th.data.prom_type) > -1 && !th.data.is_normal)) {
6923 6971 func();
6924 6972 return false;
6925 6973 }
... ... @@ -8068,10 +8116,14 @@ Page({
8068 8116 openSpecModel_Nor: function () {
8069 8117 this.data.g_buy_num = new Map();
8070 8118 var th = this;
  8119 + var mo_num=getApp().get_limit_qty(this.data.sele_g);
  8120 +
8071 8121 this.setData({
8072 8122 open_ind_store: 5,
8073   - goodsInputNum: 1
  8123 + goodsInputNum: mo_num,
  8124 + mo_num:mo_num
8074 8125 }); //拼团直接给4
  8126 +
8075 8127 if (th.data.sku_g_pt) {
8076 8128 this.get_sto(1)
8077 8129 this.setData({
... ...
pages/goods/goodsInfo/goodsInfo.wxml
... ... @@ -684,7 +684,7 @@
684 684 <view class="no_store" wx:if="{{def_pick_store && def_pick_store.is_no_dis}}">
685 685 (配送不匹配)
686 686 </view>
687   - <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0 && !sele_g.whsle_id}}">
  687 + <view class="no_store" wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0 && !sele_g.whsle_id}}">
688 688 (库存不足)
689 689 </view>
690 690 </block>
... ... @@ -1264,12 +1264,19 @@
1264 1264 <block wx:if="{{prom_type==0}}">
1265 1265 <view class="flex">
1266 1266 <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view>
  1267 + <!-- 线下门店销售的时候 -->
1267 1268 <block wx:if="{{sales_rules>=2}}">
1268   - <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
1269   - 可售:{{def_pick_store.CanOutQty}}
1270   - </view>
1271   - <view class="spec-goods-stock" wx:else>可售:0</view>
  1269 +
  1270 + <!-- 如果不是虚拟商品的时候 -->
  1271 + <block wx:if="{{!filters.is_virtual_gd(sele_g.is_virtual)}}">
  1272 + <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">
  1273 + 可售:{{def_pick_store.CanOutQty}}
  1274 + </view>
  1275 + <view class="spec-goods-stock" wx:else>可售:0</view>
  1276 + </block>
  1277 +
1272 1278 </block>
  1279 +
1273 1280 <block wx:else>
1274 1281 <view class="spec-goods-stock">可售:{{sele_g.store_count}}</view>
1275 1282 </block>
... ... @@ -1314,7 +1321,7 @@
1314 1321 <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
1315 1322 <block wx:else>
1316 1323 <view class="no_store" wx:if="{{def_pick_store.is_no_dis}}">(配送不匹配)</view>
1317   - <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0 &&!sele_g.whsle_id}}">
  1324 + <view wx:elif="{{def_pick_store && !def_pick_store.CanOutQty && !filters.is_virtual_gd(sele_g.is_virtual) && sales_rules>=2 && prom_type==0 &&!sele_g.whsle_id && !filters.is_virtual_gd(sele_g)}}">
1318 1325 (库存不足)
1319 1326 </view>
1320 1327 </block>
... ... @@ -1394,8 +1401,8 @@
1394 1401 </block>
1395 1402 <block wx:else>
1396 1403 <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 -->
1397   - <block wx:if="{{sales_rules>=2 && prom_type==0 && !sele_g.whsle_id}}">
1398   - <block wx:if="{{!def_pick_store.CanOutQty}}">
  1404 + <block wx:if="{{sales_rules>=2 && prom_type==0 && !sele_g.whsle_id && !filters.is_virtual_gd(sele_g.is_virtual) }}">
  1405 + <block wx:if="{{!def_pick_store.CanOutQty || def_pick_store.CanOutQty<mo_num }}">
1399 1406 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">
1400 1407 库存不足
1401 1408 </view>
... ... @@ -1411,7 +1418,7 @@
1411 1418 </block>
1412 1419 <!-- 线上销售 -->
1413 1420 <block wx:else>
1414   - <block wx:if="{{sele_g.store_count<=0 && is_no_new}}">
  1421 + <block wx:if="{{(sele_g.store_count<=0 || sele_g.store_count<mo_num ) && is_no_new}}">
1415 1422 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">
1416 1423 库存不足
1417 1424 </view>
... ... @@ -1610,7 +1617,7 @@
1610 1617 <view class="flex-vertical-between butttem5">
1611 1618 <view class="flex xc-ash">
1612 1619 <view class="fs30 xc-black3 address_name">{{item.pickup_name}}
1613   - <text class="c-red22" wx:if="{{item.is_no_qyt}}">(库存不足)</text>
  1620 + <text class="c-red22" wx:if="{{item.is_no_qyt && !filters.is_virtual_gd(sele_g.is_virtual)}}">(库存不足)</text>
1614 1621 </view>
1615 1622 </view>
1616 1623 <view>
... ... @@ -1638,7 +1645,7 @@
1638 1645 <view class="flex-vertical-between ">
1639 1646 <view class="flex xc-ash">
1640 1647 <view class="fs30 xc-black3 address_name">{{item.pickup_name}}
1641   - <text class="c-red22" wx:if="{{item.is_no_qyt}}">(库存不足)</text>
  1648 + <text class="c-red22" wx:if="{{item.is_no_qyt && !filters.is_virtual_gd(sele_g.is_virtual) }}">(库存不足)</text>
1642 1649 </view>
1643 1650 </view>
1644 1651 <view>
... ... @@ -1668,7 +1675,7 @@
1668 1675 <view class="flex-vertical-between ">
1669 1676 <view class="flex xc-ash">
1670 1677 <view class="fs28 xc-black3 address_name">{{item.pickup_name}}
1671   - <text class="c-red22" wx:if="{{item.is_no_qyt}}">(库存不足)</text>
  1678 + <text class="c-red22" wx:if="{{item.is_no_qyt && !filters.is_virtual_gd(sele_g.is_virtual)}}">(库存不足)</text>
1672 1679 </view>
1673 1680 </view>
1674 1681 <view>
... ...
pages/user/index/index.js
... ... @@ -991,10 +991,23 @@ Page({
991 991 //过滤掉分销关闭的
992 992 let distribut_end_time = await getApp().user_tools_endTime(2);//过滤掉分销到期的
993 993 await getApp().promiseGet("/api/weshop/storeDistribut/get/" + os.stoid, {}).then(rs => {
994   - if (rs.data.code == 0) {
995   - var dis = rs.data.data;
  994 + if (rs.data.code == 0 || !rs.data.data) {
  995 + var is_ok=1;
  996 +
  997 + if(!distribut_end_time){
  998 + is_ok=0;
  999 + }
  1000 + else if(!rs.data.data){
  1001 + is_ok=0;
  1002 + }else{
  1003 + var dis=rs.data.data;
  1004 + if(!dis || dis.switch == 0){
  1005 + is_ok=0;
  1006 + }
  1007 + }
  1008 +
996 1009 for (var i in d_list) {
997   - if (d_list[i].name == '我的分销' && (!dis || dis.switch == 0) || (d_list[i].name == '我的分销' && !distribut_end_time)) {
  1010 + if (d_list[i].name == '我的分销' && !is_ok) {
998 1011 d_list.splice(i, 1);
999 1012 }
1000 1013 }
... ...
pages/user/order_list/order_list.js
... ... @@ -1041,7 +1041,7 @@ Page({
1041 1041 }
1042 1042  
1043 1043 //--如果是线下库存的时候--
1044   - if (th.data.conf.sales_rules >= 2 && !gg.whsle_id) {
  1044 + if (!getApp().is_virtual(gg) && th.data.conf.sales_rules >= 2 && !gg.whsle_id) {
1045 1045 var ob = {};
1046 1046 await th.check_down_line_next(gg, good.goods_num, order.pickup_id, function (obj) {
1047 1047 ob = obj;
... ... @@ -1667,7 +1667,7 @@ Page({
1667 1667  
1668 1668  
1669 1669 //判断是不是线下库存的购买, 是不是秒杀活动
1670   - if (th.data.sales_rules >= 2 && !prom && !good.whsle_id) {
  1670 + if (!getApp().is_virtual(good) && th.data.sales_rules >= 2 && !prom && !good.whsle_id) {
1671 1671  
1672 1672 //-- 看一下购物车上有多少商品 --
1673 1673 var cart_num = 0;
... ...
utils/filter.wxs
... ... @@ -289,4 +289,8 @@ module.exports = {
289 289 isExpired: filters.isExpired,
290 290 gettimestamp: filters.gettimestamp,
291 291 showStartAndEndDate: filters.showStartAndEndDate,
  292 + is_virtual_gd:function (is_virtual){
  293 + if(is_virtual==2) return true;
  294 + return false;
  295 + }
292 296 }
293 297 \ No newline at end of file
... ...