Merged
Merge Request #362 · created by 后端研发-苏明海


Dev


From dev into test

Merged by 后端研发-苏明海

1 participants


pages/goods/goodsInfo/goodsInfo.js
... ... @@ -219,6 +219,7 @@ Page({
219 219 new_user: 0, //新用户
220 220  
221 221 def_pick_store: null, // 默认的门店
  222 + fir_def_store:null, //客户默认的门店的
222 223 lat: null, //维度
223 224 lon: null, //经度
224 225  
... ... @@ -233,11 +234,13 @@ Page({
233 234 is_collect_load:0, //是不是处理
234 235 is_newsales_rules:0, //是否开启最新的门店规则,此时会新读门店,当点击选择门店时会触发读取线下库存
235 236 sales_rules:1, //默认是线上销售
  237 +
  238 + wait_for_user_store:null,
  239 +
236 240 },
237 241  
238 242 //------初始化加载----------
239 243 onLoad: function(t) {
240   -
241 244 wx.setNavigationBarTitle({
242 245 title: "商品详情",
243 246 })
... ... @@ -297,7 +300,6 @@ Page({
297 300 //---如果后台又开等级卡的开关---
298 301 if(sw_arr.rank_switch && sw_arr.rank_switch=="2"){
299 302 th.setData({rank_switch:true});
300   -
301 303 //---回调卡的列表---
302 304 th.getPlusCardType(function(ob){
303 305 th.setData({card_list:ob.card_list});
... ... @@ -346,38 +348,38 @@ Page({
346 348 clearInterval(w_time);
347 349 var distance = null;
348 350 var e=JSON.parse(JSON.stringify(ee));
349   -
350 351  
351 352 //如果有开启近距离的话,同时距离优不一样了
352 353 if (that.data.lat != null) {
353 354 //如果经纬度有变化的话
354 355 if( appd.lat==that.data.lat && appd.lon==that.data.lon && e.distance>0 ){
  356 + that.data.fir_def_store=e;
355 357 that.setData({
356 358 def_pick_store: e,
357 359 sto_sele_name: e.pickup_name,
358 360 sto_sele_id: e.pickup_id,
359 361 sto_sele_distr: e.distr_type
360 362 })
361   - }else{
362   - //要用接口是获取距离,js的计算不准
363   - getApp().request.get("/api/weshop/pickup/list",{
364   - data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon},
365   - success:function (res) {
366   - if(res.data.code==0){
367   - e=res.data.data.pageData[0];
368   - if (e){
369   - appd.pk_store=e;
370   - that.setData({
371   - def_pick_store: e,
372   - sto_sele_name: e.pickup_name,
373   - sto_sele_id: e.pickup_id,
374   - sto_sele_distr: e.distr_type
375   - })
376   - }
377   -
378   - }
379   - }
380   - })
  363 + }else{
  364 + //要用接口是获取距离,js的计算不准
  365 + getApp().request.promiseGet("/api/weshop/pickup/list",{
  366 + data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon},
  367 + }).then(res=>{
  368 + if(res.data.code==0){
  369 + e=res.data.data.pageData[0];
  370 + if (e){
  371 + appd.pk_store=e;
  372 + that.data.fir_def_store=e;
  373 + that.setData({
  374 + def_pick_store: e,
  375 + sto_sele_name: e.pickup_name,
  376 + sto_sele_id: e.pickup_id,
  377 + sto_sele_distr: e.distr_type
  378 + })
  379 + }
  380 +
  381 + }
  382 + })
381 383 }
382 384  
383 385 //e.distance = distance;
... ... @@ -387,18 +389,16 @@ Page({
387 389 }else{
388 390 if (e) {
389 391 e.distance = null;
  392 + that.data.fir_def_store=e;
390 393 that.setData({
391 394 def_pick_store: e,
392 395 sto_sele_name: e.pickup_name,
393 396 sto_sele_id: e.pickup_id,
394 397 sto_sele_distr: e.distr_type
395 398 })
396   - }
397   -
398   -
  399 + }
399 400 }
400   -
401   -
  401 +
402 402 }, 500)
403 403 });
404 404  
... ... @@ -549,7 +549,7 @@ Page({
549 549  
550 550 //---展示---
551 551 onShow: function() {
552   - var goods_list = null,th = this;
  552 + var goods_list = null,th = this,that=this;
553 553 var ui = setInterval(function () {
554 554 goods_list = th.selectComponent("#goods_list");
555 555 if (goods_list) {
... ... @@ -626,10 +626,49 @@ Page({
626 626  
627 627  
628 628 //获取统一条形码,普通商品和优惠促销的商品
629   - if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 4 || ee.data.data.prom_type == 5){
630   -
631   - //获取门店
632   - ee.get_sto();
  629 + if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 2 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 4 || ee.data.data.prom_type == 5){
  630 + //默认门店要拿下门店库存
  631 + if(that.data.sales_rules==2 && that.data.is_newsales_rules){
  632 + //--等待某个值只运行---,这里有可能因为导航的时间太久,而不能计算门店库存
  633 + getApp().waitfor2(that,"wait_for_user_store","fir_def_store",function(){
  634 + if(th.data.fir_def_store){
  635 + var lock=0,plist=null;
  636 + //先读取门店的lock,采用链式写法,少用await
  637 + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{
  638 + data:{store_id:os.stoid,wareId:ee.data.data.goods_id,storageId:that.data.fir_def_store.pickup_id}
  639 + }).then(res=>{
  640 + if(res.data.code==0 && res.data.data.total>0){
  641 + for(var i in res.data.data.pageData)
  642 + lock+=res.data.data.pageData[i].outQty
  643 + }
  644 + //---通过接口获取门店的线下库存信息--
  645 + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
  646 + data:{storageNos:that.data.fir_def_store.pickup_no,wareIds:encodeURIComponent(th.data.data.erpwareid),storeId:os.stoid}
  647 + })
  648 + }).then(res=>{
  649 + if(res.data.code==0 && res.data.data.total>0){
  650 + plist=res.data.data.pageData[0];
  651 + }
  652 + if(plist && plist.CanOutQty-lock>0){
  653 + that.data.fir_def_store.CanOutQty=plist.CanOutQty-lock;
  654 + }else{
  655 + that.data.fir_def_store.CanOutQty=0;
  656 + }
  657 + //--给门店赋值线下库存--
  658 + th.setData({def_pick_store:that.data.fir_def_store});
  659 + //获取门店
  660 + ee.get_sto();
  661 + })
  662 + }else{
  663 + //--获取门店--
  664 + ee.get_sto();
  665 + }
  666 + })
  667 + }else{
  668 + //获取门店
  669 + ee.get_sto();
  670 + }
  671 +
633 672 ee.get_sku(o.stoid, t.data.data.sku, gid);
634 673 }
635 674 else {
... ... @@ -1453,6 +1492,7 @@ Page({
1453 1492  
1454 1493 //-----------选择属性的按钮事件----------
1455 1494 sele_spec: function(e) {
  1495 + var that=this,ee=this,th=this;
1456 1496 var gid = e.currentTarget.dataset.gid;
1457 1497 var sku_g = this.data.sku_g;
1458 1498 var item = null;
... ... @@ -1466,7 +1506,37 @@ Page({
1466 1506 sele_g: item,
1467 1507 gid: gid
1468 1508 });
1469   - this.get_sto();
  1509 +
  1510 + this.get_sto();
  1511 + //默认门店要拿下门店库存
  1512 + if(that.data.sales_rules==2 && that.data.def_pick_store){
  1513 + var lock=0,plist=null;
  1514 + //先读取门店的lock,采用链式写法,少用await
  1515 + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{
  1516 + data:{store_id:os.stoid,wareId:ee.data.sele_g.goods_id,storageId:that.data.def_pick_store.pickup_id}
  1517 + }).then(res=>{
  1518 + if(res.data.code==0 && res.data.data.total>0){
  1519 + for(var i in res.data.data.pageData)
  1520 + lock+=res.data.data.pageData[i].outQty
  1521 + }
  1522 + //---通过接口获取门店的线下库存信息--
  1523 + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
  1524 + data:{storageNos:that.data.def_pick_store.pickup_no,wareIds:encodeURIComponent(th.data.sele_g.erpwareid),storeId:os.stoid}
  1525 + })
  1526 + }).then(res=>{
  1527 + if(res.data.code==0 && res.data.data.total>0){
  1528 + plist=res.data.data.pageData[0];
  1529 + }
  1530 + if(plist && plist.CanOutQty-lock>0){
  1531 + that.data.def_pick_store.CanOutQty=plist.CanOutQty-lock;
  1532 + }else{
  1533 + that.data.def_pick_store.CanOutQty=0;
  1534 + }
  1535 + //--给门店赋值线下库存--
  1536 + th.setData({def_pick_store:that.data.def_pick_store});
  1537 + })
  1538 + }
  1539 +
1470 1540  
1471 1541 this.sele_spec_chech_activity();
1472 1542 },
... ... @@ -1521,7 +1591,7 @@ Page({
1521 1591  
1522 1592 //---------拿出门店分类和门店------------
1523 1593 get_sto(e) {
1524   - var th = this;
  1594 + var th = this,that=this;
1525 1595 var timer_get = setInterval(function() {
1526 1596 if (th.data.is_get_local_ok == 0) return false;
1527 1597 var dd = null,
... ... @@ -1562,6 +1632,7 @@ Page({
1562 1632 sto_sele_id: e.data.data.pageData[0].pickup_id,
1563 1633 sto_sele_distr: e.data.data.pageData[0].distr_type
1564 1634 });
  1635 + th.data.fir_def_store=e.data.data.pageData[0];
1565 1636 }
1566 1637  
1567 1638 //-- 如果有默认选择门店的时候,要把默认门店放在第一位 --
... ... @@ -1599,7 +1670,7 @@ Page({
1599 1670 var th=this;
1600 1671 //单总量超出5个的时候
1601 1672 if (e.data.data.total > 5) {
1602   - i.get("/api/weshop/storagecategory/page", {
  1673 + getApp().request.get("/api/weshop/storagecategory/page", {
1603 1674 data: {
1604 1675 store_id: o.stoid,
1605 1676 is_show: 1,
... ... @@ -1780,10 +1851,11 @@ Page({
1780 1851 o_plist[kk].CanOutQty=n_item.CanOutQty-lock_num;
1781 1852 new_list.push(o_plist[kk]);
1782 1853 //如果找到默认门店
1783   - if(def_pick_store && n_item.StorageNo==def_pick_store.pickup_no){
1784   - def_pick_store.CanOutQty=n_item.CanOutQty-lock_num;
1785   - th.setData({def_pick_store:def_pick_store})
1786   - is_find_def_store=1;
  1854 + if(n_item.StorageNo==th.data.fir_def_store.pickup_no){
  1855 + th.data.fir_def_store.CanOutQty=n_item.CanOutQty-lock_num;
  1856 + if(def_pick_store.pickup_id==th.data.fir_def_store.pickup_id)
  1857 + th.setData({def_pick_store:th.data.fir_def_store})
  1858 + is_find_def_store=1;
1787 1859 }
1788 1860 }
1789 1861 break;
... ... @@ -1794,14 +1866,21 @@ Page({
1794 1866 //数据组装下
1795 1867 var em={};em.data={};em.data.data={};
1796 1868 em.data.data.total=new_list.length;
1797   - em.data.data.pageData=new_list;
1798   -
  1869 + em.data.data.pageData=new_list;
  1870 +
  1871 + if(th.data.fir_def_store && !is_find_def_store){
  1872 + th.data.fir_def_store.CanOutQty=0;
  1873 + //--当选择的门店是客户默认的门店的时候--
  1874 + if(th.data.fir_def_store.pickup_id==th.data.def_pick_store.pickup_id) {
  1875 + th.setData({def_pick_store:th.data.fir_def_store});
  1876 + em.data.data.pageData.unshift(th.data.def_pick_store);
  1877 + }else{
  1878 + em.data.data.pageData.splice(1,0,th.data.fir_def_store);
  1879 + }
  1880 + }
  1881 +
1799 1882 //---把数组组装进去---
1800   - th.deal_pickup(em);
1801   - if(th.data.def_pick_store && !is_find_def_store){
1802   - th.setData({def_pick_store:null});
1803   - }
1804   -
  1883 + th.deal_pickup(em);
1805 1884 }else{
1806 1885 th.setData({def_pick_store:null,all_sto:null,only_pk:null})
1807 1886 }
... ... @@ -2172,7 +2251,7 @@ Page({
2172 2251 t.data.data.ct_rylist = JSON.parse(t.data.data.ct_rylist);
2173 2252 var max_num = 0;
2174 2253 t.data.data.ct_rylist.forEach(function(val, ind) {
2175   - if (val.rynum > max_num) max_num = val.rynum;
  2254 + if (parseInt(val.rynum) > max_num) max_num = parseInt(val.rynum);
2176 2255 })
2177 2256 t.data.data.max_ct_num = max_num;
2178 2257 }
... ... @@ -3405,7 +3484,7 @@ Page({
3405 3484 // 选择门店
3406 3485 choice_store: function(ee) {
3407 3486 var th = this;
3408   - //var ind=ee.currentTarget.dataset.ind;
  3487 + var ind=ee.currentTarget.dataset.ind;
3409 3488 var bconfig = th.data.bconfig;
3410 3489  
3411 3490 if(!th.data.only_pk && !th.data.def_pickpu_list){
... ... @@ -3461,25 +3540,63 @@ Page({
3461 3540 th.get_sto();
3462 3541 }
3463 3542  
3464   -
3465   -
3466   -
3467   - this.setData({
3468   - //open_ind_store: ind,
3469   - store: 1,
3470   - openSpecModal: !1,
3471   - openSpecModal_pt: !1
3472   - })
  3543 + if(ind!=undefined && ind!=null ){
  3544 + this.setData({
  3545 + open_ind_store: ind,
  3546 + store: 1,
  3547 + openSpecModal: !1,
  3548 + openSpecModal_pt: !1
  3549 + })
  3550 + }else{
  3551 + this.setData({
  3552 + store: 1,
  3553 + openSpecModal: !1,
  3554 + openSpecModal_pt: !1
  3555 + })
  3556 + }
3473 3557 },
3474 3558 //关闭选择门店
3475 3559 close_popup: function(e) {
3476   -
  3560 + var th=this;
3477 3561 this.setData({
3478 3562 store: 0,
3479 3563 choice_sort_store: 0,
3480   - sort_store: 0
  3564 + sort_store: 0,
  3565 + fir_pick_index:0,
  3566 + sec_pick_index:0
3481 3567 })
  3568 +
  3569 + var openindstore=this.data.open_ind_store;
  3570 + if (openindstore == 1) {
  3571 + th.setData({
  3572 + openSpecModal: !0,
  3573 + openSpecModal_ind: openindstore,
  3574 + });
  3575 + } else if (openindstore == 2) {
  3576 + th.setData({
  3577 + openSpecModal: !0,
  3578 + openSpecModal_ind: openindstore,
  3579 + });
  3580 + }
  3581 + else if (openindstore == 4) { //4就是拼团
  3582 + th.setData({
  3583 + openSpecModal_pt: 1, //打开拼团购买界面
  3584 + store: 0, //关闭门店
  3585 + choice_sort_store: 0, //关闭门店2级
  3586 + sort_store: 0, //关闭门店2级
  3587 + });
  3588 + }
  3589 + else {
  3590 + th.setData({
  3591 + store: 0,
  3592 + choice_sort_store: 0,
  3593 + sort_store: 0
  3594 + })
  3595 + }
  3596 +
  3597 +
3482 3598 },
  3599 +
3483 3600 //选择更多门店
3484 3601 more_store: function() {
3485 3602 this.setData({
... ... @@ -3509,19 +3626,18 @@ Page({
3509 3626 sec_pick_index: 0
3510 3627 });
3511 3628 },
  3629 +
3512 3630 choose_for_store_fir: function(e) {
3513 3631 var index_c = e.currentTarget.dataset.ind;
3514   - var th=this;
3515   - this.check_the_pick(index_c,function(){
3516   - th.setData({
3517   - fir_pick_index: index_c
3518   - })
3519   - })
3520   -
  3632 + var th=this;
  3633 + th.setData({
  3634 + fir_pick_index: index_c
  3635 + })
  3636 +
3521 3637 },
3522 3638  
3523 3639 //如果开启线下库存,已经急速库存才会使用
3524   - async check_the_pick(index,func){
  3640 + async check_the_pick(item,func){
3525 3641 var th=this;
3526 3642 var goodsinfo=th.data.sele_g;
3527 3643 var erpwareid=goodsinfo.erpwareid;
... ... @@ -3535,18 +3651,8 @@ Page({
3535 3651  
3536 3652 if(this.data.sales_rules!=2 && this.data.is_newsales_rules!=1){
3537 3653 func();
3538   - }else{
3539   - var item=null;
3540   - if (th.data.choice_sort_store == 0) {
3541   - if (th.data.is_show_sto_cat == 1) {
3542   - item = th.data.def_pickpu_list[index];
3543   - } else {
3544   - item = th.data.only_pk[index]; //当没有门店分类的时候
3545   - }
3546   - } else {
3547   - item = th.data.sec_sto.s_arr[index];
3548   - }
3549   -
  3654 + }else{
  3655 +
3550 3656 //先读取门店的lock
3551 3657 await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{
3552 3658 data:{store_id:os.stoid,wareId:goodsinfo.goods_id,storageId:item.pickup_id}
... ... @@ -3555,8 +3661,7 @@ Page({
3555 3661 for(var i in res.data.data.pageData )
3556 3662 lock+=res.data.data.pageData[i].outQty;
3557 3663 }
3558   - })
3559   -
  3664 + })
3560 3665 //读取线下的门店库存
3561 3666 await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
3562 3667 data:{storageNos:item.pickup_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid}
... ... @@ -3567,6 +3672,7 @@ Page({
3567 3672 })
3568 3673  
3569 3674 if(plist && plist.CanOutQty-lock>0){
  3675 + item.CanOutQty=plist.CanOutQty-lock;
3570 3676 func();
3571 3677 return false;
3572 3678 }
... ... @@ -3594,144 +3700,142 @@ Page({
3594 3700 var index = th.data.sec_pick_index;
3595 3701 item = th.data.sec_sto.s_arr[index];
3596 3702 }
3597   - th.setData({
3598   - def_pick_store: item,
3599   - sto_sele_name: item.pickup_name,
3600   - sto_sele_id: item.pickup_id,
3601   - sto_sele_distr: item.distr_type,
3602   - store: 0,
3603   - choice_sort_store: 0,
3604   - fir_pick_index: 0
3605   - });
3606   -
3607   - if (openindstore == 1) {
3608   - th.setData({
3609   - openSpecModal: !0,
3610   - openSpecModal_ind: openindstore,
3611   - });
3612   - } else if (openindstore == 2) {
3613   - th.setData({
3614   - openSpecModal: !0,
3615   - openSpecModal_ind: openindstore,
3616   - });
3617   - }
3618   - else if (openindstore == 4) { //4就是拼团
3619   - th.setData({
3620   - openSpecModal_pt: 1, //打开拼团购买界面
3621   - store: 0, //关闭门店
3622   - choice_sort_store: 0, //关闭门店2级
3623   - sort_store: 0, //关闭门店2级
3624   - });
3625   - }
3626   -
3627   - else {
3628   - th.setData({
3629   - store: 0,
3630   - choice_sort_store: 0,
3631   - sort_store: 0
3632   - })
3633   - }
3634   -
  3703 +
  3704 + //--回调函数的用法--
  3705 + th.check_the_pick(item,function(){
  3706 + th.setData({
  3707 + def_pick_store: item,
  3708 + sto_sele_name: item.pickup_name,
  3709 + sto_sele_id: item.pickup_id,
  3710 + sto_sele_distr: item.distr_type,
  3711 + store: 0,
  3712 + choice_sort_store: 0,
  3713 + fir_pick_index: 0
  3714 + });
  3715 +
  3716 + if (openindstore == 1) {
  3717 + th.setData({
  3718 + openSpecModal: !0,
  3719 + openSpecModal_ind: openindstore,
  3720 + });
  3721 + } else if (openindstore == 2) {
  3722 + th.setData({
  3723 + openSpecModal: !0,
  3724 + openSpecModal_ind: openindstore,
  3725 + });
  3726 + }
  3727 + else if (openindstore == 4) { //4就是拼团
  3728 + th.setData({
  3729 + openSpecModal_pt: 1, //打开拼团购买界面
  3730 + store: 0, //关闭门店
  3731 + choice_sort_store: 0, //关闭门店2级
  3732 + sort_store: 0, //关闭门店2级
  3733 + });
  3734 + }
  3735 + else {
  3736 + th.setData({
  3737 + store: 0,
  3738 + choice_sort_store: 0,
  3739 + sort_store: 0
  3740 + })
  3741 + }
  3742 + })
3635 3743 },
3636 3744 //---点击二级之后的选择---
3637 3745 choose_for_store: function(e) {
3638 3746 var index_c = e.currentTarget.dataset.ind;
3639   - var th=this;
3640   - th.check_the_pick(index_c,function(){
3641   - th.setData({
  3747 + var th=this;
  3748 + th.setData({
3642 3749 sec_pick_index: index_c,
3643 3750 fir_pick_index: index_c
3644   - })
3645   - })
  3751 + })
  3752 +
3646 3753 },
3647 3754 //把选择的门店设置成默认的门店def_pick
3648 3755 set_def_pick: function(e) {
3649 3756 var th = this;
3650 3757 var item = null;
3651   -
3652 3758 if (th.data.choice_sort_store == 0) {
3653   -
3654 3759 var index = th.data.fir_pick_index;
3655   -
3656 3760 if (th.data.is_show_sto_cat == 1) {
3657 3761 item = th.data.def_pickpu_list[index];
3658 3762 } else {
3659 3763 item = th.data.only_pk[index]; //当没有门店分类的时候
3660   -
3661 3764 }
3662 3765 } else {
3663 3766 var index = th.data.sec_pick_index;
3664 3767 item = th.data.sec_sto.s_arr[index];
3665 3768 }
3666   -
3667   - var store_id = o.stoid;
3668   - var user_id = getApp().globalData.user_id;
3669   - var def_pickup_id = item.pickup_id;
3670   -
3671   - getApp().request.put('/api/weshop/users/update', {
3672   - data: {
3673   - user_id,
3674   - def_pickup_id
3675   - },
3676   - success: function(res) {
3677   - if (res.data.code == 0) {
3678   - if (th.data.choice_sort_store == 0) th.setData({
3679   - fir_pick_index: 0
3680   - });
3681   - getApp().globalData.pk_store = item;
3682   - } else {
3683   - //s.showWarning("设置默认门店地址失败", null, 500, !1);
3684   - getApp().my_warnning("设置默认门店地址失败",0,th)
3685   - }
3686   -
3687   - }
3688   - });
3689   -
3690   - th.setData({
3691   - def_pick_store: item,
3692   - sto_sele_name: item.pickup_name,
3693   - sto_sele_id: item.pickup_id,
3694   - sto_sele_distr: item.distr_type,
3695   - store: 0,
3696   - choice_sort_store: 0
3697   - });
3698   -
3699   -
3700   - var openindstore = th.data.open_ind_store;
3701   - if (openindstore == 1) {
3702   - th.setData({
3703   - openSpecModal: !0,
3704   - openSpecModal_ind: openindstore,
3705   - store: 0,
3706   - choice_sort_store: 0,
3707   - sort_store: 0,
3708   - });
3709   - } else if (openindstore == 2) {
3710   - th.setData({
3711   - openSpecModal: !0,
3712   - openSpecModal_ind: openindstore,
3713   - store: 0,
3714   - choice_sort_store: 0,
3715   - sort_store: 0,
3716   - });
3717   - }
3718   - else if (openindstore == 4) { //4就是拼团
3719   - th.setData({
3720   - openSpecModal_pt: 1, //打开拼团购买界面
3721   - store: 0, //关闭门店
3722   - choice_sort_store: 0, //关闭门店2级
3723   - sort_store: 0, //关闭门店2级
3724   - });
3725   - }
3726   -
3727   - else {
3728   - th.setData({
3729   - store: 0,
3730   - choice_sort_store: 0,
3731   - sort_store: 0,
3732   - })
3733   - }
3734   -
  3769 +
  3770 + //先设置之前,要判断是不是有库存
  3771 + th.check_the_pick(item,function(){
  3772 + var store_id = o.stoid;
  3773 + var user_id = getApp().globalData.user_id;
  3774 + var def_pickup_id = item.pickup_id;
  3775 +
  3776 + getApp().request.put('/api/weshop/users/update', {
  3777 + data: {
  3778 + user_id,
  3779 + def_pickup_id
  3780 + },
  3781 + success: function(res) {
  3782 + if (res.data.code == 0) {
  3783 + if (th.data.choice_sort_store == 0) th.setData({
  3784 + fir_pick_index: 0
  3785 + });
  3786 + getApp().globalData.pk_store = item;
  3787 + } else {
  3788 + //s.showWarning("设置默认门店地址失败", null, 500, !1);
  3789 + getApp().my_warnning("设置默认门店地址失败",0,th)
  3790 + }
  3791 +
  3792 + }
  3793 + });
  3794 +
  3795 + th.setData({
  3796 + def_pick_store: item,
  3797 + sto_sele_name: item.pickup_name,
  3798 + sto_sele_id: item.pickup_id,
  3799 + sto_sele_distr: item.distr_type,
  3800 + store: 0,
  3801 + choice_sort_store: 0
  3802 + });
  3803 +
  3804 + var openindstore = th.data.open_ind_store;
  3805 + if (openindstore == 1) {
  3806 + th.setData({
  3807 + openSpecModal: !0,
  3808 + openSpecModal_ind: openindstore,
  3809 + store: 0,
  3810 + choice_sort_store: 0,
  3811 + sort_store: 0,
  3812 + });
  3813 + } else if (openindstore == 2) {
  3814 + th.setData({
  3815 + openSpecModal: !0,
  3816 + openSpecModal_ind: openindstore,
  3817 + store: 0,
  3818 + choice_sort_store: 0,
  3819 + sort_store: 0,
  3820 + });
  3821 + }
  3822 + else if (openindstore == 4) { //4就是拼团
  3823 + th.setData({
  3824 + openSpecModal_pt: 1, //打开拼团购买界面
  3825 + store: 0, //关闭门店
  3826 + choice_sort_store: 0, //关闭门店2级
  3827 + sort_store: 0, //关闭门店2级
  3828 + });
  3829 + }
  3830 +
  3831 + else {
  3832 + th.setData({
  3833 + store: 0,
  3834 + choice_sort_store: 0,
  3835 + sort_store: 0,
  3836 + })
  3837 + }
  3838 + })
3735 3839 },
3736 3840  
3737 3841 wait_for_store_config: function() {
... ...
pages/goods/goodsInfo/goodsInfo.wxml
... ... @@ -404,7 +404,15 @@
404 404 距离:{{def_pick_store.distance>1000?filters.toFix(def_pick_store.distance/1000,2)+"km":filters.toFix(def_pick_store.distance,0)+"m"}}
405 405  
406 406 </view>
407   - </view>
  407 + </view>
  408 + <view class="no_store" wx:if="{{only_pk && !only_pk.length}}">(库存不足)</view>
  409 + <block wx:else>
  410 + <view class="no_store" wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
  411 + <block wx:else>
  412 + <view class="no_store" wx:if="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}">(库存不足)</view>
  413 + </block>
  414 + </block>
  415 +
408 416 <view class="fs24 xc-ash-9f">地址:{{def_pick_store.fulladdress}}</view>
409 417 </view>
410 418 </view>
... ... @@ -910,11 +918,11 @@
910 918 <text class="right-arrow"></text>
911 919 </view>
912 920 </view>
913   - <view wx:if="{{only_pk && !only_pk.length}}">门店库存不足</view>
  921 + <view wx:if="{{only_pk && !only_pk.length}}">(库存不足)</view>
914 922 <block wx:else>
915   - <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">门店库存不足</view>
  923 + <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view>
916 924 <block wx:else>
917   - <view wx:if="{{def_pick_store && def_pick_store.CanOutQty<=0 && sales_rules==2 && prom_type==0}}">门店库存不足</view>
  925 + <view wx:if="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}">(库存不足)</view>
918 926 </block>
919 927 </block>
920 928  
... ... @@ -960,11 +968,10 @@
960 968 <block wx:if="{{!def_pick_store}}">
961 969 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">请先选择门店</view>
962 970 </block>
963   - <block wx:else>
964   -
  971 + <block wx:else>
965 972 <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 -->
966 973 <block wx:if="{{sales_rules==2 && prom_type==0}}">
967   - <block wx:if="{{def_pick_store.CanOutQty<=0}}">
  974 + <block wx:if="{{!def_pick_store.CanOutQty}}">
968 975 <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">库存不足</view>
969 976 </block>
970 977 <block wx:else>
... ...
pages/goods/goodsInfo/goodsInfo.wxss
... ... @@ -2254,7 +2254,7 @@ right:17rpx; top:55rpx;
2254 2254 height: 90rpx;
2255 2255 }
2256 2256 .sn_height{
2257   - height: 170rpx;
  2257 + min-height: 170rpx; height: auto;padding: 10rpx 0;
2258 2258 }
2259 2259 .xc-address_frame .address_frame{
2260 2260 width: 92%;
... ... @@ -2566,4 +2566,5 @@ border-radius: 55rpx;
2566 2566 button.custom-service { line-height: normal; border: 0;}
2567 2567 button.custom-service::after{
2568 2568 border: 0;
2569   -}
2570 2569 \ No newline at end of file
  2570 +}
  2571 +.no_store{color:#d60021; font-size: 26rpx;}
2571 2572 \ No newline at end of file
... ...
pages/user/order_detail/order_detail.js
1 1 var e = getApp(), r = e.request,rq=r,t = require("../../../utils/util.js"), o = require("../../../utils/common.js"),oo=e.globalData,os=oo.setting;
2 2 var regeneratorRuntime = require('../../../utils/runtime.js');
  3 +var ut= require('../../../utils/util.js');
  4 +
3 5  
4 6 Page({
5 7 data: {
... ... @@ -270,10 +272,206 @@ Page({
270 272 },
271 273  
272 274 //--------立即支付----------
273   - jumpToCart4: function(e) {
274   - this.data.optionIsGoup ? wx.navigateTo({
275   - url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true"
276   - }) : o.jumpToCart4({
  275 + async jumpToCart4(e) {
  276 + var th=this;
  277 + if(this.data.optionIsGoup)
  278 + wx.navigateTo({
  279 + url: "/pages/team/team_confirm/team_confirm?orderSn=" + this.data.order.order_sn + "&orderPay=true"
  280 + })
  281 + var order=this.data.order;
  282 + var order_goods=order.order_goods;
  283 +
  284 + for(var i in order_goods){
  285 + var good=order_goods[i];
  286 + //如果不是小程序有的功能,直接提示要去3.0处理
  287 + if(good.prom_type==2 || good.prom_type==3 || good.prom_type==4 || good.prom_type==5){
  288 + wx.showModal({
  289 + title: '提示',
  290 + content: '小程序还未有该活动,请到3.0公众号支付'
  291 + });
  292 + return false;
  293 + }
  294 +
  295 + //要每件每件的商品进行检查,看有么有超出库存,超出限购
  296 + var good= order_goods[i],goodsbuynum=0,promgoodsbuynum=0,gg=null;
  297 + //获取单品的现在的活动状态
  298 + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, {
  299 + }).then(res=>{
  300 + gg=res.data.data;
  301 + })
  302 + var limit = gg.viplimited;
  303 + var store_count = gg.store_count;
  304 +
  305 + //---要获得商品,该用户买了多少件,同步应用---
  306 + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", {
  307 + data: {
  308 + store_id: os.stoid,
  309 + user_id: getApp().globalData.user_id,
  310 + goods_id: good.goods_id,
  311 + prom_type: good.prom_type,
  312 + prom_id: good.prom_id
  313 + },
  314 + }).then(res => {
  315 + var buy_num_data = res.data.data;
  316 + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum;
  317 + goodsbuynum = buy_num_data.goodsbuynum;
  318 + })
  319 +
  320 + var buyed_mum2=goodsbuynum+good.goods_num;
  321 + if (buyed_mum2 > limit && limit > 0) {
  322 + wx.showModal({
  323 + title: '提示',
  324 + content: gg.goods_name+'购买数量超出商品限购'
  325 + });
  326 + return false;
  327 + }
  328 +
  329 + if(good.prom_type==1 || good.prom_type==6){
  330 + if(gg.prom_type!=good.prom_type) {
  331 + wx.showModal({
  332 + title: '提示',
  333 + content: gg.goods_name+'商品的活动发生了变化'
  334 + });
  335 + return false;
  336 + }
  337 +
  338 + }else{
  339 +
  340 + if(gg.prom_type==1 || gg.prom_type==6){
  341 + var prom=null;
  342 + //---如果是活动的时候---
  343 + var prom=null,th=this;
  344 + if(gg.prom_type==1){
  345 + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{
  346 + }).then(res=>{
  347 + if(res.data.code==0){
  348 + prom=res.data.data;
  349 + }
  350 + })
  351 + }
  352 + if(gg.prom_type==6){
  353 + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{
  354 + }).then(res=>{
  355 + if(res.data.code==0){
  356 + prom=res.data.data;
  357 + }
  358 + })
  359 + }
  360 +
  361 + if(prom){
  362 + var t_now=ut.gettimestamp();
  363 + if(prom.is_end==0 && prom.start_time<t_now && prom.end_time>t_now){
  364 + wx.showModal({
  365 + title: '提示',
  366 + content: gg.goods_name+'商品的活动发生了变化'
  367 + });
  368 + return false;
  369 + }
  370 + }
  371 + }
  372 +
  373 +
  374 + var isok=1;
  375 + var card_field=th.data.card_field;
  376 + //如果会员是等级会员,商品有等级价,且不是活动商品
  377 + if(card_field && gg[card_field]>0){
  378 + if (good.goods_price != gg[card_field]) isok = 0;
  379 + }else{
  380 + if (good.goods_price != gg.shop_price) isok = 0;
  381 +
  382 + }
  383 + if(!isok){
  384 + wx.showModal({
  385 + title: '提示',
  386 + content: gg.goods_name+'商品的价格发生了变化'
  387 + });
  388 + return false;
  389 + }
  390 +
  391 + //--如果是线下库存的时候--
  392 + if(th.data.conf.sales_rules==2){
  393 + var ob={};
  394 + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){
  395 + ob=obj;
  396 + })
  397 + if(ob.code==-1){
  398 + wx.showModal({
  399 + title: '提示',
  400 + content: gg.goods_name+'门店库存不足'
  401 + });
  402 + return false;
  403 + }
  404 +
  405 + }else{
  406 + if(good.goods_num>store_count){
  407 + wx.showModal({
  408 + title: '提示',
  409 + content: gg.goods_name+'商品的库存不足'
  410 + });
  411 + return false;
  412 + }
  413 +
  414 + }
  415 + }
  416 +
  417 + var prom=null;
  418 + //---如果是活动的时候---
  419 + var prom=null,goodsinfo=good,th=this;
  420 + if(goodsinfo.prom_type==1){
  421 + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{
  422 + }).then(res=>{
  423 + if(res.data.code==0){
  424 + prom=res.data.data;
  425 + }
  426 + })
  427 + }
  428 + if(goodsinfo.prom_type==6){
  429 + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{
  430 + }).then(res=>{
  431 + if(res.data.code==0){
  432 + prom=res.data.data;
  433 + }
  434 + })
  435 + }
  436 + //----------如果有活动,并且在进行中,就不计算线下库存---------------
  437 + if(prom){
  438 + var now=ut.gettimestamp();
  439 + if(prom.is_end==1 && prom.end_time<now){
  440 + wx.showModal({
  441 + title: '提示',
  442 + content: goodsinfo.goods_name+'商品的活动已经结束'
  443 + });
  444 + return false;
  445 + }
  446 +
  447 + buyed_mum2=promgoodsbuynum+good.goods_num;
  448 + if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) {
  449 + wx.showModal({
  450 + title: '提示',
  451 + content: goodsinfo.goods_name+'购买数量超出商品活动限购'
  452 + });
  453 + return false;
  454 + }
  455 +
  456 + var redis_num = 0;
  457 + //------判断活动是否抢光-----
  458 + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" +
  459 + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, {
  460 + }).then(res => {
  461 + redis_num = res.data.data;
  462 + });
  463 +
  464 + if (good.goods_num > redis_num) {
  465 + wx.showModal({
  466 + title: gg.goods_name+'超出商品活动库存',
  467 + });
  468 + return false;
  469 + }
  470 + }
  471 +
  472 + }
  473 +
  474 + o.jumpToCart4({
277 475 order_sn: this.data.order.order_sn,
278 476 order_amount: this.data.order.order_amount
279 477 }, 1);
... ... @@ -393,7 +591,48 @@ Page({
393 591 if(item.order_amount==0 || item.user_money==0) return true;
394 592 }
395 593 return false;
396   - }
  594 + },
  595 +
  596 +
  597 +
  598 + //---检验线下库存的数量的子函数---
  599 + async check_down_line_next(gg,num,pick_id,func){
  600 +
  601 + var lock=0,pick_no,plist;
  602 + //先读取门店的lock
  603 + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{
  604 + data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id}
  605 + }).then(res=>{
  606 + if(res.data.code==0 && res.data.data.total>0){
  607 + for(var i in res.data.data.pageData)
  608 + lock+=res.data.data.pageData[i].outQty;
  609 + }
  610 + })
  611 + //先获取门店的编号
  612 + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{
  613 + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id}
  614 + }).then(res=>{
  615 + if(res.data.code==0){
  616 + pick_no=res.data.data.pickup_no;
  617 + }
  618 + })
  619 + //读取线下的门店库存
  620 + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{
  621 + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid}
  622 + }).then(res=>{
  623 + if(res.data.code==0){
  624 + plist=res.data.data.pageData[0];
  625 + }
  626 + })
  627 + var ob={}; ob.code=1;
  628 + if(num>plist.CanOutQty-lock){
  629 + ob.code=-1;
  630 + ob.CanOutQty=plist.CanOutQty-lock
  631 + if(ob.CanOutQty<0) ob.CanOutQty=0;
  632 + }
  633 + func(ob)
  634 + },
  635 +
397 636  
398 637  
399 638  
... ...
pages/user/order_list/order_list.js
... ... @@ -422,13 +422,18 @@ Page({
422 422 return false;
423 423 }
424 424  
  425 +
  426 + console.log("-----------------111-------------------");
  427 +
425 428 if(good.prom_type==1 || good.prom_type==6){
426   - if(gg.prom_type!=good.prom_type)
427   - wx.showModal({
428   - title: '提示',
429   - content: gg.goods_name+'商品的活动发生了变化'
430   - });
431   - return false;
  429 + if(gg.prom_type!=good.prom_type) {
  430 + wx.showModal({
  431 + title: '提示',
  432 + content: gg.goods_name+'商品的活动发生了变化'
  433 + });
  434 + return false;
  435 + }
  436 +
432 437 }else{
433 438  
434 439 if(gg.prom_type==1 || gg.prom_type==6){
... ... @@ -507,6 +512,8 @@ Page({
507 512  
508 513 }
509 514 }
  515 +
  516 + console.log("------------------------------------");
510 517  
511 518 var prom=null;
512 519 //---如果是活动的时候---
... ... @@ -604,7 +611,8 @@ Page({
604 611 data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id}
605 612 }).then(res=>{
606 613 if(res.data.code==0 && res.data.data.total>0){
607   - lock=res.data.data.pageData[0].outQty;
  614 + for(var i in res.data.data.pageData)
  615 + lock+=res.data.data.pageData[i].outQty;
608 616 }
609 617 })
610 618 //先获取门店的编号
... ...