Commit 619c3082cba6a4979abfacebbd23cf618c2fbac0
Merge branch 'dev' into 'test'
Dev See merge request !355
Showing
14 changed files
with
1299 additions
and
430 deletions
pages/cart/cart/cart.js
| 1 | 1 | var t = getApp(), | 
| 2 | 2 | a = t.request, | 
| 3 | 3 | oo = t.globalData.setting, | 
| 4 | + os=oo, | |
| 4 | 5 | app = getApp(), | 
| 5 | 6 | rq = t.request, | 
| 6 | 7 | ut = require("../../../utils/util.js"); | 
| ... | ... | @@ -26,13 +27,24 @@ Page({ | 
| 26 | 27 | isadd: 0, //是否可以加商品数量 | 
| 27 | 28 | |
| 28 | 29 | card_field:"", | 
| 30 | + bconf:null, | |
| 31 | + | |
| 29 | 32 | }, | 
| 30 | 33 | |
| 31 | 34 | onLoad: function() { | 
| 35 | + var a = this,ee=a; | |
| 36 | + //----获取系统参数----- | |
| 37 | + getApp().getConfig2(function(e) { | |
| 38 | + ee.setData({ | |
| 39 | + bconfig: e, | |
| 40 | + sales_rules:e.sales_rules | |
| 41 | + }); | |
| 42 | + }) | |
| 43 | + | |
| 32 | 44 | wx.setNavigationBarTitle({ | 
| 33 | 45 | title: "购物车", | 
| 34 | 46 | }) | 
| 35 | - var a = this; | |
| 47 | + | |
| 36 | 48 | //判断是否有登陆 | 
| 37 | 49 | t.auth.hadAuth() && t.getUserInfo(function() { | 
| 38 | 50 | a.getCardList(); | 
| ... | ... | @@ -117,6 +129,8 @@ Page({ | 
| 117 | 129 | var all_num = 0; | 
| 118 | 130 | |
| 119 | 131 | for (var i = 0; i < carr.length; i++) { | 
| 132 | + | |
| 133 | + | |
| 120 | 134 | var item = carr[i]; | 
| 121 | 135 | all_num += item.goods_num; | 
| 122 | 136 | item.original_img = oo.imghost + item.original_img; | 
| ... | ... | @@ -427,7 +441,7 @@ Page({ | 
| 427 | 441 | |
| 428 | 442 | //----------------------更新购物数量,加减,调用接口--------------------- | 
| 429 | 443 | postCardList: function(t, item, pitem) { | 
| 430 | - var e = this; | |
| 444 | + var e = this,th=e; | |
| 431 | 445 | var user_id = getApp().globalData.user_id; | 
| 432 | 446 | console.log('update'); | 
| 433 | 447 | console.log(t); | 
| ... | ... | @@ -436,11 +450,12 @@ Page({ | 
| 436 | 450 | async success(d) { | 
| 437 | 451 | var limit = d.data.data.viplimited; | 
| 438 | 452 | var store_count = d.data.data.store_count; | 
| 453 | + var wareIds=d.data.data.erpwareid; | |
| 439 | 454 | |
| 440 | 455 | var goodsinfo = e.data.requestData[pitem].goods[item]; | 
| 441 | 456 | var promgoodsbuynum = 0; | 
| 442 | 457 | var goodsbuynum = 0; | 
| 443 | - | |
| 458 | + | |
| 444 | 459 | //--要获得商品,该用户买了多少件,同步应用-- | 
| 445 | 460 | await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | 
| 446 | 461 | data: { | 
| ... | ... | @@ -455,6 +470,7 @@ Page({ | 
| 455 | 470 | if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | 
| 456 | 471 | goodsbuynum = buy_num_data.goodsbuynum; | 
| 457 | 472 | }) | 
| 473 | + | |
| 458 | 474 | |
| 459 | 475 | var buyed_mum2 = t.goods_num + goodsbuynum; | 
| 460 | 476 | if (buyed_mum2 > limit && limit > 0) { | 
| ... | ... | @@ -463,7 +479,7 @@ Page({ | 
| 463 | 479 | content: '购买数量超出商品限购' | 
| 464 | 480 | }); | 
| 465 | 481 | var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | 
| 466 | - var cbuy = limit - buyed_mum; | |
| 482 | + var cbuy = limit - buyed_mum2; | |
| 467 | 483 | e.setData({ | 
| 468 | 484 | [txt]: cbuy > 0 ? cbuy : 0, | 
| 469 | 485 | }); | 
| ... | ... | @@ -471,78 +487,177 @@ Page({ | 
| 471 | 487 | return false; | 
| 472 | 488 | } | 
| 473 | 489 | |
| 474 | - if (t.goods_num > store_count) { | |
| 475 | - wx.showModal({ | |
| 476 | - title: '提示', | |
| 477 | - content: '购买数量超出商品库存' | |
| 478 | - }); | |
| 479 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 480 | - e.setData({ | |
| 481 | - [txt]: store_count | |
| 482 | - }); | |
| 483 | - e.doCheckAll(); | |
| 484 | - return false; | |
| 485 | - } | |
| 486 | - | |
| 490 | + | |
| 487 | 491 | if (goodsinfo.prom_type == 1) { | 
| 488 | - //读取秒杀 | |
| 489 | - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { | |
| 492 | + //读取秒杀 | |
| 493 | + rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { | |
| 490 | 494 | isShowLoading: 0, | 
| 491 | 495 | success: function(res_d) { | 
| 492 | - var false_data = res_d.data.data; | |
| 493 | - | |
| 494 | - //--判断库存-- | |
| 495 | - if (t.goods_num > false_data.goods_num - false_data.buy_num) { | |
| 496 | - wx.showModal({ | |
| 497 | - title: '提示', | |
| 498 | - content: '购买数量超出活动库存' | |
| 499 | - }); | |
| 500 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 501 | - e.setData({ | |
| 502 | - [txt]: false_data.goods_num - false_data.buy_num | |
| 503 | - }); | |
| 504 | - e.doCheckAll(); | |
| 505 | - return false; | |
| 506 | - } | |
| 507 | - | |
| 508 | - //--判断redis数量是否已经超出-- | |
| 509 | - if (t.goods_num > false_data.redisnum) { | |
| 510 | - wx.showModal({ | |
| 511 | - title: '提示', | |
| 512 | - content: '购买数量超出商品库存' | |
| 513 | - }); | |
| 514 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 515 | - e.setData({ | |
| 516 | - [txt]: false_data.redisnum | |
| 517 | - }); | |
| 518 | - e.doCheckAll(); | |
| 519 | - return false; | |
| 520 | - } | |
| 521 | - | |
| 522 | - //--活动的限购是不是要判断-- | |
| 523 | - if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { | |
| 524 | - wx.showModal({ | |
| 525 | - title: '提示', | |
| 526 | - content: '购买数量超出秒杀限购' | |
| 527 | - }); | |
| 528 | - var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 529 | - e.setData({ | |
| 530 | - [txt]: false_data.false_data.buy_limit | |
| 531 | - }); | |
| 532 | - e.doCheckAll(); | |
| 533 | - return false; | |
| 534 | - } | |
| 535 | - e.update_cart(t, pitem, item); | |
| 496 | + | |
| 497 | + if(res_d.data.code==0){ | |
| 498 | + if (t.goods_num > store_count) { | |
| 499 | + wx.showModal({ | |
| 500 | + title: '提示', | |
| 501 | + content: '购买数量超出商品库存' | |
| 502 | + }); | |
| 503 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 504 | + e.setData({ | |
| 505 | + [txt]: store_count | |
| 506 | + }); | |
| 507 | + e.doCheckAll(); | |
| 508 | + return false; | |
| 509 | + } | |
| 510 | + | |
| 511 | + var false_data = res_d.data.data; | |
| 512 | + //--判断库存-- | |
| 513 | + if (t.goods_num > false_data.goods_num - false_data.buy_num) { | |
| 514 | + wx.showModal({ | |
| 515 | + title: '提示', | |
| 516 | + content: '购买数量超出活动库存' | |
| 517 | + }); | |
| 518 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 519 | + e.setData({ | |
| 520 | + [txt]: false_data.goods_num - false_data.buy_num | |
| 521 | + }); | |
| 522 | + e.doCheckAll(); | |
| 523 | + return false; | |
| 524 | + } | |
| 525 | + | |
| 526 | + //--判断redis数量是否已经超出-- | |
| 527 | + if (t.goods_num > false_data.redisnum) { | |
| 528 | + wx.showModal({ | |
| 529 | + title: '提示', | |
| 530 | + content: '购买数量超出商品库存' | |
| 531 | + }); | |
| 532 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 533 | + e.setData({ | |
| 534 | + [txt]: false_data.redisnum | |
| 535 | + }); | |
| 536 | + e.doCheckAll(); | |
| 537 | + return false; | |
| 538 | + } | |
| 539 | + | |
| 540 | + //--活动的限购是不是要判断-- | |
| 541 | + if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { | |
| 542 | + wx.showModal({ | |
| 543 | + title: '提示', | |
| 544 | + content: '购买数量超出秒杀限购' | |
| 545 | + }); | |
| 546 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 547 | + e.setData({ | |
| 548 | + [txt]: false_data.false_data.buy_limit | |
| 549 | + }); | |
| 550 | + e.doCheckAll(); | |
| 551 | + return false; | |
| 552 | + } | |
| 553 | + }else{ | |
| 554 | + //--- 看一下是不是线下库存 --- | |
| 555 | + if(th.data.sales_rules==2){ | |
| 556 | + th.check_down_line(t, pitem, item,wareIds); | |
| 557 | + }else{ | |
| 558 | + if (t.goods_num > store_count) { | |
| 559 | + wx.showModal({ | |
| 560 | + title: '提示', | |
| 561 | + content: '购买数量超出商品库存' | |
| 562 | + }); | |
| 563 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 564 | + e.setData({ | |
| 565 | + [txt]: store_count | |
| 566 | + }); | |
| 567 | + e.doCheckAll(); | |
| 568 | + return false; | |
| 569 | + } | |
| 570 | + e.update_cart(t, pitem, item); | |
| 571 | + } | |
| 572 | + } | |
| 573 | + | |
| 536 | 574 | } | 
| 537 | 575 | }) | 
| 538 | - } else { | |
| 539 | - e.update_cart(t, pitem, item); | |
| 576 | + } else { | |
| 577 | + //--- 看一下是不是线下库存 --- | |
| 578 | + if(th.data.sales_rules==2){ | |
| 579 | + th.check_down_line(t, pitem, item,wareIds); | |
| 580 | + }else{ | |
| 581 | + if (t.goods_num > store_count) { | |
| 582 | + wx.showModal({ | |
| 583 | + title: '提示', | |
| 584 | + content: '购买数量超出商品库存' | |
| 585 | + }); | |
| 586 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 587 | + e.setData({ | |
| 588 | + [txt]: store_count | |
| 589 | + }); | |
| 590 | + e.doCheckAll(); | |
| 591 | + return false; | |
| 592 | + } | |
| 593 | + e.update_cart(t, pitem, item); | |
| 594 | + } | |
| 540 | 595 | } | 
| 541 | 596 | } | 
| 542 | 597 | }); | 
| 543 | 598 | }, | 
| 544 | - | |
| 545 | - //更新购物车 | |
| 599 | + | |
| 600 | + //---检验线下库存的数量--- | |
| 601 | + async check_down_line(t, pitem, item,erpwareid){ | |
| 602 | + var ob={},th=this; | |
| 603 | + await this.check_down_line_next(t, pitem, item,erpwareid,function(res){ | |
| 604 | + ob=res; | |
| 605 | + }); | |
| 606 | + var log=0; | |
| 607 | + if(ob.code==-1){ | |
| 608 | + wx.showModal({ | |
| 609 | + title: '提示', | |
| 610 | + content: '购买数量超出商品库存' | |
| 611 | + }); | |
| 612 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 613 | + th.setData({ | |
| 614 | + [txt]: ob.CanOutQty | |
| 615 | + }); | |
| 616 | + th.doCheckAll(); | |
| 617 | + return false; | |
| 618 | + } | |
| 619 | + this.update_cart(t, pitem, item); | |
| 620 | + }, | |
| 621 | + | |
| 622 | + //---检验线下库存的数量的子函数--- | |
| 623 | + async check_down_line_next(t, pitem, item,erpwareid,func){ | |
| 624 | + var goodsinfo = this.data.requestData[pitem].goods[item]; | |
| 625 | + var lock=0,pick_no,plist; | |
| 626 | + //先读取门店的lock | |
| 627 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 628 | + data:{store_id:os.stoid,wareId:t.goods_id,storageId:goodsinfo.pick_id} | |
| 629 | + }).then(res=>{ | |
| 630 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 631 | + lock=res.data.data.pageData[0].outQty; | |
| 632 | + } | |
| 633 | + }) | |
| 634 | + //先获取门店的编号 | |
| 635 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+goodsinfo.pick_id,{ | |
| 636 | + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:goodsinfo.pick_id} | |
| 637 | + }).then(res=>{ | |
| 638 | + if(res.data.code==0){ | |
| 639 | + pick_no=res.data.data.pickup_no; | |
| 640 | + } | |
| 641 | + }) | |
| 642 | + //读取线下的门店库存 | |
| 643 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 644 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} | |
| 645 | + }).then(res=>{ | |
| 646 | + if(res.data.code==0){ | |
| 647 | + plist=res.data.data.pageData[0]; | |
| 648 | + } | |
| 649 | + }) | |
| 650 | + var ob={}; ob.code=1; | |
| 651 | + if(t.goods_num>plist.CanOutQty-lock){ | |
| 652 | + ob.code=-1; | |
| 653 | + ob.CanOutQty=plist.CanOutQty-lock | |
| 654 | + if(ob.CanOutQty<0) ob.CanOutQty=0; | |
| 655 | + } | |
| 656 | + func(ob) | |
| 657 | + }, | |
| 658 | + | |
| 659 | + | |
| 660 | + //--更新购物车--- | |
| 546 | 661 | update_cart: function(t, pitem, item) { | 
| 547 | 662 | var e = this; | 
| 548 | 663 | getApp().request.put("/api/weshop/cart/update", { | 
| ... | ... | @@ -573,7 +688,7 @@ Page({ | 
| 573 | 688 | var th = this; | 
| 574 | 689 | |
| 575 | 690 | var ab = 0; //选中 | 
| 576 | - console.log('checkout'); | |
| 691 | + wx.showLoading(); | |
| 577 | 692 | for (var i = 0; i < this.data.requestData.length; i++) { | 
| 578 | 693 | var i_arr = this.data.requestData[i].goods; | 
| 579 | 694 | for (var j = 0; j < i_arr.length; j++) { | 
| ... | ... | @@ -594,6 +709,25 @@ Page({ | 
| 594 | 709 | } | 
| 595 | 710 | glist += i_arr[j].goods_id + ","; | 
| 596 | 711 | ab = 1; | 
| 712 | + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算--- | |
| 713 | + if(i_arr[j].prom_type==0 && th.data.sales_rules==2){ | |
| 714 | + //--获取商品的线下商品ID-- | |
| 715 | + var gd=null; | |
| 716 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id,{}).then(res=>{ | |
| 717 | + if(res.data.code==0) gd=res.data.data; | |
| 718 | + }) | |
| 719 | + //--判断商品是线下库存-- | |
| 720 | + var ob={} | |
| 721 | + await th.check_down_line_next(i_arr[j],i,j,gd.erpwareid,function(rs){ | |
| 722 | + ob=rs; | |
| 723 | + }); | |
| 724 | + if(ob.code==-1){ | |
| 725 | + t.my_warnning(gd.goods_name+"门店库存不足", 0, th); | |
| 726 | + wx.hideLoading(); | |
| 727 | + return false; | |
| 728 | + } | |
| 729 | + } | |
| 730 | + | |
| 597 | 731 | } else { | 
| 598 | 732 | rq.put("/api/weshop/cart/update", { | 
| 599 | 733 | data: { | 
| ... | ... | @@ -610,6 +744,7 @@ Page({ | 
| 610 | 744 | } | 
| 611 | 745 | if (ab == 0) { | 
| 612 | 746 | t.my_warnning("未选择商品", 0, th); | 
| 747 | + wx.hideLoading(); | |
| 613 | 748 | return false; | 
| 614 | 749 | } | 
| 615 | 750 | |
| ... | ... | @@ -657,7 +792,8 @@ Page({ | 
| 657 | 792 | } | 
| 658 | 793 | |
| 659 | 794 | try { | 
| 660 | - ddata.forEach(function(val, ind) { | |
| 795 | + for(var ind in ddata) { | |
| 796 | + var val=ddata[ind]; | |
| 661 | 797 | var num = map.get(val.goods_id + ""); | 
| 662 | 798 | if (num <= 0) { | 
| 663 | 799 | isok = 0; | 
| ... | ... | @@ -665,12 +801,25 @@ Page({ | 
| 665 | 801 | throw "购买数量不能为0"; | 
| 666 | 802 | return false; | 
| 667 | 803 | } | 
| 668 | - if (num > val.store_count) { | |
| 669 | - isok = 0; | |
| 670 | - gname = val.goods_name; | |
| 671 | - throw "超出库存"; | |
| 672 | - return false; | |
| 673 | - } | |
| 804 | + | |
| 805 | + if(val.prom_type==1 || val.prom_type==6){ | |
| 806 | + if (num > val.store_count) { | |
| 807 | + isok = 0; | |
| 808 | + gname = val.goods_name; | |
| 809 | + throw "超出库存"; | |
| 810 | + return false; | |
| 811 | + } | |
| 812 | + } | |
| 813 | + | |
| 814 | + if(th.data.sales_rules!=2){ | |
| 815 | + if (num > val.store_count) { | |
| 816 | + isok = 0; | |
| 817 | + gname = val.goods_name; | |
| 818 | + throw "超出库存"; | |
| 819 | + return false; | |
| 820 | + } | |
| 821 | + } | |
| 822 | + | |
| 674 | 823 | if (num > val.redisnum && val.redisnum) { | 
| 675 | 824 | isok = 0; | 
| 676 | 825 | gname = val.goods_name; | 
| ... | ... | @@ -712,7 +861,7 @@ Page({ | 
| 712 | 861 | throw "商品价格已经变化"; | 
| 713 | 862 | } | 
| 714 | 863 | }else{ | 
| 715 | - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { | |
| 864 | + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { | |
| 716 | 865 | isok = 0; | 
| 717 | 866 | gname = val.goods_name; | 
| 718 | 867 | throw "商品价格已经变化"; | 
| ... | ... | @@ -733,14 +882,16 @@ Page({ | 
| 733 | 882 | } | 
| 734 | 883 | } | 
| 735 | 884 | |
| 736 | - }) | |
| 885 | + } | |
| 737 | 886 | } catch (e) { | 
| 738 | 887 | err = e; | 
| 739 | 888 | } | 
| 740 | 889 | if (isok == 0) { | 
| 741 | 890 | t.confirmBox(gname + ":" + err); | 
| 891 | + wx.hideLoading(); | |
| 742 | 892 | return false; | 
| 743 | 893 | } | 
| 894 | + wx.hideLoading(); | |
| 744 | 895 | wx.navigateTo({ | 
| 745 | 896 | url: "/pages/cart/cart2/cart2" | 
| 746 | 897 | }); | 
| ... | ... | @@ -821,6 +972,8 @@ Page({ | 
| 821 | 972 | wx.switchTab({ | 
| 822 | 973 | url: '/pages/index/index/index', | 
| 823 | 974 | }) | 
| 824 | - } | |
| 975 | + }, | |
| 976 | + | |
| 977 | + | |
| 825 | 978 | |
| 826 | 979 | }); | 
| 827 | 980 | \ No newline at end of file | ... | ... | 
pages/cart/cart2/cart2.js
| 1 | 1 | var t = getApp(),app=t, a = t.request, e = require("../../../utils/common.js"), | 
| 2 | 2 | s = require("../../../utils/util.js"), o = require("../../../utils/md5.js"), to = getApp(); | 
| 3 | -var oo=t.globalData.setting; | |
| 3 | +var oo=t.globalData.setting,os=oo; | |
| 4 | 4 | var regeneratorRuntime = require('../../../utils/runtime.js'); | 
| 5 | 5 | var util_pay = require("../../../utils/pay.js"); | 
| 6 | 6 | |
| ... | ... | @@ -84,6 +84,9 @@ Page({ | 
| 84 | 84 | is_coupon:null, //选择券的控制属性 | 
| 85 | 85 | is_shipping_code:"",//插入用户默认地址 | 
| 86 | 86 | wu_arr_txt:"", //要更新的物流的字段 | 
| 87 | + | |
| 88 | + sales_rules:1, //默认是显示线上库存 | |
| 89 | + | |
| 87 | 90 | }, | 
| 88 | 91 | onLoad: function(t) { | 
| 89 | 92 | |
| ... | ... | @@ -101,7 +104,7 @@ Page({ | 
| 101 | 104 | //先获取是否有关闭使用优惠券 | 
| 102 | 105 | getApp().getConfig2(function (ee) { | 
| 103 | 106 | var json_d = JSON.parse(ee.switch_list); | 
| 104 | - th.setData({ is_close_quan: json_d.is_close_quan }); | |
| 107 | + th.setData({ is_close_quan: json_d.is_close_quan,sales_rules:ee.sales_rules }); | |
| 105 | 108 | //-----先获取物流,再获取用户信息,再展示页面----- | 
| 106 | 109 | th.get_wuliu(th.get_info(th.show_page)); | 
| 107 | 110 | }) | 
| ... | ... | @@ -698,7 +701,7 @@ Page({ | 
| 698 | 701 | }, | 
| 699 | 702 | |
| 700 | 703 | //--------------------提交订单----------------------- | 
| 701 | - submitForm: function(t) { | |
| 704 | + async submitForm(t){ | |
| 702 | 705 | if(this.data.is_summit_ing==1) return false; //--提交中退出-- | 
| 703 | 706 | this.data.is_summit_ing=1; | 
| 704 | 707 | var th=this,pdata=new Array(); | 
| ... | ... | @@ -772,7 +775,20 @@ Page({ | 
| 772 | 775 | 'prom_type':th.data.bn_goods.prom_type, //促销活动类型 | 
| 773 | 776 | 'prom_id': th.data.bn_goods.prom_id, //促销活动id | 
| 774 | 777 | }; | 
| 775 | - | |
| 778 | + | |
| 779 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | |
| 780 | + if(goods.prom_type!=1 && goods.prom_type!=6 && th.data.sales_rules==2){ | |
| 781 | + var isok=1; | |
| 782 | + await th.check_store_num(goods.goods_id,th.data.bn_pick, gg.goods_num,function(res){ | |
| 783 | + isok=res; | |
| 784 | + }); | |
| 785 | + if(!isok){ | |
| 786 | + getApp().confirmBox("商品的门店库存不足"); | |
| 787 | + th.data.is_summit_ing=0; | |
| 788 | + return false; | |
| 789 | + } | |
| 790 | + } | |
| 791 | + | |
| 776 | 792 | //--组装优惠券的钱-- | 
| 777 | 793 | if(th.data.formData.coupon_price){ | 
| 778 | 794 | item.coupon_price=th.data.formData.coupon_price; | 
| ... | ... | @@ -868,6 +884,20 @@ Page({ | 
| 868 | 884 | }else{ | 
| 869 | 885 | goods.prom_type = 0;goods.prom_id =0; | 
| 870 | 886 | } | 
| 887 | + | |
| 888 | + //如果不立即购买或者秒杀,如果是线下库存购买的时候 | |
| 889 | + if(goods.prom_type==0 && th.data.sales_rules==2){ | |
| 890 | + var isok=1; | |
| 891 | + await th.check_store_num(goods.goods_id, t_item.pickup_id,goods.goods_num,function(res){ | |
| 892 | + isok=res; | |
| 893 | + }); | |
| 894 | + if(!isok){ | |
| 895 | + getApp().confirmBox( goods.goods_name+"的门店库存不足"); | |
| 896 | + th.data.is_summit_ing=0; | |
| 897 | + return false; | |
| 898 | + } | |
| 899 | + } | |
| 900 | + | |
| 871 | 901 | item.order_goods.push(goods); | 
| 872 | 902 | } | 
| 873 | 903 | pdata.push(item); | 
| ... | ... | @@ -975,6 +1005,49 @@ Page({ | 
| 975 | 1005 | }) | 
| 976 | 1006 | |
| 977 | 1007 | }, | 
| 1008 | + | |
| 1009 | + //---确认线下门店的数量足不足--- | |
| 1010 | + async check_store_num(goods_id,pick,goods_num,func){ | |
| 1011 | + var lock=0,pick_no,plist,erpwareid; | |
| 1012 | + //先读取门店的lock | |
| 1013 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 1014 | + data:{store_id:os.stoid,wareId:goods_id,storageId:pick} | |
| 1015 | + }).then(res=>{ | |
| 1016 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 1017 | + lock=res.data.data.pageData[0].outQty; | |
| 1018 | + } | |
| 1019 | + }) | |
| 1020 | + //先获取门店的编号 | |
| 1021 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick,{ | |
| 1022 | + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} | |
| 1023 | + }).then(res=>{ | |
| 1024 | + if(res.data.code==0){ | |
| 1025 | + pick_no=res.data.data.pickup_no; | |
| 1026 | + } | |
| 1027 | + }) | |
| 1028 | + //先获取商品的线下库存 | |
| 1029 | + await getApp().request.promiseGet("/api/weshop/goods/get/"+os.stoid+"/"+goods_id,{ | |
| 1030 | + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} | |
| 1031 | + }).then(res=>{ | |
| 1032 | + if(res.data.code==0){ | |
| 1033 | + erpwareid=res.data.data.erpwareid; | |
| 1034 | + } | |
| 1035 | + }) | |
| 1036 | + //读取线下的门店库存 | |
| 1037 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 1038 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} | |
| 1039 | + }).then(res=>{ | |
| 1040 | + if(res.data.code==0){ | |
| 1041 | + plist=res.data.data.pageData[0]; | |
| 1042 | + } | |
| 1043 | + }) | |
| 1044 | + var isok=1; | |
| 1045 | + if(goods_num>plist.CanOutQty-lock){ | |
| 1046 | + isok=0; | |
| 1047 | + } | |
| 1048 | + func(isok); | |
| 1049 | + }, | |
| 1050 | + | |
| 978 | 1051 | |
| 979 | 1052 | useCoupon: function() { | 
| 980 | 1053 | if (this.data.order.couponNum <= 0) { | ... | ... | 
pages/goods/goodsInfo/goodsInfo.js
| ... | ... | @@ -125,8 +125,8 @@ Page({ | 
| 125 | 125 | pickpu_list: null, //读出的所有门店list | 
| 126 | 126 | def_pickpu_list: null, //一开始5个门店list | 
| 127 | 127 | sec_pick_index: 0, //第二级门店选择ID | 
| 128 | - fir_pick_index: 0, //第一级门店选择ID | |
| 129 | - | |
| 128 | + fir_pick_index: 0, //第一级门店选择ID | |
| 129 | + all_pick_list:null,//所有的门店先记录起来 | |
| 130 | 130 | //同一条形码的所有商品 | 
| 131 | 131 | sku_g: null, | 
| 132 | 132 | sku_g_pt: null, //---拼单的普通购买--- | 
| ... | ... | @@ -279,6 +279,7 @@ Page({ | 
| 279 | 279 | var json_d = JSON.parse(e.switch_list); | 
| 280 | 280 | ee.setData({ | 
| 281 | 281 | store_config: e, | 
| 282 | + sys_switch:json_d, | |
| 282 | 283 | is_closecoupon: json_d.is_closecoupon, | 
| 283 | 284 | is_newsales_rules:json_d.is_newsales_rules | 
| 284 | 285 | }); | 
| ... | ... | @@ -300,27 +301,27 @@ Page({ | 
| 300 | 301 | //---回调卡的列表--- | 
| 301 | 302 | th.getPlusCardType(function(ob){ | 
| 302 | 303 | th.setData({card_list:ob.card_list}); | 
| 303 | - var ti = setInterval(function () { | |
| 304 | - var user = getApp().globalData.userInfo; | |
| 305 | - if (!user) return false; | |
| 306 | - clearInterval(ti); | |
| 307 | - | |
| 308 | - if(user.card_field ){ | |
| 309 | - var str = user['card_expiredate'].replace(/-/g, '/'); | |
| 310 | - var end = new Date(str); | |
| 311 | - end = Date.parse(end) / 1000; | |
| 312 | - var now = ut.gettimestamp(); | |
| 313 | - //--- 判断是等级会员,且在有效期范围内 --- | |
| 314 | - if(user.card_field && now<end){ | |
| 315 | - var card_name=ob.name_map.get(user.card_field); | |
| 316 | - if(card_name.length>5) card_name=card_name.substring(0,5); | |
| 317 | - | |
| 318 | - var is_near_date=0; | |
| 319 | - if(end-now<60*60*30*24) is_near_date=1; //如果小于30天 | |
| 320 | - th.setData({card_field:user.card_field,card_name:card_name,card_list:ob.card_list,is_near_date:is_near_date}); | |
| 321 | - } | |
| 322 | - } | |
| 323 | - }, 500) | |
| 304 | + var ti = setInterval(function () { | |
| 305 | + var user = getApp().globalData.userInfo; | |
| 306 | + if (!user) return false; | |
| 307 | + clearInterval(ti); | |
| 308 | + | |
| 309 | + if(user.card_field ){ | |
| 310 | + var str = user['card_expiredate'].replace(/-/g, '/'); | |
| 311 | + var end = new Date(str); | |
| 312 | + end = Date.parse(end) / 1000; | |
| 313 | + var now = ut.gettimestamp(); | |
| 314 | + //--- 判断是等级会员,且在有效期范围内 --- | |
| 315 | + if(user.card_field && now<end){ | |
| 316 | + var card_name=ob.name_map.get(user.card_field); | |
| 317 | + if(card_name.length>5) card_name=card_name.substring(0,5); | |
| 318 | + | |
| 319 | + var is_near_date=0; | |
| 320 | + if(end-now<60*60*30*24) is_near_date=1; //如果小于30天 | |
| 321 | + th.setData({card_field:user.card_field,card_name:card_name,card_list:ob.card_list,is_near_date:is_near_date}); | |
| 322 | + } | |
| 323 | + } | |
| 324 | + }, 500) | |
| 324 | 325 | }) | 
| 325 | 326 | |
| 326 | 327 | } | 
| ... | ... | @@ -371,9 +372,7 @@ Page({ | 
| 371 | 372 | sto_sele_distr: e.distr_type | 
| 372 | 373 | }) | 
| 373 | 374 | } | 
| 374 | - | |
| 375 | - | |
| 376 | - | |
| 375 | + | |
| 377 | 376 | } | 
| 378 | 377 | } | 
| 379 | 378 | }) | 
| ... | ... | @@ -620,13 +619,16 @@ Page({ | 
| 620 | 619 | ee.setData({ | 
| 621 | 620 | data: t.data.data, | 
| 622 | 621 | sele_g: t.data.data, | 
| 622 | + userInfo:getApp().globalData.userInfo | |
| 623 | 623 | }); | 
| 624 | 624 | |
| 625 | - //获取门店 | |
| 626 | - ee.get_sto(); | |
| 625 | + | |
| 627 | 626 | //获取统一条形码,普通商品和优惠促销的商品 | 
| 628 | - if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5) | |
| 629 | - ee.get_sku(o.stoid, t.data.data.sku, gid); | |
| 627 | + if (ee.data.data.prom_type == 0 || ee.data.data.prom_type == 3 || ee.data.data.prom_type == 5){ | |
| 628 | + //获取门店 | |
| 629 | + ee.get_sto(); | |
| 630 | + ee.get_sku(o.stoid, t.data.data.sku, gid); | |
| 631 | + } | |
| 630 | 632 | else { | 
| 631 | 633 | var gg = "", | 
| 632 | 634 | item = t.data.data; | 
| ... | ... | @@ -693,11 +695,6 @@ Page({ | 
| 693 | 695 | }); | 
| 694 | 696 | this.data.enterAddressPage && (this.data.enterAddressPage = !1); | 
| 695 | 697 | |
| 696 | - | |
| 697 | - | |
| 698 | - | |
| 699 | - | |
| 700 | - | |
| 701 | 698 | }, | 
| 702 | 699 | enterAddress: function() { | 
| 703 | 700 | this.data.enterAddressPage = !0, wx.navigateTo({ | 
| ... | ... | @@ -810,6 +807,7 @@ Page({ | 
| 810 | 807 | addCart: function(t) { | 
| 811 | 808 | var th = this; | 
| 812 | 809 | var ind = t.currentTarget.dataset.openSpecModal_ind; | 
| 810 | + if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind; | |
| 813 | 811 | th.setData({ | 
| 814 | 812 | open_ind_store: ind | 
| 815 | 813 | }); | 
| ... | ... | @@ -836,9 +834,8 @@ Page({ | 
| 836 | 834 | var e = this, | 
| 837 | 835 | th = e, | 
| 838 | 836 | a = 0, | 
| 839 | - o = this.data.sele_g; | |
| 840 | - if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); | |
| 841 | - a = o.goods_id; | |
| 837 | + o = this.data.sele_g; | |
| 838 | + a = o.goods_id; | |
| 842 | 839 | |
| 843 | 840 | //----------添加到购物车时,要判断限购数量,-------- | 
| 844 | 841 | e.get_buy_num(o, function(ee) { | 
| ... | ... | @@ -864,7 +861,6 @@ Page({ | 
| 864 | 861 | } | 
| 865 | 862 | |
| 866 | 863 | if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th); | 
| 867 | - if (th.data.goodsInputNum > o.store_count) return s.my_warnning("超出商品库存", 0, th); | |
| 868 | 864 | if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) | 
| 869 | 865 | this.setData({ | 
| 870 | 866 | sto_sele_name: "" | 
| ... | ... | @@ -889,20 +885,76 @@ Page({ | 
| 889 | 885 | if (th.data.prom_type == 1) { | 
| 890 | 886 | newd.goods_price = th.data.prom_price; | 
| 891 | 887 | newd.member_goods_price = th.data.prom_price, | 
| 892 | - newd.prom_type = th.data.prom_type; | |
| 888 | + newd.prom_type = th.data.prom_type; | |
| 893 | 889 | newd.prom_id = th.data.prom_id; | 
| 894 | - } else if (th.data.prom_type == 3 || th.data.prom_type == 2 || th.data.prom_type == 4 || th.data.prom_type == 5) { | |
| 890 | + | |
| 891 | + if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); | |
| 892 | + if (o.store_count <e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); | |
| 893 | + | |
| 894 | + th.add_cart_next(e,t,a,o,newd); //加入购物车下一步 | |
| 895 | + | |
| 896 | + } else if ( th.data.prom_type == 0 || th.data.prom_type == 3 || th.data.prom_type == 2 || th.data.prom_type == 4 || th.data.prom_type == 5) { | |
| 895 | 897 | newd.prom_type = 0; | 
| 896 | 898 | newd.prom_id = 0; | 
| 897 | - } | |
| 898 | - | |
| 899 | + //---如果是线下门店销售的时候--- | |
| 900 | + if(th.data.sales_rules==2){ | |
| 901 | + var pick=th.get_pick_from_list(th.data.sto_sele_id) | |
| 902 | + //---通过接口获取门店的线下库存信息-- | |
| 903 | + getApp().request.get("/api/weshop/goods/getWareStorages",{ | |
| 904 | + data:{storageNos:pick.pickup_no,wareIds:encodeURIComponent(th.data.sele_g.erpwareid),storeId:os.stoid}, | |
| 905 | + success:function(res){ | |
| 906 | + if(res.data.code==0){ | |
| 907 | + if(res.data.data.pageData.length>0){ | |
| 908 | + var CanOutQty=res.data.data.pageData[0].CanOutQty; | |
| 909 | + if(CanOutQty<e.data.goodsInputNum){ | |
| 910 | + return s.my_warnning("库存不足!", 0, th); | |
| 911 | + } | |
| 912 | + //在调一次接口,读取商品的预出库的数量,lock | |
| 913 | + getApp().request.get("/api/weshop/order/ware/lock/page",{ | |
| 914 | + data:{store_id:os.stoid,wareId:th.data.sele_g.goods_id,storageId:pick.pickup_id}, | |
| 915 | + success:function(res_data){ | |
| 916 | + if(res_data.data.code==0 && res_data.data.data.total>0){ | |
| 917 | + var lock= res_data.data.data.pageData[0].outQty; | |
| 918 | + if(CanOutQty<=lock){ | |
| 919 | + return s.my_warnning("库存不足!", 0, th); | |
| 920 | + } | |
| 921 | + th.add_cart_next(e,t,a,o,newd,CanOutQty-lock); | |
| 922 | + }else{ | |
| 923 | + th.add_cart_next(e,t,a,o,newd,CanOutQty); | |
| 924 | + } | |
| 925 | + } | |
| 926 | + }) | |
| 927 | + }else{ | |
| 928 | + return s.my_warnning("库存不足!", 0, th); | |
| 929 | + } | |
| 930 | + | |
| 931 | + } | |
| 932 | + } | |
| 933 | + }) | |
| 934 | + }else{ | |
| 935 | + if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); | |
| 936 | + if (o.store_count <e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); | |
| 937 | + th.add_cart_next(e,t,a,o,newd); //加入购物车下一步 | |
| 938 | + } | |
| 939 | + } | |
| 940 | + }) | |
| 941 | + }, | |
| 942 | + | |
| 943 | + //---加入购物车的最后一步--- | |
| 944 | + add_cart_next(e,t,a,o,newd,CanOutQty){ | |
| 945 | + var th=this; | |
| 899 | 946 | //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ | 
| 900 | 947 | if(o.prom_type!=1 && o.prom_type!=6){ | 
| 901 | 948 | var conf=th.data.bconfig; | 
| 902 | 949 | if(conf.switch_list){ | 
| 903 | 950 | var s_list=JSON.parse(conf.switch_list); | 
| 904 | - //如果后台有开启等级价的功能 | |
| 905 | - if(parseInt(s_list.rank_switch)==2){ | |
| 951 | + var now=ut.gettimestamp(); | |
| 952 | + var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); | |
| 953 | + var end = new Date(str); | |
| 954 | + end = Date.parse(end) / 1000; | |
| 955 | + | |
| 956 | + //--如果后台有开启等级价的功能,而且会员的等级没有过期的情况下-- | |
| 957 | + if(parseInt(s_list.rank_switch)==2 && end>now){ | |
| 906 | 958 | var card_price=o[getApp().globalData.userInfo['card_field']]; | 
| 907 | 959 | //如果会员有等级价 | 
| 908 | 960 | if(getApp().globalData.userInfo['card_field']!=undefined && getApp().globalData.userInfo['card_field']!=null | 
| ... | ... | @@ -912,64 +964,76 @@ Page({ | 
| 912 | 964 | } | 
| 913 | 965 | } | 
| 914 | 966 | } | 
| 915 | - | |
| 916 | - | |
| 917 | - //if (this.data.data.goods.is_virtual) return this.buyVirtualGoods(d); | |
| 918 | - if ("add" == t.currentTarget.dataset.action) { | |
| 919 | - //----先看会员在购物车中是否加入了该商品----- | |
| 920 | - i.get("/api/weshop/cart/page", { | |
| 921 | - data: { | |
| 922 | - store_id: e.data.stoid, | |
| 923 | - user_id: oo.user_id, | |
| 924 | - goods_id: a, | |
| 925 | - pick_id: e.data.sto_sele_id, | |
| 926 | - }, | |
| 927 | - success: function(re) { | |
| 928 | - //-------如果购物车中有相关的数据--------- | |
| 929 | - if (re.data.data.total > 0) { | |
| 930 | - var item = re.data.data.pageData[0]; | |
| 931 | - var updata = { | |
| 932 | - id: item.id, | |
| 933 | - goods_num: e.data.goodsInputNum + item.goods_num, | |
| 934 | - goods_price: newd.goods_price, | |
| 935 | - store_id: th.data.stoid, | |
| 936 | - }; | |
| 937 | - | |
| 938 | - i.put("/api/weshop/cart/update", { | |
| 939 | - data: updata, | |
| 940 | - success: function(t) { | |
| 941 | - getApp().my_warnning('加入购物车成功', 1, th, 450); | |
| 942 | - var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | |
| 943 | - th.setData({ | |
| 944 | - cartGoodsNum: c_num | |
| 945 | - }); | |
| 946 | - th.closeSpecModal(); | |
| 947 | - } | |
| 948 | - }); | |
| 949 | - } else { | |
| 950 | - i.post("/api/weshop/cart/save", { | |
| 951 | - data: newd, | |
| 952 | - success: function(t) { | |
| 953 | - getApp().my_warnning('加入购物车成功', 1, th, 450); | |
| 954 | - var c_num = th.data.cartGoodsNum + e.data.goodsInputNum; | |
| 955 | - th.setData({ | |
| 956 | - cartGoodsNum: c_num | |
| 957 | - }); | |
| 958 | - th.closeSpecModal(); | |
| 959 | - } | |
| 960 | - }); | |
| 961 | - } | |
| 962 | - } | |
| 963 | - }); | |
| 964 | - } | |
| 965 | - //else "exchange" == t.currentTarget.dataset.action ? this.exchange(d) : this.buyNow(d); | |
| 966 | - else { | |
| 967 | - newd['pick_name'] = th.data.sto_sele_name; | |
| 968 | - newd['pick_dis'] = th.data.sto_sele_distr; | |
| 969 | - th.buyNow(newd); | |
| 970 | - } | |
| 971 | - }) | |
| 967 | + | |
| 968 | + //if (this.data.data.goods.is_virtual) return this.buyVirtualGoods(d); | |
| 969 | + if ("add" == t.currentTarget.dataset.action) { | |
| 970 | + //----先看会员在购物车中是否加入了该商品----- | |
| 971 | + i.get("/api/weshop/cart/page", { | |
| 972 | + data: { | |
| 973 | + store_id: e.data.stoid, | |
| 974 | + user_id: oo.user_id, | |
| 975 | + goods_id: a, | |
| 976 | + pick_id: e.data.sto_sele_id, | |
| 977 | + }, | |
| 978 | + success: function(re) { | |
| 979 | + //判断数量,要看下购物车中有没有该商品 | |
| 980 | + if(CanOutQty){ | |
| 981 | + if(th.data.cartGoodsNum + th.data.goodsInputNum>CanOutQty){ | |
| 982 | + return s.my_warnning("库存不足!", 0, th); | |
| 983 | + } | |
| 984 | + }else{ | |
| 985 | + if(th.data.cartGoodsNum + th.data.goodsInputNum>o.store_count){ | |
| 986 | + return s.my_warnning("库存不足!", 0, th); | |
| 987 | + } | |
| 988 | + } | |
| 989 | + //-------如果购物车中有相关的数据--------- | |
| 990 | + if (re.data.data.total > 0) { | |
| 991 | + var item = re.data.data.pageData[0]; | |
| 992 | + var updata = { | |
| 993 | + id: item.id, | |
| 994 | + goods_num: e.data.goodsInputNum + item.goods_num, | |
| 995 | + goods_price: newd.goods_price, | |
| 996 | + store_id: th.data.stoid, | |
| 997 | + }; | |
| 998 | + | |
| 999 | + i.put("/api/weshop/cart/update", { | |
| 1000 | + data: updata, | |
| 1001 | + success: function(t) { | |
| 1002 | + getApp().my_warnning('加入购物车成功', 1, th, 450); | |
| 1003 | + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | |
| 1004 | + th.setData({ | |
| 1005 | + cartGoodsNum: c_num | |
| 1006 | + }); | |
| 1007 | + th.closeSpecModal(); | |
| 1008 | + } | |
| 1009 | + }); | |
| 1010 | + } else { | |
| 1011 | + i.post("/api/weshop/cart/save", { | |
| 1012 | + data: newd, | |
| 1013 | + success: function(t) { | |
| 1014 | + getApp().my_warnning('加入购物车成功', 1, th, 450); | |
| 1015 | + var c_num = th.data.cartGoodsNum + e.data.goodsInputNum; | |
| 1016 | + th.setData({ | |
| 1017 | + cartGoodsNum: c_num | |
| 1018 | + }); | |
| 1019 | + th.closeSpecModal(); | |
| 1020 | + } | |
| 1021 | + }); | |
| 1022 | + } | |
| 1023 | + } | |
| 1024 | + }); | |
| 1025 | + } | |
| 1026 | + //else "exchange" == t.currentTarget.dataset.action ? this.exchange(d) : this.buyNow(d); | |
| 1027 | + else { | |
| 1028 | + newd['pick_name'] = th.data.sto_sele_name; | |
| 1029 | + newd['pick_dis'] = th.data.sto_sele_distr; | |
| 1030 | + th.buyNow(newd); | |
| 1031 | + } | |
| 972 | 1032 | }, | 
| 1033 | + | |
| 1034 | + | |
| 1035 | + | |
| 1036 | + | |
| 973 | 1037 | //----------购买虚拟商品------ | 
| 974 | 1038 | buyVirtualGoods: function(e) { | 
| 975 | 1039 | Object.assign(e, { | 
| ... | ... | @@ -1273,7 +1337,7 @@ Page({ | 
| 1273 | 1337 | |
| 1274 | 1338 | //----------装载同一条形码的商品---------- | 
| 1275 | 1339 | async get_sku(stoid, sku, g_id, is_normal, func) { | 
| 1276 | - var tt = this; | |
| 1340 | + var tt = this,arrdata=null; | |
| 1277 | 1341 | await getApp().request.promiseGet("/api/weshop/goods/page", { | 
| 1278 | 1342 | data: { | 
| 1279 | 1343 | store_id: o.stoid, | 
| ... | ... | @@ -1282,17 +1346,38 @@ Page({ | 
| 1282 | 1346 | is_on_sale: 1 | 
| 1283 | 1347 | } | 
| 1284 | 1348 | }).then(res => { | 
| 1285 | - var e = res; | |
| 1286 | - var arrsku = new Array(); | |
| 1287 | - var gitem = null; | |
| 1288 | - if (e.data.code == 0) { | |
| 1289 | - var arrdata = e.data.data.pageData, | |
| 1290 | - gb = 1, | |
| 1291 | - gg = ""; | |
| 1292 | - for (var i = 0; i < arrdata.length; i++) { | |
| 1293 | - var item = arrdata[i], | |
| 1294 | - gg = ""; | |
| 1295 | - | |
| 1349 | + var e = res; | |
| 1350 | + if (e.data.code == 0) arrdata = e.data.data.pageData; | |
| 1351 | + }) | |
| 1352 | + if(!arrdata) return fasle; | |
| 1353 | + | |
| 1354 | + var arrsku = new Array(); | |
| 1355 | + var gitem = null; | |
| 1356 | + var gb = 1,gg = ""; | |
| 1357 | + for (var i = 0; i < arrdata.length; i++) { | |
| 1358 | + var goodsinfo=arrdata[i],prom=null; | |
| 1359 | + if (goodsinfo.goods_id != g_id) { | |
| 1360 | + if(goodsinfo.prom_type==1){ | |
| 1361 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1362 | + }).then(res=>{ | |
| 1363 | + if(res.data.code==0) prom=res.data.data; | |
| 1364 | + }) | |
| 1365 | + } | |
| 1366 | + if(goodsinfo.prom_type==6){ | |
| 1367 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1368 | + }).then(res=>{ | |
| 1369 | + if(res.data.code==0) prom=res.data.data; | |
| 1370 | + }) | |
| 1371 | + } | |
| 1372 | + } | |
| 1373 | + //---如果有活动,不算在一起--- | |
| 1374 | + if(prom){ | |
| 1375 | + if(prom.is_end==0 && prom.end_time>now && prom.start_time<now){ | |
| 1376 | + continue; | |
| 1377 | + } | |
| 1378 | + } | |
| 1379 | + | |
| 1380 | + var item = arrdata[i],gg = ""; | |
| 1296 | 1381 | if(item.goods_spec=="null" || item.goods_spec==null) item.goods_spec=""; | 
| 1297 | 1382 | if(item.goods_color=="null" || item.goods_color==null) item.goods_color=""; | 
| 1298 | 1383 | |
| ... | ... | @@ -1324,9 +1409,7 @@ Page({ | 
| 1324 | 1409 | sku_g: arrsku, | 
| 1325 | 1410 | sele_g: gitem | 
| 1326 | 1411 | }); | 
| 1327 | - } | |
| 1328 | - } | |
| 1329 | - }) | |
| 1412 | + } | |
| 1330 | 1413 | }, | 
| 1331 | 1414 | |
| 1332 | 1415 | //-----------选择属性的按钮事件---------- | 
| ... | ... | @@ -1343,8 +1426,58 @@ Page({ | 
| 1343 | 1426 | if (item) this.setData({ | 
| 1344 | 1427 | sele_g: item, | 
| 1345 | 1428 | gid: gid | 
| 1346 | - }); | |
| 1347 | - }, | |
| 1429 | + }); | |
| 1430 | + this.sele_spec_chech_activity(); | |
| 1431 | + }, | |
| 1432 | + | |
| 1433 | + //选择了不同的规格的时候要判断是不是有活动正在进行中 | |
| 1434 | + async sele_spec_chech_activity(){ | |
| 1435 | + //---如果是活动的时候--- | |
| 1436 | + var prom=null,goodsinfo=this.data.sele_g,th=this; | |
| 1437 | + if(goodsinfo.prom_type==1){ | |
| 1438 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1439 | + }).then(res=>{ | |
| 1440 | + if(res.data.code==0){ | |
| 1441 | + prom=res.data.data; | |
| 1442 | + } | |
| 1443 | + }) | |
| 1444 | + } | |
| 1445 | + if(goodsinfo.prom_type==6){ | |
| 1446 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1447 | + }).then(res=>{ | |
| 1448 | + if(res.data.code==0){ | |
| 1449 | + prom=res.data.data; | |
| 1450 | + } | |
| 1451 | + }) | |
| 1452 | + } | |
| 1453 | + //----------如果有活动,并且在进行中,就不计算线下库存--------------- | |
| 1454 | + var now=ut.gettimestamp(); | |
| 1455 | + if(prom){ | |
| 1456 | + if(prom.is_end==0 && prom.end_time>now && prom.start_time<now){ | |
| 1457 | + th.setData({ | |
| 1458 | + prom_type:goodsinfo.prom_type, | |
| 1459 | + prom_price:prom.price, | |
| 1460 | + prom_buy_limit:prom.buy_limit, | |
| 1461 | + prom_end_time:prom.end_time, | |
| 1462 | + prom_start_time:prom.start_time, | |
| 1463 | + prom_st:1, | |
| 1464 | + }) | |
| 1465 | + return false; | |
| 1466 | + } | |
| 1467 | + } | |
| 1468 | + //---设置普通商品--- | |
| 1469 | + th.setData({ | |
| 1470 | + prom_type:0, | |
| 1471 | + prom_price:null, | |
| 1472 | + prom_buy_limit:null, | |
| 1473 | + prom_end_time:null, | |
| 1474 | + prom_start_time:null, | |
| 1475 | + prom_st:null, | |
| 1476 | + }) | |
| 1477 | + | |
| 1478 | + }, | |
| 1479 | + | |
| 1480 | + | |
| 1348 | 1481 | //---------拿出门店分类和门店------------ | 
| 1349 | 1482 | get_sto(e) { | 
| 1350 | 1483 | var th = this; | 
| ... | ... | @@ -1358,13 +1491,13 @@ Page({ | 
| 1358 | 1491 | store_id: o.stoid, | 
| 1359 | 1492 | distr_type: g_distr_type, | 
| 1360 | 1493 | isstop: 0, | 
| 1361 | - pageSize: 300 | |
| 1494 | + pageSize: 2000 | |
| 1362 | 1495 | } | 
| 1363 | 1496 | } else { | 
| 1364 | 1497 | dd = { | 
| 1365 | 1498 | store_id: o.stoid, | 
| 1366 | 1499 | isstop: 0, | 
| 1367 | - pageSize: 300 | |
| 1500 | + pageSize: 2000 | |
| 1368 | 1501 | } | 
| 1369 | 1502 | } | 
| 1370 | 1503 | //如果有距离的话 | 
| ... | ... | @@ -1379,9 +1512,8 @@ Page({ | 
| 1379 | 1512 | }).then(res => { | 
| 1380 | 1513 | var e = res; | 
| 1381 | 1514 | if (e.data.code == 0) { | 
| 1382 | - | |
| 1383 | 1515 | //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 | 
| 1384 | - if(dd.lat && !th.data.def_pick_store){ | |
| 1516 | + if(dd.lat && !th.data.def_pick_store && th.data.bconfig.is_sort_storage){ | |
| 1385 | 1517 | th.setData({ | 
| 1386 | 1518 | def_pick_store:e.data.data.pageData[0], | 
| 1387 | 1519 | sto_sele_name: e.data.data.pageData[0].pickup_name, | 
| ... | ... | @@ -1401,152 +1533,246 @@ Page({ | 
| 1401 | 1533 | e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 | 
| 1402 | 1534 | } | 
| 1403 | 1535 | |
| 1404 | - /*---- | |
| 1405 | - //--获取线下库存-- | |
| 1406 | - if(th.data.sales_rules){ | |
| 1407 | - | |
| 1408 | - }---*/ | |
| 1409 | 1536 | |
| 1410 | - | |
| 1411 | - //单总量超出5个的时候 | |
| 1412 | - if (e.data.data.total > 5) { | |
| 1413 | - i.get("/api/weshop/storagecategory/page", { | |
| 1414 | - data: { | |
| 1415 | - store_id: o.stoid, | |
| 1416 | - is_show: 1, | |
| 1417 | - pageSize: 300 | |
| 1418 | - }, | |
| 1419 | - success: function(ee) { | |
| 1420 | - if (ee.data.code == 0) { | |
| 1421 | - if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) { | |
| 1422 | - var def_arr = new Array(); | |
| 1423 | - var ishas = 0; | |
| 1424 | - //-- 开始就看5个门店 -- | |
| 1425 | - for (var k = 0; k < 5; k++) { | |
| 1426 | - if (k == e.data.data.pageData.length) break; | |
| 1427 | - def_arr.push(e.data.data.pageData[k]); | |
| 1428 | - } | |
| 1429 | - | |
| 1430 | - th.setData({ | |
| 1431 | - def_pickpu_list: def_arr, | |
| 1432 | - pickpu_list: ee.data.data.pageData | |
| 1433 | - }); | |
| 1434 | - var sto_cate = ee.data.data.pageData; | |
| 1435 | - var sto_arr = e.data.data.pageData; | |
| 1436 | - var newarr = new Array(); | |
| 1437 | - var qita = new Array(); | |
| 1438 | - | |
| 1439 | - //----要进行门店分组-------- | |
| 1440 | - for (var i = 0; i < sto_arr.length; i++) { | |
| 1441 | - //找一下这个门店有没有在分类数组内 | |
| 1442 | - var find2 = 0, | |
| 1443 | - find2name = ""; | |
| 1444 | - for (var m = 0; m < sto_cate.length; m++) { | |
| 1445 | - if (sto_arr[i].category_id == sto_cate[m].cat_id) { | |
| 1446 | - find2 = sto_cate[m].cat_id; | |
| 1447 | - find2name = sto_cate[m].cat_name; | |
| 1448 | - break; | |
| 1449 | - } | |
| 1450 | - } | |
| 1451 | - | |
| 1452 | - if (newarr.length > 0) { | |
| 1453 | - var find = 0; | |
| 1454 | - //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
| 1455 | - if (find2 != 0) { | |
| 1456 | - for (var ii = 0; ii < newarr.length; ii++) { | |
| 1457 | - if (sto_arr[i].category_id == newarr[ii].cat_id) { | |
| 1458 | - newarr[ii].s_arr.push(sto_arr[i]); | |
| 1459 | - find = 1; | |
| 1460 | - break; | |
| 1461 | - } | |
| 1462 | - } | |
| 1463 | - if (find == 0) { | |
| 1464 | - var arr0 = new Array(); | |
| 1465 | - arr0.push(sto_arr[i]); | |
| 1466 | - var item = { | |
| 1467 | - cat_id: find2, | |
| 1468 | - name: find2name, | |
| 1469 | - s_arr: arr0 | |
| 1470 | - }; | |
| 1471 | - newarr.push(item); | |
| 1472 | - } | |
| 1473 | - } else { | |
| 1474 | - qita.push(sto_arr[i]); | |
| 1475 | - } | |
| 1476 | - } else { | |
| 1477 | - //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
| 1478 | - if (find2 != 0) { | |
| 1479 | - var arr0 = new Array(); | |
| 1480 | - arr0.push(sto_arr[i]); | |
| 1481 | - var item = { | |
| 1482 | - cat_id: find2, | |
| 1483 | - name: find2name, | |
| 1484 | - s_arr: arr0 | |
| 1485 | - }; | |
| 1486 | - newarr.push(item); | |
| 1487 | - } else { | |
| 1488 | - qita.push(sto_arr[i]); | |
| 1489 | - } | |
| 1490 | - } | |
| 1491 | - } | |
| 1492 | - | |
| 1493 | - //----安排其他的分类----- | |
| 1494 | - if (qita.length > 0) { | |
| 1495 | - var item = { | |
| 1496 | - cat_id: -1, | |
| 1497 | - name: "其他", | |
| 1498 | - s_arr: qita | |
| 1499 | - }; | |
| 1500 | - newarr.push(item); | |
| 1501 | - } | |
| 1502 | - th.setData({ | |
| 1503 | - is_show_sto_cat: 1, | |
| 1504 | - all_sto: newarr | |
| 1505 | - }); | |
| 1506 | - | |
| 1507 | - } else { | |
| 1508 | - th.setData({ | |
| 1509 | - is_show_sto_cat: -1, | |
| 1510 | - only_pk: e.data.data.pageData | |
| 1511 | - }); | |
| 1512 | - //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ | |
| 1513 | - if (!th.data.def_pick_store) { | |
| 1514 | - th.setData({def_pick_store:e.data.data.pageData[0]}) | |
| 1515 | - } | |
| 1516 | - } | |
| 1517 | - } else { | |
| 1518 | - th.setData({ | |
| 1519 | - is_show_sto_cat: -1, | |
| 1520 | - only_pk: e.data.data.pageData | |
| 1521 | - }); | |
| 1522 | - //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ | |
| 1523 | - if (!th.data.def_pick_store) { | |
| 1524 | - th.setData({def_pick_store:e.data.data.pageData[0]}) | |
| 1525 | - } | |
| 1526 | - | |
| 1527 | - } | |
| 1528 | - } | |
| 1529 | - }); | |
| 1530 | - } else { | |
| 1531 | - th.setData({ | |
| 1532 | - is_show_sto_cat: 0, | |
| 1533 | - only_pk: e.data.data.pageData | |
| 1534 | - }); | |
| 1535 | - //-----如果没有默认门店,要取第一个门店作为默认店------ | |
| 1536 | - if (!th.data.def_pick_store) { | |
| 1537 | - th.setData({ | |
| 1538 | - def_pick_store:e.data.data.pageData[0], | |
| 1539 | - sto_sele_name: e.data.data.pageData[0].pickup_name, | |
| 1540 | - sto_sele_id: e.data.data.pageData[0].pickup_id, | |
| 1541 | - sto_sele_distr: e.data.data.pageData[0].distr_type | |
| 1542 | - }) | |
| 1543 | - } | |
| 1544 | - } | |
| 1545 | - } | |
| 1537 | + th.setData({all_pick_list:e.data.data.pageData}); | |
| 1538 | + | |
| 1539 | + //--获取线下库存,而且不是新的门店规则,同时不能是活动-- | |
| 1540 | + if(th.data.sales_rules==2 && !th.data.is_newsales_rules && th.data.prom_type!=1 && th.data.prom_type!=6){ | |
| 1541 | + th.deal_pickup_dline(e); | |
| 1542 | + }else{ | |
| 1543 | + th.deal_pickup(e); //--普通门店排版-- | |
| 1544 | + } | |
| 1545 | + } | |
| 1546 | 1546 | }) | 
| 1547 | 1547 | }, 200) | 
| 1548 | 1548 | |
| 1549 | + }, | |
| 1550 | + | |
| 1551 | + //------------处理门店--------------- | |
| 1552 | + deal_pickup(e){ | |
| 1553 | + var th=this; | |
| 1554 | + //单总量超出5个的时候 | |
| 1555 | + if (e.data.data.total > 5) { | |
| 1556 | + i.get("/api/weshop/storagecategory/page", { | |
| 1557 | + data: { | |
| 1558 | + store_id: o.stoid, | |
| 1559 | + is_show: 1, | |
| 1560 | + pageSize: 1000 | |
| 1561 | + }, | |
| 1562 | + success: function(ee) { | |
| 1563 | + if (ee.data.code == 0) { | |
| 1564 | + if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) { | |
| 1565 | + var def_arr = new Array(); | |
| 1566 | + var ishas = 0; | |
| 1567 | + //-- 开始就看5个门店 -- | |
| 1568 | + for (var k = 0; k < 5; k++) { | |
| 1569 | + if (k == e.data.data.pageData.length) break; | |
| 1570 | + def_arr.push(e.data.data.pageData[k]); | |
| 1571 | + } | |
| 1572 | + | |
| 1573 | + th.setData({ | |
| 1574 | + def_pickpu_list: def_arr, | |
| 1575 | + pickpu_list: ee.data.data.pageData | |
| 1576 | + }); | |
| 1577 | + var sto_cate = ee.data.data.pageData; | |
| 1578 | + var sto_arr = e.data.data.pageData; | |
| 1579 | + var newarr = new Array(); | |
| 1580 | + var qita = new Array(); | |
| 1581 | + | |
| 1582 | + //----要进行门店分组-------- | |
| 1583 | + for (var i = 0; i < sto_arr.length; i++) { | |
| 1584 | + //找一下这个门店有没有在分类数组内 | |
| 1585 | + var find2 = 0, | |
| 1586 | + find2name = ""; | |
| 1587 | + for (var m = 0; m < sto_cate.length; m++) { | |
| 1588 | + if (sto_arr[i].category_id == sto_cate[m].cat_id) { | |
| 1589 | + find2 = sto_cate[m].cat_id; | |
| 1590 | + find2name = sto_cate[m].cat_name; | |
| 1591 | + break; | |
| 1592 | + } | |
| 1593 | + } | |
| 1594 | + | |
| 1595 | + if (newarr.length > 0) { | |
| 1596 | + var find = 0; | |
| 1597 | + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
| 1598 | + if (find2 != 0) { | |
| 1599 | + for (var ii = 0; ii < newarr.length; ii++) { | |
| 1600 | + if (sto_arr[i].category_id == newarr[ii].cat_id) { | |
| 1601 | + newarr[ii].s_arr.push(sto_arr[i]); | |
| 1602 | + find = 1; | |
| 1603 | + break; | |
| 1604 | + } | |
| 1605 | + } | |
| 1606 | + if (find == 0) { | |
| 1607 | + var arr0 = new Array(); | |
| 1608 | + arr0.push(sto_arr[i]); | |
| 1609 | + var item = { | |
| 1610 | + cat_id: find2, | |
| 1611 | + name: find2name, | |
| 1612 | + s_arr: arr0 | |
| 1613 | + }; | |
| 1614 | + newarr.push(item); | |
| 1615 | + } | |
| 1616 | + } else { | |
| 1617 | + qita.push(sto_arr[i]); | |
| 1618 | + } | |
| 1619 | + } else { | |
| 1620 | + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
| 1621 | + if (find2 != 0) { | |
| 1622 | + var arr0 = new Array(); | |
| 1623 | + arr0.push(sto_arr[i]); | |
| 1624 | + var item = { | |
| 1625 | + cat_id: find2, | |
| 1626 | + name: find2name, | |
| 1627 | + s_arr: arr0 | |
| 1628 | + }; | |
| 1629 | + newarr.push(item); | |
| 1630 | + } else { | |
| 1631 | + qita.push(sto_arr[i]); | |
| 1632 | + } | |
| 1633 | + } | |
| 1634 | + } | |
| 1635 | + | |
| 1636 | + //----安排其他的分类----- | |
| 1637 | + if (qita.length > 0) { | |
| 1638 | + var item = { | |
| 1639 | + cat_id: -1, | |
| 1640 | + name: "其他", | |
| 1641 | + s_arr: qita | |
| 1642 | + }; | |
| 1643 | + newarr.push(item); | |
| 1644 | + } | |
| 1645 | + th.setData({ | |
| 1646 | + is_show_sto_cat: 1, | |
| 1647 | + all_sto: newarr | |
| 1648 | + }); | |
| 1649 | + | |
| 1650 | + } else { | |
| 1651 | + th.setData({ | |
| 1652 | + is_show_sto_cat: -1, | |
| 1653 | + only_pk: e.data.data.pageData | |
| 1654 | + }); | |
| 1655 | + //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ | |
| 1656 | + if (!th.data.def_pick_store) { | |
| 1657 | + th.setData({def_pick_store:e.data.data.pageData[0]}) | |
| 1658 | + } | |
| 1659 | + } | |
| 1660 | + } else { | |
| 1661 | + th.setData({ | |
| 1662 | + is_show_sto_cat: -1, | |
| 1663 | + only_pk: e.data.data.pageData | |
| 1664 | + }); | |
| 1665 | + //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ | |
| 1666 | + if (!th.data.def_pick_store) { | |
| 1667 | + th.setData({def_pick_store:e.data.data.pageData[0]}) | |
| 1668 | + } | |
| 1669 | + | |
| 1670 | + } | |
| 1671 | + } | |
| 1672 | + }); | |
| 1673 | + } else { | |
| 1674 | + th.setData({ | |
| 1675 | + is_show_sto_cat: 0, | |
| 1676 | + only_pk: e.data.data.pageData | |
| 1677 | + }); | |
| 1678 | + //-----如果没有默认门店,要取第一个门店作为默认店------ | |
| 1679 | + if (!th.data.def_pick_store && th.data.bconfig.is_sort_storage) { | |
| 1680 | + th.setData({ | |
| 1681 | + def_pick_store:e.data.data.pageData[0], | |
| 1682 | + sto_sele_name: e.data.data.pageData[0].pickup_name, | |
| 1683 | + sto_sele_id: e.data.data.pageData[0].pickup_id, | |
| 1684 | + sto_sele_distr: e.data.data.pageData[0].distr_type | |
| 1685 | + }) | |
| 1686 | + } | |
| 1687 | + } | |
| 1688 | + | |
| 1689 | + }, | |
| 1690 | + //------------处理线下门店库存-------- | |
| 1691 | + async deal_pickup_dline(e){ | |
| 1692 | + var pkno=[],th=this; | |
| 1693 | + if(this.data.def_pick_store){ | |
| 1694 | + pkno.push(this.data.def_pick_store.pickup_no); | |
| 1695 | + } | |
| 1696 | + for(var i in e.data.data.pageData){ | |
| 1697 | + var item=e.data.data.pageData[i]; | |
| 1698 | + pkno.push(item.pickup_no); | |
| 1699 | + } | |
| 1700 | + var pkno_str=pkno.join(","); | |
| 1701 | + var o_plist=e.data.data.pageData; | |
| 1702 | + var new_list=[]; | |
| 1703 | + var is_find_def_store=0; | |
| 1704 | + | |
| 1705 | + var lock=[]; | |
| 1706 | + //先读取门店的lock | |
| 1707 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 1708 | + data:{store_id:os.stoid,wareId:th.data.data.goods_id} | |
| 1709 | + }).then(res=>{ | |
| 1710 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 1711 | + lock=res.data.data.pageData | |
| 1712 | + } | |
| 1713 | + }) | |
| 1714 | + | |
| 1715 | + //---通过接口获取门店的线下库存信息-- | |
| 1716 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 1717 | + data:{storageNos:pkno_str,wareIds:encodeURIComponent(th.data.data.erpwareid),storeId:os.stoid} | |
| 1718 | + }).then(res=>{ | |
| 1719 | + if(res.data.code==0){ | |
| 1720 | + if(res.data.data.pageData){ | |
| 1721 | + var plist=res.data.data.pageData; | |
| 1722 | + //以原来的数组为外循环,保证距离的顺序 | |
| 1723 | + for(var kk in o_plist){ | |
| 1724 | + for(var ii in plist){ | |
| 1725 | + //线下的门店小心 | |
| 1726 | + var n_item=plist[ii]; | |
| 1727 | + if(n_item.StorageNo==o_plist[kk].pickup_no){ | |
| 1728 | + | |
| 1729 | + //拿到锁库的数量 | |
| 1730 | + var lock_num=th.find_lock_num(o_plist[kk].pickup_id,lock); | |
| 1731 | + //可出库数大于预出库库存的数量,可以判断为有库存 | |
| 1732 | + if(n_item.CanOutQty>lock_num){ | |
| 1733 | + o_plist[kk].CanOutQty=n_item.CanOutQty-lock_num | |
| 1734 | + new_list.push(o_plist[kk]); | |
| 1735 | + //如果找到默认门店 | |
| 1736 | + if(th.data.def_pick_store && n_item.StorageNo==th.data.def_pick_store.pickup_no){ | |
| 1737 | + th.data.def_pick_store.CanOutQty=n_item.CanOutQty; | |
| 1738 | + is_find_def_store=1; | |
| 1739 | + } | |
| 1740 | + } | |
| 1741 | + } | |
| 1742 | + } | |
| 1743 | + } | |
| 1744 | + | |
| 1745 | + //数据组装下 | |
| 1746 | + var em={};em.data={};em.data.data={}; | |
| 1747 | + em.data.data.total=new_list.length; | |
| 1748 | + em.data.data.pageData=new_list; | |
| 1749 | + | |
| 1750 | + //---把数组组装进去--- | |
| 1751 | + th.deal_pickup(em); | |
| 1752 | + if(th.data.def_pick_store && !is_find_def_store){ | |
| 1753 | + th.setData({def_pick_store:null}); | |
| 1754 | + } | |
| 1755 | + | |
| 1756 | + }else{ | |
| 1757 | + th.setData({def_pick_store:null,all_sto:null,only_pk:null}) | |
| 1758 | + } | |
| 1759 | + }else{ | |
| 1760 | + th.setData({def_pick_store:null,all_sto:null,only_pk:null}) | |
| 1761 | + } | |
| 1762 | + }) | |
| 1763 | + | |
| 1764 | + }, | |
| 1549 | 1765 | |
| 1766 | + find_lock_num(pick_id,lock){ | |
| 1767 | + var lock_num=0; | |
| 1768 | + if(!lock) return 0; | |
| 1769 | + if(lock.length<0) return 0; | |
| 1770 | + for(var i in lock){ | |
| 1771 | + if(pick_id==lock[i].pickupId){ | |
| 1772 | + lock_num=lock[i].outQty; | |
| 1773 | + } | |
| 1774 | + } | |
| 1775 | + return lock_num; | |
| 1550 | 1776 | }, | 
| 1551 | 1777 | |
| 1552 | 1778 | //----------取货门店被点击的效果------ | 
| ... | ... | @@ -1707,6 +1933,7 @@ Page({ | 
| 1707 | 1933 | isshow: 1, | 
| 1708 | 1934 | }); | 
| 1709 | 1935 | ee.get_sku(os.stoid, ee.data.data.sku, gid); | 
| 1936 | + ee.get_sto(); | |
| 1710 | 1937 | return false; | 
| 1711 | 1938 | } | 
| 1712 | 1939 | //----已经过期----- | 
| ... | ... | @@ -1727,6 +1954,7 @@ Page({ | 
| 1727 | 1954 | isshow: 1, | 
| 1728 | 1955 | }); | 
| 1729 | 1956 | ee.get_sku(os.stoid, ee.data.data.sku, gid); | 
| 1957 | + ee.get_sto(); | |
| 1730 | 1958 | return false; | 
| 1731 | 1959 | } | 
| 1732 | 1960 | |
| ... | ... | @@ -1744,6 +1972,8 @@ Page({ | 
| 1744 | 1972 | prom_start_time: prom_start_time, | 
| 1745 | 1973 | isshow: 1, | 
| 1746 | 1974 | }); | 
| 1975 | + | |
| 1976 | + ee.get_sto(); | |
| 1747 | 1977 | |
| 1748 | 1978 | |
| 1749 | 1979 | var newTime = ut.gettimestamp(); | 
| ... | ... | @@ -1798,6 +2028,7 @@ Page({ | 
| 1798 | 2028 | isshow: 1, | 
| 1799 | 2029 | }); | 
| 1800 | 2030 | ee.get_sku(os.stoid, ee.data.data.sku, gid); | 
| 2031 | + ee.get_sto(); | |
| 1801 | 2032 | return false; | 
| 1802 | 2033 | } | 
| 1803 | 2034 | //----已经结束----- | 
| ... | ... | @@ -1817,6 +2048,7 @@ Page({ | 
| 1817 | 2048 | isshow: 1, | 
| 1818 | 2049 | }); | 
| 1819 | 2050 | ee.get_sku(os.stoid, ee.data.data.sku, gid); | 
| 2051 | + ee.get_sto(); | |
| 1820 | 2052 | return false; | 
| 1821 | 2053 | } | 
| 1822 | 2054 | |
| ... | ... | @@ -1827,6 +2059,7 @@ Page({ | 
| 1827 | 2059 | isshow: 1, | 
| 1828 | 2060 | }); | 
| 1829 | 2061 | ee.get_sku(os.stoid, ee.data.data.sku, gid); | 
| 2062 | + ee.get_sto(); | |
| 1830 | 2063 | return false; | 
| 1831 | 2064 | } | 
| 1832 | 2065 | |
| ... | ... | @@ -1908,6 +2141,8 @@ Page({ | 
| 1908 | 2141 | prom_start_time: prom_start_time, | 
| 1909 | 2142 | isshow: 1, | 
| 1910 | 2143 | }); | 
| 2144 | + | |
| 2145 | + ee.get_sto(); | |
| 1911 | 2146 | |
| 1912 | 2147 | var newTime = now; | 
| 1913 | 2148 | var endTime2 = t.data.data.end_time; | 
| ... | ... | @@ -3193,16 +3428,70 @@ Page({ | 
| 3193 | 3428 | sec_pick_index: 0 | 
| 3194 | 3429 | }); | 
| 3195 | 3430 | }, | 
| 3196 | - | |
| 3197 | - | |
| 3198 | - | |
| 3199 | 3431 | choose_for_store_fir: function(e) { | 
| 3200 | 3432 | var index_c = e.currentTarget.dataset.ind; | 
| 3201 | - | |
| 3202 | - this.setData({ | |
| 3203 | - fir_pick_index: index_c | |
| 3204 | - }) | |
| 3433 | + var th=this; | |
| 3434 | + this.check_the_pick(index_c,function(){ | |
| 3435 | + th.setData({ | |
| 3436 | + fir_pick_index: index_c | |
| 3437 | + }) | |
| 3438 | + }) | |
| 3439 | + | |
| 3440 | + }, | |
| 3441 | + | |
| 3442 | + //如果开启线下库存,已经急速库存才会使用 | |
| 3443 | + async check_the_pick(index,func){ | |
| 3444 | + var th=this; | |
| 3445 | + var goodsinfo=th.data.sele_g; | |
| 3446 | + var erpwareid=goodsinfo.erpwareid; | |
| 3447 | + var plist=null; | |
| 3448 | + | |
| 3449 | + //---如果是活动的时候--- | |
| 3450 | + if(th.data.prom_type==1 || th.data.prom_type==6){ | |
| 3451 | + func(); return false; | |
| 3452 | + } | |
| 3453 | + | |
| 3454 | + if(this.data.sales_rules!=2 && this.data.is_newsales_rules!=1){ | |
| 3455 | + func(); | |
| 3456 | + }else{ | |
| 3457 | + var item=null; | |
| 3458 | + if (th.data.choice_sort_store == 0) { | |
| 3459 | + if (th.data.is_show_sto_cat == 1) { | |
| 3460 | + item = th.data.def_pickpu_list[index]; | |
| 3461 | + } else { | |
| 3462 | + item = th.data.only_pk[index]; //当没有门店分类的时候 | |
| 3463 | + } | |
| 3464 | + } else { | |
| 3465 | + item = th.data.sec_sto.s_arr[index]; | |
| 3466 | + } | |
| 3467 | + | |
| 3468 | + //先读取门店的lock | |
| 3469 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 3470 | + data:{store_id:os.stoid,wareId:t.goods_id,storageId:goodsinfo.pick_id} | |
| 3471 | + }).then(res=>{ | |
| 3472 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 3473 | + lock=res.data.data.pageData[0].outQty; | |
| 3474 | + } | |
| 3475 | + }) | |
| 3476 | + | |
| 3477 | + //读取线下的门店库存 | |
| 3478 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 3479 | + data:{storageNos:item.pickup_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} | |
| 3480 | + }).then(res=>{ | |
| 3481 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 3482 | + plist=res.data.data.pageData[0]; | |
| 3483 | + } | |
| 3484 | + }) | |
| 3485 | + | |
| 3486 | + if(plist && plist.CanOutQty-lock>0){ | |
| 3487 | + func() | |
| 3488 | + return false; | |
| 3489 | + } | |
| 3490 | + getApp().my_warnning(item.pickup_name+"库存不足!", 0, th); | |
| 3491 | + | |
| 3492 | + } | |
| 3205 | 3493 | }, | 
| 3494 | + | |
| 3206 | 3495 | |
| 3207 | 3496 | //确定def_pick为选择的门店 | 
| 3208 | 3497 | sure_pick: function(e) { | 
| ... | ... | @@ -3264,11 +3553,13 @@ Page({ | 
| 3264 | 3553 | //---点击二级之后的选择--- | 
| 3265 | 3554 | choose_for_store: function(e) { | 
| 3266 | 3555 | var index_c = e.currentTarget.dataset.ind; | 
| 3267 | - | |
| 3268 | - this.setData({ | |
| 3269 | - sec_pick_index: index_c, | |
| 3270 | - fir_pick_index: index_c | |
| 3271 | - }) | |
| 3556 | + var th=this; | |
| 3557 | + th.check_the_pick(index_c,function(){ | |
| 3558 | + th.setData({ | |
| 3559 | + sec_pick_index: index_c, | |
| 3560 | + fir_pick_index: index_c | |
| 3561 | + }) | |
| 3562 | + }) | |
| 3272 | 3563 | }, | 
| 3273 | 3564 | //把选择的门店设置成默认的门店def_pick | 
| 3274 | 3565 | set_def_pick: function(e) { | 
| ... | ... | @@ -3453,7 +3744,19 @@ Page({ | 
| 3453 | 3744 | }, | 
| 3454 | 3745 | go_card_info:function(){ | 
| 3455 | 3746 | getApp().goto("/pages/user/cardinfo/cardinfo"); | 
| 3747 | + }, | |
| 3748 | + //-- 根据ID拿出门店 -- | |
| 3749 | + get_pick_from_list(pid){ | |
| 3750 | + var all_pick_list=this.data.all_pick_list; | |
| 3751 | + for(var i in all_pick_list){ | |
| 3752 | + var item=all_pick_list[i]; | |
| 3753 | + if(item.pickup_id==pid){ | |
| 3754 | + return item; | |
| 3755 | + } | |
| 3756 | + } | |
| 3456 | 3757 | } | 
| 3758 | + | |
| 3759 | + | |
| 3457 | 3760 | |
| 3458 | 3761 | |
| 3459 | 3762 | }); | ... | ... | 
pages/goods/goodsInfo/goodsInfo.wxml
| ... | ... | @@ -733,10 +733,16 @@ | 
| 733 | 733 | |
| 734 | 734 | <!-------------------底部按钮--------------------> | 
| 735 | 735 | <view class="join-cart"> | 
| 736 | - <view bindtap="contactService" class="custom-service cart-ico new_split"> | |
| 736 | + <!-- bindtap="contactService" --> | |
| 737 | + <button wx:if="{{sys_switch.weapp_customertype}}" class="custom-service cart-ico new_split" open-type="contact" session-from="wechat|{{userInfo.user_id}}|{{userInfo.nickname}}|{{userInfo.head_pic}}"> | |
| 737 | 738 | <image class="cs-img" src="{{iurl}}/miniapp/images/custom-service.png"></image> | 
| 738 | 739 | <view>客服</view> | 
| 739 | - </view> | |
| 740 | + </button> | |
| 741 | + <view wx:else class="custom-service cart-ico new_split" bindtap="contactService"> | |
| 742 | + <image class="cs-img" src="{{iurl}}/miniapp/images/custom-service.png"></image> | |
| 743 | + <view>客服</view> | |
| 744 | + </view> | |
| 745 | + | |
| 740 | 746 | <view bindtap="collectGoods" class="custom-service cart-ico new_split"> | 
| 741 | 747 | <image hidden="{{is_collect}}" class="cs-img" src="{{iurl}}/miniapp/images/heart.png"></image> | 
| 742 | 748 | <image hidden="{{!is_collect}}" class="cs-img" src="{{iurl}}/miniapp/images/heart-h.png"></image> | 
| ... | ... | @@ -905,7 +911,7 @@ | 
| 905 | 911 | <!----商品的属性项目----> | 
| 906 | 912 | <view class="xc-goods-attribute"> | 
| 907 | 913 | <view hidden="{{ismend==1}}" class="spec-name">商品属性</view> | 
| 908 | - <view hidden="{{ismend==1}}" class="flex"> | |
| 914 | + <view hidden="{{ismend==1}}" style="max-height: 120rpx;overflow-y: auto;"> | |
| 909 | 915 | <view class="spec_bt {{gid==item.goods_id?'act':''}}" bindtap="sele_spec" data-gid='{{item.goods_id}}' wx:for="{{sku_g}}" wx:key="sku_g"> | 
| 910 | 916 | {{item.gg}} | 
| 911 | 917 | </view> | ... | ... | 
pages/goods/goodsInfo/goodsInfo.wxss
| ... | ... | @@ -599,7 +599,8 @@ border-radius: 0 56rpx 55rpx 0; | 
| 599 | 599 | text-align: center; | 
| 600 | 600 | } | 
| 601 | 601 | .spec_bt{ | 
| 602 | - background: fff;color: #333; margin-left: 10rpx;padding: 4rpx 15rpx 4rpx; border-radius:30rpx;font-size: 24rpx;border: 1rpx solid #ccc; | |
| 602 | + background: fff;color: #333; margin-left: 10rpx;padding: 4rpx 15rpx 4rpx; display: inline-block; | |
| 603 | + border-radius:30rpx;font-size: 24rpx;border: 1rpx solid #ccc; margin: 10rpx; height: 40rpx; line-height: 40rpx; | |
| 603 | 604 | } | 
| 604 | 605 | .spec_bt.act{background: #d60021;color: #fff;border: 1rpx solid #d60021;} | 
| 605 | 606 | .sub { | 
| ... | ... | @@ -2560,4 +2561,9 @@ border-radius: 55rpx; | 
| 2560 | 2561 | .carde_frame{ | 
| 2561 | 2562 | height: 50rpx; | 
| 2562 | 2563 | line-height: 18rpx | 
| 2564 | +} | |
| 2565 | + | |
| 2566 | +button.custom-service { line-height: normal; border: 0;} | |
| 2567 | +button.custom-service::after{ | |
| 2568 | + border: 0; | |
| 2563 | 2569 | } | 
| 2564 | 2570 | \ No newline at end of file | ... | ... | 
pages/user/address_list/address_list.js
| ... | ... | @@ -154,5 +154,59 @@ Page({ | 
| 154 | 154 | |
| 155 | 155 | |
| 156 | 156 | |
| 157 | - } | |
| 157 | + } , | |
| 158 | + | |
| 159 | + //获取微信地址 | |
| 160 | + get_wx:function(){ | |
| 161 | + var th=this; | |
| 162 | + wx.getSetting({ | |
| 163 | + success(res) { | |
| 164 | + console.log("vres.authSetting['scope.address']:", res.authSetting['scope.address']) | |
| 165 | + if (res.authSetting['scope.address']) { | |
| 166 | + wx.chooseAddress({ | |
| 167 | + success(res) { | |
| 168 | + th.save_wx_addr(res); | |
| 169 | + } | |
| 170 | + }) | |
| 171 | + | |
| 172 | + } else { | |
| 173 | + if (res.authSetting['scope.address'] == false) { | |
| 174 | + console.log("222") | |
| 175 | + wx.openSetting({ | |
| 176 | + success(res) {} | |
| 177 | + }) | |
| 178 | + } else { | |
| 179 | + | |
| 180 | + wx.chooseAddress({ | |
| 181 | + success(res) { | |
| 182 | + th.save_wx_addr(res); | |
| 183 | + } | |
| 184 | + }) | |
| 185 | + } | |
| 186 | + } | |
| 187 | + } | |
| 188 | + }) | |
| 189 | + }, | |
| 190 | + | |
| 191 | + save_wx_addr:function (res) { | |
| 192 | + var pd={},th=this; | |
| 193 | + pd.store_id=os.stoid; | |
| 194 | + pd.user_id=getApp().globalData.user_id; | |
| 195 | + pd.userName=res.userName; | |
| 196 | + pd.provinceName=res.provinceName; | |
| 197 | + pd.countryName=res.countyName; | |
| 198 | + pd.cityName=res.cityName; | |
| 199 | + pd.detailInfo=res.detailInfo; | |
| 200 | + pd.postalCode=res.postalCode; | |
| 201 | + pd.telNumber=res.telNumber; | |
| 202 | + getApp().request.promisePost("/api/weshop/useraddress/saveWx",{data:pd}).then(res=>{ | |
| 203 | + if(res.data.code==0){ | |
| 204 | + getApp().my_warnning("保存成功",1,th); | |
| 205 | + setTimeout(function () { | |
| 206 | + th.onShow(); | |
| 207 | + },1000) | |
| 208 | + } | |
| 209 | + }) | |
| 210 | + | |
| 211 | + } | |
| 158 | 212 | }); | 
| 159 | 213 | \ No newline at end of file | ... | ... | 
pages/user/address_list/address_list.json
pages/user/address_list/address_list.wxml
| ... | ... | @@ -69,12 +69,17 @@ | 
| 69 | 69 | |
| 70 | 70 | </view> | 
| 71 | 71 | |
| 72 | - <!-- 新建收货地址 --> | |
| 73 | - <view class="new"> | |
| 74 | - <navigator bindtap="go_url" data-url="/pages/user/add_address/add_address"> | |
| 75 | - <view class="add">+</view> | |
| 76 | - <view class="addAddress">新建收货地址</view> | |
| 77 | - </navigator> | |
| 78 | - </view> | |
| 79 | - | |
| 80 | -</view> | |
| 81 | 72 | \ No newline at end of file | 
| 73 | + <!-- 新建收货地址 --> | |
| 74 | + <view class="new flex jc_sb"> | |
| 75 | + <navigator bindtap="get_wx" class="ye"> | |
| 76 | + <view class="add">+</view> | |
| 77 | + <view class="addAddress">获取微信地址</view> | |
| 78 | + </navigator> | |
| 79 | + | |
| 80 | + <navigator bindtap="go_url" data-url="/pages/user/add_address/add_address"> | |
| 81 | + <view class="add">+</view> | |
| 82 | + <view class="addAddress">新建收货地址</view> | |
| 83 | + </navigator> | |
| 84 | + </view> | |
| 85 | +</view> | |
| 86 | +<warn id="warn"></warn> | |
| 82 | 87 | \ No newline at end of file | ... | ... | 
pages/user/address_list/address_list.wxss
| ... | ... | @@ -213,14 +213,14 @@ page { | 
| 213 | 213 | } | 
| 214 | 214 | |
| 215 | 215 | .container .new { | 
| 216 | - width: 100%; | |
| 216 | + width: 86%; | |
| 217 | 217 | display: flex; | 
| 218 | - justify-content: center; | |
| 219 | 218 | position: fixed; | 
| 220 | 219 | bottom: 0rpx; | 
| 221 | 220 | height: 204rpx; | 
| 222 | 221 | align-items: center; | 
| 223 | 222 | background-color: rgb(255, 255, 255); | 
| 223 | + margin-left:7% | |
| 224 | 224 | } | 
| 225 | 225 | |
| 226 | 226 | .container .new .add { | 
| ... | ... | @@ -229,7 +229,7 @@ page { | 
| 229 | 229 | |
| 230 | 230 | .container navigator { | 
| 231 | 231 | display: flex; | 
| 232 | - width: 430rpx; | |
| 232 | + width: 300rpx; | |
| 233 | 233 | height: 62rpx; | 
| 234 | 234 | background-color: rgb(239, 22, 51); | 
| 235 | 235 | border-radius: 40rpx; | 
| ... | ... | @@ -238,3 +238,10 @@ page { | 
| 238 | 238 | color: rgb(255, 255, 255); | 
| 239 | 239 | font-size: 27rpx; | 
| 240 | 240 | } | 
| 241 | + | |
| 242 | +.container navigator.ye{ | |
| 243 | + background-color: #fc872d; | |
| 244 | +} | |
| 245 | +.nothing .address navigator.ye{ | |
| 246 | + background-color: #fc872d; | |
| 247 | +} | ... | ... | 
pages/user/order_detail/order_detail.js
| ... | ... | @@ -344,14 +344,18 @@ Page({ | 
| 344 | 344 | //-----删除订单----- | 
| 345 | 345 | deleteOrderData: function(t) { | 
| 346 | 346 | var th=this; | 
| 347 | - var order_id=t.currentTarget.dataset.order_id; | |
| 347 | + var order_id=t.currentTarget.dataset.order_id; | |
| 348 | + var up_data={ | |
| 349 | + order_id: order_id,isdel:1 | |
| 350 | + }; | |
| 351 | + if(th.data.order.order_status!=6){ | |
| 352 | + up_data.order_status=5; | |
| 353 | + } | |
| 348 | 354 | wx.showModal({ | 
| 349 | 355 | title: "是否删除订单?", | 
| 350 | 356 | success: function(tt) { | 
| 351 | - t.confirm && rq.put("/api/weshop/order/updatebyId", { | |
| 352 | - data: { | |
| 353 | - order_id: order_id, order_status: 5 | |
| 354 | - }, | |
| 357 | + tt.confirm && rq.put("/api/weshop/order/updatebyId", { | |
| 358 | + data: up_data, | |
| 355 | 359 | success: function (t) { | 
| 356 | 360 | getApp().my_warnning("删除成功",1,th); | 
| 357 | 361 | setTimeout(function () { | ... | ... | 
pages/user/order_detail/order_detail.wxml
| ... | ... | @@ -137,6 +137,9 @@ | 
| 137 | 137 | <block wx:if="{{!(order.has_rt || order.return_btn==2 || order.return_btn==4)}}"> | 
| 138 | 138 | <navigator bindtap="confirmOrder" class="tips-btn" hidden="{{!order.receive_btn}}">收货确认</navigator> | 
| 139 | 139 | </block> | 
| 140 | + | |
| 141 | + <view class="tips-btn" wx:if="{{order.order_status==3}}" bindtap="deleteOrderData" data-order_id="{{order.order_id}}" >删除订单</view> | |
| 142 | + | |
| 140 | 143 | |
| 141 | 144 | <navigator class="tips-btn" hidden="{{!order.shipping_btn}}" url="/pages/user/express/express?order_id={{order.order_id}}">查看物流</navigator> | 
| 142 | 145 | |
| ... | ... | @@ -146,7 +149,7 @@ | 
| 146 | 149 | <navigator class="tips-btn" wx:if="{{(order.order_status==1&&order.pay_status==1) && !order.is_bedistri}}" url="/pages/order/refund_order/refund_order?order_id={{order.order_id}}">申请退款</navigator> | 
| 147 | 150 | </block> | 
| 148 | 151 | <block wx:else> | 
| 149 | - <view class="tips-btn" wx:if="{{order.is_all_return_status==2}}" bindtap="deleteOrderData" order_id="{{order.order_id}}" >删除订单</view> | |
| 152 | + <view class="tips-btn" wx:if="{{order.is_all_return_status==2 && order.isdel==0}}" bindtap="deleteOrderData" data-order_id="{{order.order_id}}" >删除订单</view> | |
| 150 | 153 | <navigator class="tips-btn" wx:if="{{order.is_all_return_status==3}}" url="/pages/order/refund_order/refund_order?order_id={{order.order_id}}">重新退款</navigator> | 
| 151 | 154 | <navigator class="tips-btn" wx:if="{{order.is_all_return_status==0 || order.is_all_return_status==1}}" | 
| 152 | 155 | url="/pages/user/return_goods_info/return_goods_info?order_id={{order.order_id}}">退款详情</navigator> | ... | ... | 
pages/user/order_list/order_list.js
| ... | ... | @@ -11,6 +11,7 @@ var t = function(t) { | 
| 11 | 11 | a = require("../../../utils/common.js"), | 
| 12 | 12 | s = new t.default(); | 
| 13 | 13 | var regeneratorRuntime = require('../../../utils/runtime.js'); | 
| 14 | +var ut= require('../../../utils/util.js'); | |
| 14 | 15 | |
| 15 | 16 | Page({ | 
| 16 | 17 | data: { | 
| ... | ... | @@ -39,18 +40,36 @@ Page({ | 
| 39 | 40 | //已经读取过接口 | 
| 40 | 41 | is_get: 0, | 
| 41 | 42 | conf: null, | 
| 42 | - iscodeall: null | |
| 43 | + iscodeall: null, | |
| 44 | + | |
| 45 | + //会员的等级价位 | |
| 46 | + card_field:null, | |
| 43 | 47 | }, | 
| 44 | 48 | onLoad: function(t) { | 
| 45 | 49 | var th = this; | 
| 46 | 50 | if (t.type != undefined) this.setData({ | 
| 47 | 51 | activeCategoryId: t.type | 
| 48 | 52 | }) | 
| 49 | - s.init(this, "", "orderList"); | |
| 53 | + s.init(this, "", "orderList"); | |
| 54 | + //---查看会员的等级价--- | |
| 50 | 55 | getApp().getConfig2(function(e) { | 
| 51 | - th.setData({ | |
| 52 | - conf: e | |
| 53 | - }); | |
| 56 | + th.setData({conf: e }); | |
| 57 | + //--- 看后台是不是有开通等级卡 --- | |
| 58 | + if(e.switch_list){ | |
| 59 | + var s_list=JSON.parse(e.switch_list); | |
| 60 | + //如果后台有开启等级价的功能 | |
| 61 | + if(parseInt(s_list.rank_switch)==2){ | |
| 62 | + var user=getApp().globalData.userInfo; | |
| 63 | + var str = user['card_expiredate'].replace(/-/g, '/'); | |
| 64 | + var end = new Date(str); | |
| 65 | + end = Date.parse(end) / 1000; | |
| 66 | + var now = ut.gettimestamp(); | |
| 67 | + //--- 判断是等级会员,且在有效期范围内 --- | |
| 68 | + if(user.card_field && now<end){ | |
| 69 | + th.setData({card_field:user.card_field}) | |
| 70 | + } | |
| 71 | + } | |
| 72 | + } | |
| 54 | 73 | }) | 
| 55 | 74 | }, | 
| 56 | 75 | onShow: function() { | 
| ... | ... | @@ -79,6 +98,7 @@ Page({ | 
| 79 | 98 | case "4": | 
| 80 | 99 | r += "&order_status=2"; break; | 
| 81 | 100 | } | 
| 101 | + r+="&isdel=0"; | |
| 82 | 102 | this.setData({ activeCategoryId: t }); r = r + "&page=" + e.data.currentPage; | 
| 83 | 103 | s.request(r, function (t) { | 
| 84 | 104 | |
| ... | ... | @@ -251,8 +271,7 @@ Page({ | 
| 251 | 271 | |
| 252 | 272 | /*-----------确认收货-----------*/ | 
| 253 | 273 | confirmOrder: function(t) { | 
| 254 | - var e = this, | |
| 255 | - a = t.currentTarget.dataset.id; | |
| 274 | + var e = this,a = t.currentTarget.dataset.id; | |
| 256 | 275 | var is_zsorder = t.currentTarget.dataset.zsorder; | 
| 257 | 276 | var th = this; | 
| 258 | 277 | |
| ... | ... | @@ -283,14 +302,17 @@ Page({ | 
| 283 | 302 | deleteOrderData: function(t) { | 
| 284 | 303 | var th = this; | 
| 285 | 304 | var order_id = t.currentTarget.dataset.order_id; | 
| 305 | + var index = t.currentTarget.dataset.index; | |
| 306 | + var up_data={order_id: order_id,isdel:1}; | |
| 307 | + var order=th.data.orderList[index]; | |
| 308 | + if(order.order_status!=6){ | |
| 309 | + up_data.order_status=5; | |
| 310 | + } | |
| 286 | 311 | wx.showModal({ | 
| 287 | 312 | title: "是否删除订单?", | 
| 288 | 313 | success: function(tt) { | 
| 289 | 314 | tt.confirm && rq.put("/api/weshop/order/updatebyId", { | 
| 290 | - data: { | |
| 291 | - order_id: order_id, | |
| 292 | - order_status: 5 | |
| 293 | - }, | |
| 315 | + data: up_data, | |
| 294 | 316 | success: function(t) { | 
| 295 | 317 | for (var e = 0; e < th.data.orderList.length; e++) | 
| 296 | 318 | if (th.data.orderList[e].order_id == order_id) { | 
| ... | ... | @@ -348,40 +370,270 @@ Page({ | 
| 348 | 370 | }, | 
| 349 | 371 | |
| 350 | 372 | /*----------跳转支付-----------*/ | 
| 351 | - jumpToCart4: function(t) { | |
| 373 | + async jumpToCart4(t) { | |
| 352 | 374 | var o_index = t.currentTarget.dataset.idx; | 
| 353 | 375 | var e = this.data.orderList[t.currentTarget.dataset.idx]; | 
| 354 | 376 | var th = this; | 
| 355 | - | |
| 356 | - console.log("jumpToCart4"); | |
| 357 | - console.log(e); | |
| 358 | - | |
| 359 | - if (e.order_amount == 0) { | |
| 360 | - var dd = { | |
| 361 | - parent_sn: e.order_sn, | |
| 362 | - store_id: e.store_id, | |
| 363 | - type: 1, | |
| 364 | - }; | |
| 365 | - getApp().request.post("/api/weshop/order/pay/createOrder", { | |
| 366 | - data: dd, | |
| 367 | - success: function(t) { | |
| 368 | - if (t.data.code == 0) { | |
| 369 | - th.onload(); | |
| 370 | - } else { | |
| 371 | - getApp().confirmBox(t.data.msg + "请您取消该订单"); | |
| 372 | - } | |
| 373 | - } | |
| 374 | - }) | |
| 375 | - return false; | |
| 376 | - } | |
| 377 | - | |
| 378 | - a.jumpToCart4({ | |
| 379 | - order_sn: e.order_sn, | |
| 380 | - order_amount: e.order_amount, | |
| 381 | - type: 1 //正常单 | |
| 382 | - }); | |
| 377 | + var order=e ; | |
| 378 | + var order_goods=e.order_goods; | |
| 379 | + | |
| 380 | + for(var i in order_goods){ | |
| 381 | + var good=order_goods[i]; | |
| 382 | + //如果不是小程序有的功能,直接提示要去3.0处理 | |
| 383 | + if(good.prom_type==2 || good.prom_type==3 || good.prom_type==4 || good.prom_type==5){ | |
| 384 | + wx.showModal({ | |
| 385 | + title: '提示', | |
| 386 | + content: '小程序还未有该活动,请到3.0公众号支付' | |
| 387 | + }); | |
| 388 | + return false; | |
| 389 | + } | |
| 390 | + | |
| 391 | + //要每件每件的商品进行检查,看有么有超出库存,超出限购 | |
| 392 | + var good= order_goods[i],goodsbuynum=0,promgoodsbuynum=0,gg=null; | |
| 393 | + //获取单品的现在的活动状态 | |
| 394 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + os.stoid + "/" + good.goods_id, { | |
| 395 | + }).then(res=>{ | |
| 396 | + gg=res.data.data; | |
| 397 | + }) | |
| 398 | + var limit = gg.viplimited; | |
| 399 | + var store_count = gg.store_count; | |
| 400 | + | |
| 401 | + //---要获得商品,该用户买了多少件,同步应用--- | |
| 402 | + await getApp().request.promiseGet("/api/weshop/ordergoods/getUserBuyGoodsNum", { | |
| 403 | + data: { | |
| 404 | + store_id: os.stoid, | |
| 405 | + user_id: getApp().globalData.user_id, | |
| 406 | + goods_id: good.goods_id, | |
| 407 | + prom_type: good.prom_type, | |
| 408 | + prom_id: good.prom_id | |
| 409 | + }, | |
| 410 | + }).then(res => { | |
| 411 | + var buy_num_data = res.data.data; | |
| 412 | + if (buy_num_data.promgoodsbuynum) promgoodsbuynum = buy_num_data.promgoodsbuynum; | |
| 413 | + goodsbuynum = buy_num_data.goodsbuynum; | |
| 414 | + }) | |
| 415 | + | |
| 416 | + var buyed_mum2=goodsbuynum+good.goods_num; | |
| 417 | + if (buyed_mum2 > limit && limit > 0) { | |
| 418 | + wx.showModal({ | |
| 419 | + title: '提示', | |
| 420 | + content: gg.goods_name+'购买数量超出商品限购' | |
| 421 | + }); | |
| 422 | + return false; | |
| 423 | + } | |
| 424 | + | |
| 425 | + 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; | |
| 432 | + }else{ | |
| 433 | + | |
| 434 | + if(gg.prom_type==1 || gg.prom_type==6){ | |
| 435 | + var prom=null; | |
| 436 | + //---如果是活动的时候--- | |
| 437 | + var prom=null,th=this; | |
| 438 | + if(gg.prom_type==1){ | |
| 439 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{ | |
| 440 | + }).then(res=>{ | |
| 441 | + if(res.data.code==0){ | |
| 442 | + prom=res.data.data; | |
| 443 | + } | |
| 444 | + }) | |
| 445 | + } | |
| 446 | + if(gg.prom_type==6){ | |
| 447 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{ | |
| 448 | + }).then(res=>{ | |
| 449 | + if(res.data.code==0){ | |
| 450 | + prom=res.data.data; | |
| 451 | + } | |
| 452 | + }) | |
| 453 | + } | |
| 454 | + | |
| 455 | + if(prom){ | |
| 456 | + var t_now=ut.gettimestamp(); | |
| 457 | + if(prom.is_end==0 && prom.start_time<t_now && prom.end_time>t_now){ | |
| 458 | + wx.showModal({ | |
| 459 | + title: '提示', | |
| 460 | + content: gg.goods_name+'商品的活动发生了变化' | |
| 461 | + }); | |
| 462 | + return false; | |
| 463 | + } | |
| 464 | + } | |
| 465 | + } | |
| 466 | + | |
| 467 | + | |
| 468 | + var isok=1; | |
| 469 | + var card_field=th.data.card_field; | |
| 470 | + //如果会员是等级会员,商品有等级价,且不是活动商品 | |
| 471 | + if(card_field && gg[card_field]>0){ | |
| 472 | + if (good.goods_price != gg[card_field]) isok = 0; | |
| 473 | + }else{ | |
| 474 | + if (good.goods_price != gg.shop_price) isok = 0; | |
| 475 | + | |
| 476 | + } | |
| 477 | + if(!isok){ | |
| 478 | + wx.showModal({ | |
| 479 | + title: '提示', | |
| 480 | + content: gg.goods_name+'商品的价格发生了变化' | |
| 481 | + }); | |
| 482 | + return false; | |
| 483 | + } | |
| 484 | + | |
| 485 | + //--如果是线下库存的时候-- | |
| 486 | + if(th.data.conf.sales_rules==2){ | |
| 487 | + var ob={}; | |
| 488 | + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ | |
| 489 | + ob=obj; | |
| 490 | + }) | |
| 491 | + if(ob.code==-1){ | |
| 492 | + wx.showModal({ | |
| 493 | + title: '提示', | |
| 494 | + content: gg.goods_name+'门店库存不足' | |
| 495 | + }); | |
| 496 | + return false; | |
| 497 | + } | |
| 498 | + | |
| 499 | + }else{ | |
| 500 | + if(good.goods_num>store_count){ | |
| 501 | + wx.showModal({ | |
| 502 | + title: '提示', | |
| 503 | + content: gg.goods_name+'商品的库存不足' | |
| 504 | + }); | |
| 505 | + return false; | |
| 506 | + } | |
| 507 | + | |
| 508 | + } | |
| 509 | + } | |
| 510 | + | |
| 511 | + var prom=null; | |
| 512 | + //---如果是活动的时候--- | |
| 513 | + var prom=null,goodsinfo=good,th=this; | |
| 514 | + if(goodsinfo.prom_type==1){ | |
| 515 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 516 | + }).then(res=>{ | |
| 517 | + if(res.data.code==0){ | |
| 518 | + prom=res.data.data; | |
| 519 | + } | |
| 520 | + }) | |
| 521 | + } | |
| 522 | + if(goodsinfo.prom_type==6){ | |
| 523 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 524 | + }).then(res=>{ | |
| 525 | + if(res.data.code==0){ | |
| 526 | + prom=res.data.data; | |
| 527 | + } | |
| 528 | + }) | |
| 529 | + } | |
| 530 | + //----------如果有活动,并且在进行中,就不计算线下库存--------------- | |
| 531 | + if(prom){ | |
| 532 | + var now=ut.gettimestamp(); | |
| 533 | + if(prom.is_end==1 && prom.end_time<now){ | |
| 534 | + wx.showModal({ | |
| 535 | + title: '提示', | |
| 536 | + content: goodsinfo.goods_name+'商品的活动已经结束' | |
| 537 | + }); | |
| 538 | + return false; | |
| 539 | + } | |
| 540 | + | |
| 541 | + buyed_mum2=promgoodsbuynum+good.goods_num; | |
| 542 | + if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) { | |
| 543 | + wx.showModal({ | |
| 544 | + title: '提示', | |
| 545 | + content: goodsinfo.goods_name+'购买数量超出商品活动限购' | |
| 546 | + }); | |
| 547 | + return false; | |
| 548 | + } | |
| 549 | + | |
| 550 | + var redis_num = 0; | |
| 551 | + //------判断活动是否抢光----- | |
| 552 | + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + | |
| 553 | + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, { | |
| 554 | + }).then(res => { | |
| 555 | + redis_num = res.data.data; | |
| 556 | + }); | |
| 557 | + | |
| 558 | + if (good.goods_num > redis_num) { | |
| 559 | + wx.showModal({ | |
| 560 | + title: gg.goods_name+'超出商品活动库存', | |
| 561 | + }); | |
| 562 | + return false; | |
| 563 | + } | |
| 564 | + } | |
| 565 | + | |
| 566 | + | |
| 567 | + } | |
| 568 | + th.pay_next(e); | |
| 383 | 569 | }, | 
| 384 | - | |
| 570 | + | |
| 571 | + | |
| 572 | + pay_next(e){ | |
| 573 | + if (e.order_amount == 0) { | |
| 574 | + var dd = { | |
| 575 | + parent_sn: e.order_sn, | |
| 576 | + store_id: e.store_id, | |
| 577 | + type: 1, | |
| 578 | + }; | |
| 579 | + getApp().request.post("/api/weshop/order/pay/createOrder", { | |
| 580 | + data: dd, | |
| 581 | + success: function(t) { | |
| 582 | + if (t.data.code == 0) { | |
| 583 | + th.onload(); | |
| 584 | + } else { | |
| 585 | + getApp().confirmBox(t.data.msg + "请您取消该订单"); | |
| 586 | + } | |
| 587 | + } | |
| 588 | + }) | |
| 589 | + return false; | |
| 590 | + } | |
| 591 | + a.jumpToCart4({ | |
| 592 | + order_sn: e.order_sn, | |
| 593 | + order_amount: e.order_amount, | |
| 594 | + type: 1 //正常单 | |
| 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 | + lock=res.data.data.pageData[0].outQty; | |
| 608 | + } | |
| 609 | + }) | |
| 610 | + //先获取门店的编号 | |
| 611 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{ | |
| 612 | + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id} | |
| 613 | + }).then(res=>{ | |
| 614 | + if(res.data.code==0){ | |
| 615 | + pick_no=res.data.data.pickup_no; | |
| 616 | + } | |
| 617 | + }) | |
| 618 | + //读取线下的门店库存 | |
| 619 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 620 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid} | |
| 621 | + }).then(res=>{ | |
| 622 | + if(res.data.code==0){ | |
| 623 | + plist=res.data.data.pageData[0]; | |
| 624 | + } | |
| 625 | + }) | |
| 626 | + var ob={}; ob.code=1; | |
| 627 | + if(num>plist.CanOutQty-lock){ | |
| 628 | + ob.code=-1; | |
| 629 | + ob.CanOutQty=plist.CanOutQty-lock | |
| 630 | + if(ob.CanOutQty<0) ob.CanOutQty=0; | |
| 631 | + } | |
| 632 | + func(ob) | |
| 633 | + }, | |
| 634 | + | |
| 635 | + | |
| 636 | + | |
| 385 | 637 | //------图片失败,默认图片--------- | 
| 386 | 638 | bind_bnerr: function(e) { | 
| 387 | 639 | var _errImg = e.currentTarget.dataset.errorimg; | ... | ... | 
pages/user/order_list/order_list.wxml
| ... | ... | @@ -24,7 +24,9 @@ | 
| 24 | 24 | <view wx:if="{{(item.order_status==1&&item.pay_status==1&&item.shipping_status==1)}}">待收货</view> | 
| 25 | 25 | <view wx:if="{{(item.order_status==2)}}">待评价</view> | 
| 26 | 26 | <view wx:if="{{item.order_status==4}}">已评价</view> | 
| 27 | - <view wx:if="{{item.order_status==3 && item.pt_status!=6}}">已取消</view> | |
| 27 | + <view wx:if="{{item.order_status==3 && item.pt_status!=6}}" class="flex-center" >已取消<view class="lin"></view> | |
| 28 | + <image src="{{iurl}}miniapp/images/trash.png" bindtap="deleteOrderData" data-index="{{index}}" data-order_id="{{item.order_id}}"></image> | |
| 29 | + </view> | |
| 28 | 30 | <view wx:if="{{item.pt_status==2 && item.pt_tail_money>0}}">待支付尾款</view> | 
| 29 | 31 | <view wx:if="{{item.order_status==6}}">退款成功</view> | 
| 30 | 32 | <view wx:if="{{item.pt_status==6}}"><text style="font-size: 26rpx;">支付尾款失败</text></view> | 
| ... | ... | @@ -32,7 +34,7 @@ | 
| 32 | 34 | <block wx:else>退款中</block> | 
| 33 | 35 | <view class="flex" wx:if="{{(item.order_status==0&&item.pay_status==0)}}"> | 
| 34 | 36 | <view class="lin"></view> | 
| 35 | - <image src="{{iurl}}miniapp/images/trash.png" bindtap="deleteOrderData" data-order_id="{{item.order_id}}"></image> | |
| 37 | + <image src="{{iurl}}miniapp/images/trash.png" bindtap="deleteOrderData" data-index="{{index}}" data-order_id="{{item.order_id}}"></image> | |
| 36 | 38 | </view> | 
| 37 | 39 | </view> | 
| 38 | 40 | </view> | 
| ... | ... | @@ -126,8 +128,6 @@ | 
| 126 | 128 | </view> | 
| 127 | 129 | <view class="links flex-right-vertical fs30"> | 
| 128 | 130 | <image wx:if="{{(item.order_status==1&&item.pay_status==1 && item.shipping_status==0 && item.exp_type==1)}}" class="code" src="{{iurl}}miniapp/images/order/code.png" bindtap="code_show" data-order_sn="{{item.order_sn}}"></image> | 
| 129 | - | |
| 130 | - <view class="commodity_To_evaluate flex-level View_evaluation" data-id="{{item.order_id}}" wx:if="{{item.order_status==3 && item.pt_status!=3}}">已取消</view> | |
| 131 | 131 | <view bindtap="cancelOrder" class="commodity_To_evaluate flex-level View_evaluation" data-id="{{item.order_id}}" data-zsorder="{{item.is_zsorder}}" data-orderindex="{{index}}" wx:if="{{(item.order_status==0 &&item.pay_status==0)}}">取消订单</view> | 
| 132 | 132 | <view class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{item.pt_status==3}}">拼团失败</view> | 
| 133 | 133 | <!---has_rt部分退----> | 
| ... | ... | @@ -136,7 +136,7 @@ | 
| 136 | 136 | <navigator class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{(item.order_status==1&&item.pay_status==1) && !item.is_bedistri}}" url="/pages/order/refund_order/refund_order?order_id={{item.order_id}}">申请退款</navigator> | 
| 137 | 137 | </block> | 
| 138 | 138 | <block wx:else> | 
| 139 | - <view class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{item.is_all_return_status==2}}" bindtap="deleteOrderData" data-order_id="{{item.order_id}}">删除订单</view> | |
| 139 | + <view class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{item.is_all_return_status==2 && item.isdel==0}}" bindtap="deleteOrderData" data-order_id="{{item.order_id}}" data-index="{{index}}">删除订单</view> | |
| 140 | 140 | <navigator class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{item.is_all_return_status==3}}" url="/pages/order/refund_order/refund_order?order_id={{item.order_id}}">重新退款</navigator> | 
| 141 | 141 | <navigator class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{item.is_all_return_status==0 || item.is_all_return_status==1}}" url="/pages/user/return_goods_info/return_goods_info?order_id={{item.order_id}}">退款详情</navigator> | 
| 142 | 142 | </block> | ... | ... | 
pages/user/order_list/order_list.wxss
