Commit 47bd743f13f0152fca76170f251876e0118e0e01
Merge branch 'qa' into 'master'
Qa See merge request !372
Showing
23 changed files
with
2074 additions
and
640 deletions
app.js
| ... | ... | @@ -399,6 +399,23 @@ App({ |
| 399 | 399 | if(n>15) clearInterval(page.data[key]); |
| 400 | 400 | },1000); |
| 401 | 401 | } |
| 402 | + }, | |
| 403 | + | |
| 404 | + | |
| 405 | + //------定时等待某个值,有值才进行运算-------- | |
| 406 | + waitfor2:function(page,key,pop_value_key,func){ | |
| 407 | + var n=0; | |
| 408 | + if(!page.data[key]){ | |
| 409 | + page.data[key]=setInterval(function(){ | |
| 410 | + console.log(page.data[key]);n++; | |
| 411 | + if(page.data[pop_value_key]) { | |
| 412 | + clearInterval(page.data[key]); | |
| 413 | + func(); | |
| 414 | + } | |
| 415 | + if(n>15) clearInterval(page.data[key]); | |
| 416 | + },1000); | |
| 417 | + } | |
| 402 | 418 | } |
| 419 | + | |
| 403 | 420 | |
| 404 | 421 | }); | ... | ... |
components/diy_nav/diy_nav.wxml
| ... | ... | @@ -3,11 +3,11 @@ |
| 3 | 3 | <block wx:if="{{object.style==1}}"> |
| 4 | 4 | <view class="{{object.seticon==1?'big':object.seticon==2?'big_one_two':'big_border_three'}}"> |
| 5 | 5 | <block wx:for="{{nav_list}}"> |
| 6 | - <navigator url="{{item.wxapp_url}}" class="s1_gk_a1" | |
| 6 | + <navigator style="width:{{100/nav_list.length}}%;" url="{{item.wxapp_url}}" class="s1_gk_a1" | |
| 7 | 7 | wx:if="{{g_filter.has_char(item.wxapp_url,'plugin')>=0}}"> |
| 8 | 8 | <include src="diy_nav_part1.wxml" /> |
| 9 | 9 | </navigator> |
| 10 | - <view data-url="{{item.wxapp_url}}" class="s1_gk_a1" bindtap="go_url" wx:else> | |
| 10 | + <view style="width:{{100/nav_list.length}}%;" data-url="{{item.wxapp_url}}" class="s1_gk_a1" bindtap="go_url" wx:else> | |
| 11 | 11 | <include src="diy_nav_part1.wxml" /> |
| 12 | 12 | </view> |
| 13 | 13 | </block> | ... | ... |
components/diy_nav/diy_nav.wxss
| ... | ... | @@ -7,6 +7,7 @@ |
| 7 | 7 | height: auto; |
| 8 | 8 | margin: 0rpx auto; |
| 9 | 9 | text-align: center; |
| 10 | + display: flex; | |
| 10 | 11 | } |
| 11 | 12 | |
| 12 | 13 | .s1_gk_a1 { |
| ... | ... | @@ -47,8 +48,8 @@ |
| 47 | 48 | /* 图片2的大框 */ |
| 48 | 49 | |
| 49 | 50 | .big_one_two { |
| 50 | - display: inline-block; | |
| 51 | - /* display: flex; */ | |
| 51 | + /* display: inline-block; */ | |
| 52 | + display: flex; | |
| 52 | 53 | width: 100%; |
| 53 | 54 | min-height: 122rpx; |
| 54 | 55 | height: auto; |
| ... | ... | @@ -92,8 +93,9 @@ |
| 92 | 93 | |
| 93 | 94 | .big_border_three { |
| 94 | 95 | display: flex; |
| 95 | - widows: 100%; | |
| 96 | + width: 100%; | |
| 96 | 97 | height: 108rpx; |
| 98 | + | |
| 97 | 99 | } |
| 98 | 100 | |
| 99 | 101 | /* 图片的边框 */ |
| ... | ... | @@ -111,6 +113,7 @@ |
| 111 | 113 | margin-top: 40rpx; |
| 112 | 114 | font-size: 30rpx; |
| 113 | 115 | font-family: "宋体"; |
| 116 | + width: 100%;text-align: center; margin: 20rpx 0; | |
| 114 | 117 | } |
| 115 | 118 | |
| 116 | 119 | /* 隐藏图片 */ | ... | ... |
components/diy_nav/diy_nav_part1.wxml
| 1 | - <view style='width:{{100/nav_list.length}}%;background-color: {{item.bgcolor}};' | |
| 1 | + <view style='width:100%; background-color: {{item.bgcolor}};' | |
| 2 | 2 | class="{{object.seticon==1?'big_view_one':object.seticon==2?'big_view_two':'bicder_picture'}}"> |
| 3 | 3 | <block wx:if="{{item.navicon==null}}"> |
| 4 | 4 | <image style='width:{{object.sliderExample*2}}rpx;height:{{object.sliderExample*2}}rpx;' | ... | ... |
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,86 +479,206 @@ 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 | }); |
| 470 | 486 | e.doCheckAll(); |
| 487 | + | |
| 488 | + t.goods_num=cbuy > 0 ? cbuy : 0, | |
| 489 | + e.update_cart(t, pitem, item); | |
| 471 | 490 | return false; |
| 472 | 491 | } |
| 473 | 492 | |
| 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 | - | |
| 493 | + | |
| 487 | 494 | if (goodsinfo.prom_type == 1) { |
| 488 | - //读取秒杀 | |
| 489 | - rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { | |
| 495 | + //读取秒杀 | |
| 496 | + rq.get("/api/ms/flash_sale/getFlashSaleOne/" + oo.stoid + "/" + goodsinfo.prom_id, { | |
| 490 | 497 | isShowLoading: 0, |
| 491 | 498 | 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); | |
| 499 | + | |
| 500 | + if(res_d.data.code==0){ | |
| 501 | + if (t.goods_num > store_count) { | |
| 502 | + wx.showModal({ | |
| 503 | + title: '提示', | |
| 504 | + content: '购买数量超出商品库存' | |
| 505 | + }); | |
| 506 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 507 | + e.setData({ | |
| 508 | + [txt]: store_count | |
| 509 | + }); | |
| 510 | + e.doCheckAll(); | |
| 511 | + | |
| 512 | + t.goods_num=store_count; | |
| 513 | + e.update_cart(t, pitem, item); | |
| 514 | + | |
| 515 | + return false; | |
| 516 | + } | |
| 517 | + | |
| 518 | + var false_data = res_d.data.data; | |
| 519 | + //--判断库存-- | |
| 520 | + if (t.goods_num > false_data.goods_num - false_data.buy_num) { | |
| 521 | + wx.showModal({ | |
| 522 | + title: '提示', | |
| 523 | + content: '购买数量超出活动库存' | |
| 524 | + }); | |
| 525 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 526 | + e.setData({ | |
| 527 | + [txt]: false_data.goods_num - false_data.buy_num | |
| 528 | + }); | |
| 529 | + e.doCheckAll(); | |
| 530 | + | |
| 531 | + t.goods_num=false_data.goods_num - false_data.buy_num; | |
| 532 | + e.update_cart(t, pitem, item); | |
| 533 | + | |
| 534 | + return false; | |
| 535 | + } | |
| 536 | + | |
| 537 | + //--判断redis数量是否已经超出-- | |
| 538 | + if (t.goods_num > false_data.redisnum) { | |
| 539 | + wx.showModal({ | |
| 540 | + title: '提示', | |
| 541 | + content: '购买数量超出商品库存' | |
| 542 | + }); | |
| 543 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 544 | + e.setData({ | |
| 545 | + [txt]: false_data.redisnum | |
| 546 | + }); | |
| 547 | + e.doCheckAll(); | |
| 548 | + | |
| 549 | + t.goods_num=false_data.redisnum; | |
| 550 | + e.update_cart(t, pitem, item); | |
| 551 | + | |
| 552 | + | |
| 553 | + return false; | |
| 554 | + } | |
| 555 | + | |
| 556 | + //--活动的限购是不是要判断-- | |
| 557 | + if (t.goods_num + promgoodsbuynum > false_data.buy_limit && false_data.buy_limit > 0) { | |
| 558 | + wx.showModal({ | |
| 559 | + title: '提示', | |
| 560 | + content: '购买数量超出秒杀限购' | |
| 561 | + }); | |
| 562 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 563 | + e.setData({ | |
| 564 | + [txt]: false_data.false_data.buy_limit | |
| 565 | + }); | |
| 566 | + e.doCheckAll(); | |
| 567 | + | |
| 568 | + t.goods_num=false_data.false_data.buy_limit; | |
| 569 | + e.update_cart(t, pitem, item); | |
| 570 | + | |
| 571 | + return false; | |
| 572 | + } | |
| 573 | + }else{ | |
| 574 | + //--- 看一下是不是线下库存 --- | |
| 575 | + if(th.data.sales_rules==2){ | |
| 576 | + th.check_down_line(t, pitem, item,wareIds); | |
| 577 | + }else{ | |
| 578 | + if (t.goods_num > store_count) { | |
| 579 | + wx.showModal({ | |
| 580 | + title: '提示', | |
| 581 | + content: '购买数量超出商品库存' | |
| 582 | + }); | |
| 583 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 584 | + e.setData({ | |
| 585 | + [txt]: store_count | |
| 586 | + }); | |
| 587 | + e.doCheckAll(); | |
| 588 | + return false; | |
| 589 | + } | |
| 590 | + e.update_cart(t, pitem, item); | |
| 591 | + } | |
| 592 | + } | |
| 593 | + | |
| 536 | 594 | } |
| 537 | 595 | }) |
| 538 | - } else { | |
| 539 | - e.update_cart(t, pitem, item); | |
| 596 | + } else { | |
| 597 | + //--- 看一下是不是线下库存 --- | |
| 598 | + if(th.data.sales_rules==2){ | |
| 599 | + th.check_down_line(t, pitem, item,wareIds); | |
| 600 | + }else{ | |
| 601 | + if (t.goods_num > store_count) { | |
| 602 | + wx.showModal({ | |
| 603 | + title: '提示', | |
| 604 | + content: '购买数量超出商品库存' | |
| 605 | + }); | |
| 606 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 607 | + e.setData({ | |
| 608 | + [txt]: store_count | |
| 609 | + }); | |
| 610 | + e.doCheckAll(); | |
| 611 | + t.goods_num=store_count; | |
| 612 | + } | |
| 613 | + e.update_cart(t, pitem, item); | |
| 614 | + } | |
| 540 | 615 | } |
| 541 | 616 | } |
| 542 | 617 | }); |
| 543 | 618 | }, |
| 544 | - | |
| 545 | - //更新购物车 | |
| 619 | + | |
| 620 | + //---检验线下库存的数量--- | |
| 621 | + async check_down_line(t, pitem, item,erpwareid){ | |
| 622 | + var ob={},th=this; | |
| 623 | + await this.check_down_line_next(t, pitem, item,erpwareid,function(res){ | |
| 624 | + ob=res; | |
| 625 | + }); | |
| 626 | + var log=0; | |
| 627 | + if(ob.code==-1){ | |
| 628 | + wx.showModal({ | |
| 629 | + title: '提示', | |
| 630 | + content: '购买数量超出商品库存' | |
| 631 | + }); | |
| 632 | + var txt = "requestData[" + pitem + "].goods[" + item + "].goods_num"; | |
| 633 | + th.setData({ | |
| 634 | + [txt]: ob.CanOutQty | |
| 635 | + }); | |
| 636 | + th.doCheckAll(); | |
| 637 | + t.goods_num=ob.CanOutQty; | |
| 638 | + } | |
| 639 | + this.update_cart(t, pitem, item); | |
| 640 | + }, | |
| 641 | + | |
| 642 | + //---检验线下库存的数量的子函数--- | |
| 643 | + async check_down_line_next(t, pitem, item,erpwareid,func){ | |
| 644 | + var goodsinfo = this.data.requestData[pitem].goods[item]; | |
| 645 | + var lock=0,pick_no,plist; | |
| 646 | + //先读取门店的lock | |
| 647 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 648 | + data:{store_id:os.stoid,wareId:t.goods_id,storageId:goodsinfo.pick_id,pageSize:1000} | |
| 649 | + }).then(res=>{ | |
| 650 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 651 | + for(var i in res.data.data.pageData) | |
| 652 | + lock+=res.data.data.pageData[i].outQty; | |
| 653 | + } | |
| 654 | + }) | |
| 655 | + //先获取门店的编号 | |
| 656 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+goodsinfo.pick_id,{ | |
| 657 | + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:goodsinfo.pick_id} | |
| 658 | + }).then(res=>{ | |
| 659 | + if(res.data.code==0){ | |
| 660 | + pick_no=res.data.data.pickup_no; | |
| 661 | + } | |
| 662 | + }) | |
| 663 | + //读取线下的门店库存 | |
| 664 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 665 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} | |
| 666 | + }).then(res=>{ | |
| 667 | + if(res.data.code==0){ | |
| 668 | + plist=res.data.data.pageData[0]; | |
| 669 | + } | |
| 670 | + }) | |
| 671 | + var ob={}; ob.code=1; | |
| 672 | + if(t.goods_num>plist.CanOutQty-lock){ | |
| 673 | + ob.code=-1; | |
| 674 | + ob.CanOutQty=plist.CanOutQty-lock | |
| 675 | + if(ob.CanOutQty<0) ob.CanOutQty=0; | |
| 676 | + } | |
| 677 | + func(ob) | |
| 678 | + }, | |
| 679 | + | |
| 680 | + | |
| 681 | + //--更新购物车--- | |
| 546 | 682 | update_cart: function(t, pitem, item) { |
| 547 | 683 | var e = this; |
| 548 | 684 | getApp().request.put("/api/weshop/cart/update", { |
| ... | ... | @@ -573,7 +709,7 @@ Page({ |
| 573 | 709 | var th = this; |
| 574 | 710 | |
| 575 | 711 | var ab = 0; //选中 |
| 576 | - console.log('checkout'); | |
| 712 | + wx.showLoading(); | |
| 577 | 713 | for (var i = 0; i < this.data.requestData.length; i++) { |
| 578 | 714 | var i_arr = this.data.requestData[i].goods; |
| 579 | 715 | for (var j = 0; j < i_arr.length; j++) { |
| ... | ... | @@ -594,6 +730,25 @@ Page({ |
| 594 | 730 | } |
| 595 | 731 | glist += i_arr[j].goods_id + ","; |
| 596 | 732 | ab = 1; |
| 733 | + //--普通商品,如果有开启线下库存的功能,要调用线下库存进行计算--- | |
| 734 | + if(i_arr[j].prom_type==0 && th.data.sales_rules==2){ | |
| 735 | + //--获取商品的线下商品ID-- | |
| 736 | + var gd=null; | |
| 737 | + await getApp().request.promiseGet("/api/weshop/goods/get/" + oo.stoid + "/" + i_arr[j].goods_id,{}).then(res=>{ | |
| 738 | + if(res.data.code==0) gd=res.data.data; | |
| 739 | + }) | |
| 740 | + //--判断商品是线下库存-- | |
| 741 | + var ob={} | |
| 742 | + await th.check_down_line_next(i_arr[j],i,j,gd.erpwareid,function(rs){ | |
| 743 | + ob=rs; | |
| 744 | + }); | |
| 745 | + if(ob.code==-1){ | |
| 746 | + t.my_warnning(gd.goods_name+"门店库存不足", 0, th); | |
| 747 | + wx.hideLoading(); | |
| 748 | + return false; | |
| 749 | + } | |
| 750 | + } | |
| 751 | + | |
| 597 | 752 | } else { |
| 598 | 753 | rq.put("/api/weshop/cart/update", { |
| 599 | 754 | data: { |
| ... | ... | @@ -610,6 +765,7 @@ Page({ |
| 610 | 765 | } |
| 611 | 766 | if (ab == 0) { |
| 612 | 767 | t.my_warnning("未选择商品", 0, th); |
| 768 | + wx.hideLoading(); | |
| 613 | 769 | return false; |
| 614 | 770 | } |
| 615 | 771 | |
| ... | ... | @@ -657,7 +813,8 @@ Page({ |
| 657 | 813 | } |
| 658 | 814 | |
| 659 | 815 | try { |
| 660 | - ddata.forEach(function(val, ind) { | |
| 816 | + for(var ind in ddata) { | |
| 817 | + var val=ddata[ind]; | |
| 661 | 818 | var num = map.get(val.goods_id + ""); |
| 662 | 819 | if (num <= 0) { |
| 663 | 820 | isok = 0; |
| ... | ... | @@ -665,12 +822,25 @@ Page({ |
| 665 | 822 | throw "购买数量不能为0"; |
| 666 | 823 | return false; |
| 667 | 824 | } |
| 668 | - if (num > val.store_count) { | |
| 669 | - isok = 0; | |
| 670 | - gname = val.goods_name; | |
| 671 | - throw "超出库存"; | |
| 672 | - return false; | |
| 673 | - } | |
| 825 | + | |
| 826 | + if(val.prom_type==1 || val.prom_type==6){ | |
| 827 | + if (num > val.store_count) { | |
| 828 | + isok = 0; | |
| 829 | + gname = val.goods_name; | |
| 830 | + throw "超出库存"; | |
| 831 | + return false; | |
| 832 | + } | |
| 833 | + } | |
| 834 | + | |
| 835 | + if(th.data.sales_rules!=2){ | |
| 836 | + if (num > val.store_count) { | |
| 837 | + isok = 0; | |
| 838 | + gname = val.goods_name; | |
| 839 | + throw "超出库存"; | |
| 840 | + return false; | |
| 841 | + } | |
| 842 | + } | |
| 843 | + | |
| 674 | 844 | if (num > val.redisnum && val.redisnum) { |
| 675 | 845 | isok = 0; |
| 676 | 846 | gname = val.goods_name; |
| ... | ... | @@ -712,7 +882,7 @@ Page({ |
| 712 | 882 | throw "商品价格已经变化"; |
| 713 | 883 | } |
| 714 | 884 | }else{ |
| 715 | - if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { | |
| 885 | + if (g_arr[i].goods_price != val.shop_price && g_arr[i].goods_price != val.prom_price) { | |
| 716 | 886 | isok = 0; |
| 717 | 887 | gname = val.goods_name; |
| 718 | 888 | throw "商品价格已经变化"; |
| ... | ... | @@ -733,14 +903,16 @@ Page({ |
| 733 | 903 | } |
| 734 | 904 | } |
| 735 | 905 | |
| 736 | - }) | |
| 906 | + } | |
| 737 | 907 | } catch (e) { |
| 738 | 908 | err = e; |
| 739 | 909 | } |
| 740 | 910 | if (isok == 0) { |
| 741 | 911 | t.confirmBox(gname + ":" + err); |
| 912 | + wx.hideLoading(); | |
| 742 | 913 | return false; |
| 743 | 914 | } |
| 915 | + wx.hideLoading(); | |
| 744 | 916 | wx.navigateTo({ |
| 745 | 917 | url: "/pages/cart/cart2/cart2" |
| 746 | 918 | }); |
| ... | ... | @@ -821,6 +993,8 @@ Page({ |
| 821 | 993 | wx.switchTab({ |
| 822 | 994 | url: '/pages/index/index/index', |
| 823 | 995 | }) |
| 824 | - } | |
| 996 | + }, | |
| 997 | + | |
| 998 | + | |
| 825 | 999 | |
| 826 | 1000 | }); |
| 827 | 1001 | \ 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,50 @@ 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,pageSize:1000} | |
| 1015 | + }).then(res=>{ | |
| 1016 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 1017 | + for(var i in res.data.data.pageData) | |
| 1018 | + lock+=res.data.data.pageData[i].outQty; | |
| 1019 | + } | |
| 1020 | + }) | |
| 1021 | + //先获取门店的编号 | |
| 1022 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick,{ | |
| 1023 | + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} | |
| 1024 | + }).then(res=>{ | |
| 1025 | + if(res.data.code==0){ | |
| 1026 | + pick_no=res.data.data.pickup_no; | |
| 1027 | + } | |
| 1028 | + }) | |
| 1029 | + //先获取商品的线下库存 | |
| 1030 | + await getApp().request.promiseGet("/api/weshop/goods/get/"+os.stoid+"/"+goods_id,{ | |
| 1031 | + data:{storeId:os.stoid,goodsId:t.goods_id,pickupId:pick} | |
| 1032 | + }).then(res=>{ | |
| 1033 | + if(res.data.code==0){ | |
| 1034 | + erpwareid=res.data.data.erpwareid; | |
| 1035 | + } | |
| 1036 | + }) | |
| 1037 | + //读取线下的门店库存 | |
| 1038 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 1039 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} | |
| 1040 | + }).then(res=>{ | |
| 1041 | + if(res.data.code==0){ | |
| 1042 | + plist=res.data.data.pageData[0]; | |
| 1043 | + } | |
| 1044 | + }) | |
| 1045 | + var isok=1; | |
| 1046 | + if(goods_num>plist.CanOutQty-lock){ | |
| 1047 | + isok=0; | |
| 1048 | + } | |
| 1049 | + func(isok); | |
| 1050 | + }, | |
| 1051 | + | |
| 978 | 1052 | |
| 979 | 1053 | useCoupon: function() { |
| 980 | 1054 | if (this.data.order.couponNum <= 0) { | ... | ... |
pages/cart/cart2/cart2.wxml
| ... | ... | @@ -376,7 +376,7 @@ |
| 376 | 376 | <block>{{item.Sum}}元优惠券</block> |
| 377 | 377 | </view> |
| 378 | 378 | <view class="coupon-time"> |
| 379 | - {{filters.replace_time2(item.BeginDate)}}至{{filters.replace_time2(item.BillDate)}}</view> | |
| 379 | + {{filters.replace_time2(item.BeginDate)}}至{{item.ValidDate?filters.replace_time2(item.ValidDate):'不限'}}</view> | |
| 380 | 380 | </view> |
| 381 | 381 | </view> |
| 382 | 382 | <!-- <view wx:if="{{item.Obtain>0}}" class="code-img" bindtap="show_quan" data-ind="{{index}}" data-now="{{filter.format_time(now)}}"> | ... | ... |
pages/giftpack/buygiftpack/giftpackbuy.js
| ... | ... | @@ -123,7 +123,8 @@ Page({ |
| 123 | 123 | "buyType": '1', //1=积分兑换 2=余额购买 |
| 124 | 124 | "giftBagId": id, //礼包Id |
| 125 | 125 | "storeId": that.getStorageID, //商家Id |
| 126 | - "userId": that.getUserID //用户ID | |
| 126 | + "userId": that.getUserID, //用户ID | |
| 127 | + "buyFrom": 2 | |
| 127 | 128 | }; |
| 128 | 129 | var data = JSON.stringify(json); |
| 129 | 130 | var url = that.url + "/api/weshop/marketing/buy/receive/gift/record/insert"; | ... | ... |
pages/giftpack/giftpacklist/giftpacklist.js
| ... | ... | @@ -132,6 +132,7 @@ Page({ |
| 132 | 132 | "giftBagId": that.getGiftID, //礼包Id |
| 133 | 133 | "storeId": a.stoid, //商家ID |
| 134 | 134 | "userId": d.user_id, //用户ID |
| 135 | + "buyFrom":2 | |
| 135 | 136 | }; |
| 136 | 137 | var data = JSON.stringify(json); |
| 137 | 138 | var url = that.url + "/api/weshop/marketing/buy/receive/gift/record/insert"; | ... | ... |
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, //---拼单的普通购买--- |
| ... | ... | @@ -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 | }) |
| ... | ... | @@ -279,6 +282,7 @@ Page({ |
| 279 | 282 | var json_d = JSON.parse(e.switch_list); |
| 280 | 283 | ee.setData({ |
| 281 | 284 | store_config: e, |
| 285 | + sys_switch:json_d, | |
| 282 | 286 | is_closecoupon: json_d.is_closecoupon, |
| 283 | 287 | is_newsales_rules:json_d.is_newsales_rules |
| 284 | 288 | }); |
| ... | ... | @@ -296,31 +300,30 @@ Page({ |
| 296 | 300 | //---如果后台又开等级卡的开关--- |
| 297 | 301 | if(sw_arr.rank_switch && sw_arr.rank_switch=="2"){ |
| 298 | 302 | th.setData({rank_switch:true}); |
| 299 | - | |
| 300 | 303 | //---回调卡的列表--- |
| 301 | 304 | th.getPlusCardType(function(ob){ |
| 302 | 305 | 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) | |
| 306 | + var ti = setInterval(function () { | |
| 307 | + var user = getApp().globalData.userInfo; | |
| 308 | + if (!user) return false; | |
| 309 | + clearInterval(ti); | |
| 310 | + | |
| 311 | + if(user.card_field ){ | |
| 312 | + var str = user['card_expiredate'].replace(/-/g, '/'); | |
| 313 | + var end = new Date(str); | |
| 314 | + end = Date.parse(end) / 1000; | |
| 315 | + var now = ut.gettimestamp(); | |
| 316 | + //--- 判断是等级会员,且在有效期范围内 --- | |
| 317 | + if(user.card_field && now<end){ | |
| 318 | + var card_name=ob.name_map.get(user.card_field); | |
| 319 | + if(card_name.length>5) card_name=card_name.substring(0,5); | |
| 320 | + | |
| 321 | + var is_near_date=0; | |
| 322 | + if(end-now<60*60*30*24) is_near_date=1; //如果小于30天 | |
| 323 | + th.setData({card_field:user.card_field,card_name:card_name,card_list:ob.card_list,is_near_date:is_near_date}); | |
| 324 | + } | |
| 325 | + } | |
| 326 | + }, 500) | |
| 324 | 327 | }) |
| 325 | 328 | |
| 326 | 329 | } |
| ... | ... | @@ -337,46 +340,46 @@ Page({ |
| 337 | 340 | }); |
| 338 | 341 | |
| 339 | 342 | //获取用户的默认门店 |
| 340 | - getApp().get_user_store(function(e) { | |
| 341 | - if(!e) return false; | |
| 343 | + getApp().get_user_store(function(ee) { | |
| 344 | + if(!ee) return false; | |
| 342 | 345 | var appd=getApp().globalData; |
| 343 | 346 | var w_time = setInterval(function() { |
| 344 | 347 | if (that.data.is_get_local_ok == 0) return false; |
| 345 | 348 | clearInterval(w_time); |
| 346 | 349 | var distance = null; |
| 350 | + var e=JSON.parse(JSON.stringify(ee)); | |
| 347 | 351 | |
| 348 | 352 | //如果有开启近距离的话,同时距离优不一样了 |
| 349 | 353 | if (that.data.lat != null) { |
| 350 | 354 | //如果经纬度有变化的话 |
| 351 | 355 | if( appd.lat==that.data.lat && appd.lon==that.data.lon && e.distance>0 ){ |
| 356 | + that.data.fir_def_store=e; | |
| 352 | 357 | that.setData({ |
| 353 | 358 | def_pick_store: e, |
| 354 | 359 | sto_sele_name: e.pickup_name, |
| 355 | 360 | sto_sele_id: e.pickup_id, |
| 356 | 361 | sto_sele_distr: e.distr_type |
| 357 | 362 | }) |
| 358 | - }else{ | |
| 359 | - //要用接口是获取距离,js的计算不准 | |
| 360 | - getApp().request.get("/api/weshop/pickup/list",{ | |
| 361 | - data:{store_id:os.stoid,pickup_id:e.pickup_id,lat:th.data.lat,lon: th.data.lon}, | |
| 362 | - success:function (res) { | |
| 363 | - if(res.data.code==0){ | |
| 364 | - e=res.data.data.pageData[0]; | |
| 365 | - if (e){ | |
| 366 | - appd.pk_store=e; | |
| 367 | - that.setData({ | |
| 368 | - def_pick_store: e, | |
| 369 | - sto_sele_name: e.pickup_name, | |
| 370 | - sto_sele_id: e.pickup_id, | |
| 371 | - sto_sele_distr: e.distr_type | |
| 372 | - }) | |
| 373 | - } | |
| 374 | - | |
| 375 | - | |
| 376 | - | |
| 377 | - } | |
| 378 | - } | |
| 379 | - }) | |
| 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 | + }) | |
| 380 | 383 | } |
| 381 | 384 | |
| 382 | 385 | //e.distance = distance; |
| ... | ... | @@ -386,18 +389,16 @@ Page({ |
| 386 | 389 | }else{ |
| 387 | 390 | if (e) { |
| 388 | 391 | e.distance = null; |
| 392 | + that.data.fir_def_store=e; | |
| 389 | 393 | that.setData({ |
| 390 | 394 | def_pick_store: e, |
| 391 | 395 | sto_sele_name: e.pickup_name, |
| 392 | 396 | sto_sele_id: e.pickup_id, |
| 393 | 397 | sto_sele_distr: e.distr_type |
| 394 | 398 | }) |
| 395 | - } | |
| 396 | - | |
| 397 | - | |
| 399 | + } | |
| 398 | 400 | } |
| 399 | - | |
| 400 | - | |
| 401 | + | |
| 401 | 402 | }, 500) |
| 402 | 403 | }); |
| 403 | 404 | |
| ... | ... | @@ -548,7 +549,7 @@ Page({ |
| 548 | 549 | |
| 549 | 550 | //---展示--- |
| 550 | 551 | onShow: function() { |
| 551 | - var goods_list = null,th = this; | |
| 552 | + var goods_list = null,th = this,that=this; | |
| 552 | 553 | var ui = setInterval(function () { |
| 553 | 554 | goods_list = th.selectComponent("#goods_list"); |
| 554 | 555 | if (goods_list) { |
| ... | ... | @@ -620,13 +621,56 @@ Page({ |
| 620 | 621 | ee.setData({ |
| 621 | 622 | data: t.data.data, |
| 622 | 623 | sele_g: t.data.data, |
| 624 | + userInfo:getApp().globalData.userInfo | |
| 623 | 625 | }); |
| 624 | 626 | |
| 625 | - //获取门店 | |
| 626 | - ee.get_sto(); | |
| 627 | + | |
| 627 | 628 | //获取统一条形码,普通商品和优惠促销的商品 |
| 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); | |
| 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,pageSize:1000} | |
| 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 | + | |
| 672 | + ee.get_sku(o.stoid, t.data.data.sku, gid); | |
| 673 | + } | |
| 630 | 674 | else { |
| 631 | 675 | var gg = "", |
| 632 | 676 | item = t.data.data; |
| ... | ... | @@ -693,11 +737,6 @@ Page({ |
| 693 | 737 | }); |
| 694 | 738 | this.data.enterAddressPage && (this.data.enterAddressPage = !1); |
| 695 | 739 | |
| 696 | - | |
| 697 | - | |
| 698 | - | |
| 699 | - | |
| 700 | - | |
| 701 | 740 | }, |
| 702 | 741 | enterAddress: function() { |
| 703 | 742 | this.data.enterAddressPage = !0, wx.navigateTo({ |
| ... | ... | @@ -810,6 +849,7 @@ Page({ |
| 810 | 849 | addCart: function(t) { |
| 811 | 850 | var th = this; |
| 812 | 851 | var ind = t.currentTarget.dataset.openSpecModal_ind; |
| 852 | + if(!ind) ind = t.currentTarget.dataset.openspecmodal_ind; | |
| 813 | 853 | th.setData({ |
| 814 | 854 | open_ind_store: ind |
| 815 | 855 | }); |
| ... | ... | @@ -836,9 +876,8 @@ Page({ |
| 836 | 876 | var e = this, |
| 837 | 877 | th = e, |
| 838 | 878 | 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; | |
| 879 | + o = this.data.sele_g; | |
| 880 | + a = o.goods_id; | |
| 842 | 881 | |
| 843 | 882 | //----------添加到购物车时,要判断限购数量,-------- |
| 844 | 883 | e.get_buy_num(o, function(ee) { |
| ... | ... | @@ -864,7 +903,6 @@ Page({ |
| 864 | 903 | } |
| 865 | 904 | |
| 866 | 905 | 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 | 906 | if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) |
| 869 | 907 | this.setData({ |
| 870 | 908 | sto_sele_name: "" |
| ... | ... | @@ -889,20 +927,81 @@ Page({ |
| 889 | 927 | if (th.data.prom_type == 1) { |
| 890 | 928 | newd.goods_price = th.data.prom_price; |
| 891 | 929 | newd.member_goods_price = th.data.prom_price, |
| 892 | - newd.prom_type = th.data.prom_type; | |
| 930 | + newd.prom_type = th.data.prom_type; | |
| 893 | 931 | 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) { | |
| 932 | + | |
| 933 | + if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); | |
| 934 | + if (o.store_count <e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); | |
| 935 | + | |
| 936 | + th.add_cart_next(e,t,a,o,newd); //加入购物车下一步 | |
| 937 | + | |
| 938 | + } 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 | 939 | newd.prom_type = 0; |
| 896 | 940 | newd.prom_id = 0; |
| 897 | - } | |
| 898 | - | |
| 941 | + //---如果是线下门店销售的时候--- | |
| 942 | + if(th.data.sales_rules==2){ | |
| 943 | + var pick=th.get_pick_from_list(th.data.sto_sele_id) | |
| 944 | + //---通过接口获取门店的线下库存信息-- | |
| 945 | + getApp().request.get("/api/weshop/goods/getWareStorages",{ | |
| 946 | + data:{storageNos:pick.pickup_no,wareIds:encodeURIComponent(th.data.sele_g.erpwareid),storeId:os.stoid}, | |
| 947 | + success:function(res){ | |
| 948 | + if(res.data.code==0){ | |
| 949 | + if(res.data.data.pageData.length>0){ | |
| 950 | + var CanOutQty=res.data.data.pageData[0].CanOutQty; | |
| 951 | + if(CanOutQty<e.data.goodsInputNum){ | |
| 952 | + return s.my_warnning("库存不足!", 0, th); | |
| 953 | + } | |
| 954 | + //在调一次接口,读取商品的预出库的数量,lock | |
| 955 | + getApp().request.get("/api/weshop/order/ware/lock/page",{ | |
| 956 | + data:{store_id:os.stoid,wareId:th.data.sele_g.goods_id,storageId:pick.pickup_id,pageSize:1000}, | |
| 957 | + success:function(res_data){ | |
| 958 | + if(res_data.data.code==0 && res_data.data.data.total>0){ | |
| 959 | + | |
| 960 | + var lock=0; | |
| 961 | + for(var i in res_data.data.data.pageData){ | |
| 962 | + lock+=res_data.data.data.pageData[i].outQty; | |
| 963 | + } | |
| 964 | + | |
| 965 | + if(CanOutQty<=lock){ | |
| 966 | + return s.my_warnning("库存不足!", 0, th); | |
| 967 | + } | |
| 968 | + th.add_cart_next(e,t,a,o,newd,CanOutQty-lock); | |
| 969 | + }else{ | |
| 970 | + th.add_cart_next(e,t,a,o,newd,CanOutQty); | |
| 971 | + } | |
| 972 | + } | |
| 973 | + }) | |
| 974 | + }else{ | |
| 975 | + return s.my_warnning("库存不足!", 0, th); | |
| 976 | + } | |
| 977 | + | |
| 978 | + } | |
| 979 | + } | |
| 980 | + }) | |
| 981 | + }else{ | |
| 982 | + if (o.store_count <= 0) return s.my_warnning("库存已为空!", 0, th); | |
| 983 | + if (o.store_count <e.data.goodsInputNum) return s.my_warnning("库存不足!", 0, th); | |
| 984 | + th.add_cart_next(e,t,a,o,newd); //加入购物车下一步 | |
| 985 | + } | |
| 986 | + } | |
| 987 | + }) | |
| 988 | + }, | |
| 989 | + | |
| 990 | + //---加入购物车的最后一步--- | |
| 991 | + add_cart_next(e,t,a,o,newd,CanOutQty){ | |
| 992 | + var th=this; | |
| 899 | 993 | //---如果商品不是积分购和拼团,要判断一个是否要进行等级价的判断------ |
| 900 | 994 | if(o.prom_type!=1 && o.prom_type!=6){ |
| 901 | 995 | var conf=th.data.bconfig; |
| 902 | - if(conf.switch_list){ | |
| 996 | + if (conf.switch_list && getApp().globalData.userInfo['card_field']){ | |
| 903 | 997 | var s_list=JSON.parse(conf.switch_list); |
| 904 | - //如果后台有开启等级价的功能 | |
| 905 | - if(parseInt(s_list.rank_switch)==2){ | |
| 998 | + var now=ut.gettimestamp(); | |
| 999 | + var str = getApp().globalData.userInfo['card_expiredate'].replace(/-/g, '/'); | |
| 1000 | + var end = new Date(str); | |
| 1001 | + end = Date.parse(end) / 1000; | |
| 1002 | + | |
| 1003 | + //--如果后台有开启等级价的功能,而且会员的等级没有过期的情况下-- | |
| 1004 | + if(parseInt(s_list.rank_switch)==2 && end>now){ | |
| 906 | 1005 | var card_price=o[getApp().globalData.userInfo['card_field']]; |
| 907 | 1006 | //如果会员有等级价 |
| 908 | 1007 | if(getApp().globalData.userInfo['card_field']!=undefined && getApp().globalData.userInfo['card_field']!=null |
| ... | ... | @@ -912,64 +1011,82 @@ Page({ |
| 912 | 1011 | } |
| 913 | 1012 | } |
| 914 | 1013 | } |
| 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 | - }) | |
| 1014 | + | |
| 1015 | + //if (this.data.data.goods.is_virtual) return this.buyVirtualGoods(d); | |
| 1016 | + if ("add" == t.currentTarget.dataset.action) { | |
| 1017 | + //----先看会员在购物车中是否加入了该商品----- | |
| 1018 | + i.get("/api/weshop/cart/page", { | |
| 1019 | + data: { | |
| 1020 | + store_id: e.data.stoid, | |
| 1021 | + user_id: oo.user_id, | |
| 1022 | + goods_id: a, | |
| 1023 | + pick_id: e.data.sto_sele_id, | |
| 1024 | + }, | |
| 1025 | + success: function(re) { | |
| 1026 | + | |
| 1027 | + //-------如果购物车中有相关的数据--------- | |
| 1028 | + if (re.data.data.total > 0) { | |
| 1029 | + | |
| 1030 | + var item = re.data.data.pageData[0]; | |
| 1031 | + | |
| 1032 | + //判断数量,要看下购物车中有没有该商品 | |
| 1033 | + if(CanOutQty){ | |
| 1034 | + if(item.goods_num+ th.data.goodsInputNum>CanOutQty){ | |
| 1035 | + return s.my_warnning("库存不足!", 0, th); | |
| 1036 | + } | |
| 1037 | + }else{ | |
| 1038 | + if(item.goods_num+ th.data.goodsInputNum>o.store_count){ | |
| 1039 | + return s.my_warnning("库存不足!", 0, th); | |
| 1040 | + } | |
| 1041 | + } | |
| 1042 | + | |
| 1043 | + | |
| 1044 | + | |
| 1045 | + var updata = { | |
| 1046 | + id: item.id, | |
| 1047 | + goods_num: e.data.goodsInputNum + item.goods_num, | |
| 1048 | + goods_price: newd.goods_price, | |
| 1049 | + store_id: th.data.stoid, | |
| 1050 | + }; | |
| 1051 | + | |
| 1052 | + i.put("/api/weshop/cart/update", { | |
| 1053 | + data: updata, | |
| 1054 | + success: function(t) { | |
| 1055 | + getApp().my_warnning('加入购物车成功', 1, th, 450); | |
| 1056 | + var c_num = th.data.cartGoodsNum + th.data.goodsInputNum; | |
| 1057 | + th.setData({ | |
| 1058 | + cartGoodsNum: c_num | |
| 1059 | + }); | |
| 1060 | + th.closeSpecModal(); | |
| 1061 | + } | |
| 1062 | + }); | |
| 1063 | + } else { | |
| 1064 | + i.post("/api/weshop/cart/save", { | |
| 1065 | + data: newd, | |
| 1066 | + success: function(t) { | |
| 1067 | + getApp().my_warnning('加入购物车成功', 1, th, 450); | |
| 1068 | + var c_num = th.data.cartGoodsNum + e.data.goodsInputNum; | |
| 1069 | + th.setData({ | |
| 1070 | + cartGoodsNum: c_num | |
| 1071 | + }); | |
| 1072 | + th.closeSpecModal(); | |
| 1073 | + } | |
| 1074 | + }); | |
| 1075 | + } | |
| 1076 | + } | |
| 1077 | + }); | |
| 1078 | + } | |
| 1079 | + //else "exchange" == t.currentTarget.dataset.action ? this.exchange(d) : this.buyNow(d); | |
| 1080 | + else { | |
| 1081 | + newd['pick_name'] = th.data.sto_sele_name; | |
| 1082 | + newd['pick_dis'] = th.data.sto_sele_distr; | |
| 1083 | + th.buyNow(newd); | |
| 1084 | + } | |
| 972 | 1085 | }, |
| 1086 | + | |
| 1087 | + | |
| 1088 | + | |
| 1089 | + | |
| 973 | 1090 | //----------购买虚拟商品------ |
| 974 | 1091 | buyVirtualGoods: function(e) { |
| 975 | 1092 | Object.assign(e, { |
| ... | ... | @@ -1018,10 +1135,17 @@ Page({ |
| 1018 | 1135 | |
| 1019 | 1136 | //--判断商品是否超出限购-- |
| 1020 | 1137 | if (th.data.g_buy_num != null && th.data.sele_g.viplimited > 0) { |
| 1021 | - if (t + th.data.g_buy_num.get(th.data.sele_g.goods_id) > th.data.sele_g.viplimited) { | |
| 1138 | + | |
| 1139 | + var gd_buy_num=th.data.g_buy_num.get(th.data.sele_g.goods_id); | |
| 1140 | + | |
| 1141 | + if (t + gd_buy_num > th.data.sele_g.viplimited) { | |
| 1022 | 1142 | wx.showModal({ |
| 1023 | 1143 | title: '超出商品限购', |
| 1024 | 1144 | }); |
| 1145 | + | |
| 1146 | + var num= th.data.sele_g.viplimited-gd_buy_num; | |
| 1147 | + if(num<0) num=0; | |
| 1148 | + th.setData({goodsInputNum:num}) | |
| 1025 | 1149 | return false; |
| 1026 | 1150 | } |
| 1027 | 1151 | } |
| ... | ... | @@ -1032,6 +1156,10 @@ Page({ |
| 1032 | 1156 | wx.showModal({ |
| 1033 | 1157 | title: '超出商品活动限购', |
| 1034 | 1158 | }); |
| 1159 | + | |
| 1160 | + var num=th.data.prom_buy_limit- th.data.prom_buy_num ; | |
| 1161 | + if(num<0) num=0; | |
| 1162 | + th.setData({goodsInputNum:num}) | |
| 1035 | 1163 | return false; |
| 1036 | 1164 | } |
| 1037 | 1165 | } |
| ... | ... | @@ -1049,17 +1177,31 @@ Page({ |
| 1049 | 1177 | if (t > redis_num) { |
| 1050 | 1178 | wx.showModal({ |
| 1051 | 1179 | title: '超出商品活动库存', |
| 1052 | - }); | |
| 1180 | + }); | |
| 1181 | + th.setData({goodsInputNum:redis_num}) | |
| 1053 | 1182 | return false; |
| 1054 | 1183 | } |
| 1055 | 1184 | |
| 1056 | 1185 | } |
| 1057 | 1186 | |
| 1058 | - var e = th.data.sele_g.store_count; | |
| 1059 | - t > e || 0 == e ? t = e : t < 1 && (t = 1), | |
| 1060 | - th.setData({ | |
| 1061 | - goodsInputNum: t | |
| 1062 | - }); | |
| 1187 | + var e = th.data.sele_g.store_count; | |
| 1188 | + if(th.data.sales_rules==2){ | |
| 1189 | + if(!th.data.def_pick_store){ | |
| 1190 | + wx.showModal({ title: '请选择门店', }); | |
| 1191 | + return false; | |
| 1192 | + }else{ | |
| 1193 | + e=th.data.def_pick_store.CanOutQty; | |
| 1194 | + } | |
| 1195 | + } | |
| 1196 | + | |
| 1197 | + //库存不足,不增加 | |
| 1198 | + if(e<t){ wx.showModal({ title: '库存不足', }); | |
| 1199 | + if(e<0) e=0; | |
| 1200 | + th.setData({ goodsInputNum: e }); return false; | |
| 1201 | + } | |
| 1202 | + t > e || 0 == e ? t = e : t < 1 && (t = 1); | |
| 1203 | + th.setData({ goodsInputNum: t }); | |
| 1204 | + | |
| 1063 | 1205 | }) |
| 1064 | 1206 | }, |
| 1065 | 1207 | |
| ... | ... | @@ -1273,7 +1415,7 @@ Page({ |
| 1273 | 1415 | |
| 1274 | 1416 | //----------装载同一条形码的商品---------- |
| 1275 | 1417 | async get_sku(stoid, sku, g_id, is_normal, func) { |
| 1276 | - var tt = this; | |
| 1418 | + var tt = this,arrdata=null; | |
| 1277 | 1419 | await getApp().request.promiseGet("/api/weshop/goods/page", { |
| 1278 | 1420 | data: { |
| 1279 | 1421 | store_id: o.stoid, |
| ... | ... | @@ -1282,17 +1424,38 @@ Page({ |
| 1282 | 1424 | is_on_sale: 1 |
| 1283 | 1425 | } |
| 1284 | 1426 | }).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 | - | |
| 1427 | + var e = res; | |
| 1428 | + if (e.data.code == 0) arrdata = e.data.data.pageData; | |
| 1429 | + }) | |
| 1430 | + if(!arrdata) return fasle; | |
| 1431 | + | |
| 1432 | + var arrsku = new Array(); | |
| 1433 | + var gitem = null; | |
| 1434 | + var gb = 1,gg = ""; | |
| 1435 | + for (var i = 0; i < arrdata.length; i++) { | |
| 1436 | + var goodsinfo=arrdata[i],prom=null; | |
| 1437 | + if (goodsinfo.goods_id != g_id) { | |
| 1438 | + if(goodsinfo.prom_type==1){ | |
| 1439 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1440 | + }).then(res=>{ | |
| 1441 | + if(res.data.code==0) prom=res.data.data; | |
| 1442 | + }) | |
| 1443 | + } | |
| 1444 | + if(goodsinfo.prom_type==6){ | |
| 1445 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1446 | + }).then(res=>{ | |
| 1447 | + if(res.data.code==0) prom=res.data.data; | |
| 1448 | + }) | |
| 1449 | + } | |
| 1450 | + } | |
| 1451 | + //---如果有活动,不算在一起--- | |
| 1452 | + if(prom){ | |
| 1453 | + if(prom.is_end==0 && prom.end_time>now && prom.start_time<now){ | |
| 1454 | + continue; | |
| 1455 | + } | |
| 1456 | + } | |
| 1457 | + | |
| 1458 | + var item = arrdata[i],gg = ""; | |
| 1296 | 1459 | if(item.goods_spec=="null" || item.goods_spec==null) item.goods_spec=""; |
| 1297 | 1460 | if(item.goods_color=="null" || item.goods_color==null) item.goods_color=""; |
| 1298 | 1461 | |
| ... | ... | @@ -1324,13 +1487,12 @@ Page({ |
| 1324 | 1487 | sku_g: arrsku, |
| 1325 | 1488 | sele_g: gitem |
| 1326 | 1489 | }); |
| 1327 | - } | |
| 1328 | - } | |
| 1329 | - }) | |
| 1490 | + } | |
| 1330 | 1491 | }, |
| 1331 | 1492 | |
| 1332 | 1493 | //-----------选择属性的按钮事件---------- |
| 1333 | 1494 | sele_spec: function(e) { |
| 1495 | + var that=this,ee=this,th=this; | |
| 1334 | 1496 | var gid = e.currentTarget.dataset.gid; |
| 1335 | 1497 | var sku_g = this.data.sku_g; |
| 1336 | 1498 | var item = null; |
| ... | ... | @@ -1343,11 +1505,93 @@ Page({ |
| 1343 | 1505 | if (item) this.setData({ |
| 1344 | 1506 | sele_g: item, |
| 1345 | 1507 | gid: gid |
| 1346 | - }); | |
| 1347 | - }, | |
| 1508 | + }); | |
| 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,pageSize:1000} | |
| 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 | + | |
| 1540 | + | |
| 1541 | + this.sele_spec_chech_activity(); | |
| 1542 | + }, | |
| 1543 | + | |
| 1544 | + //选择了不同的规格的时候要判断是不是有活动正在进行中 | |
| 1545 | + async sele_spec_chech_activity(){ | |
| 1546 | + //---如果是活动的时候--- | |
| 1547 | + var prom=null,goodsinfo=this.data.sele_g,th=this; | |
| 1548 | + if(goodsinfo.prom_type==1){ | |
| 1549 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1550 | + }).then(res=>{ | |
| 1551 | + if(res.data.code==0){ | |
| 1552 | + prom=res.data.data; | |
| 1553 | + } | |
| 1554 | + }) | |
| 1555 | + } | |
| 1556 | + if(goodsinfo.prom_type==6){ | |
| 1557 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 1558 | + }).then(res=>{ | |
| 1559 | + if(res.data.code==0){ | |
| 1560 | + prom=res.data.data; | |
| 1561 | + } | |
| 1562 | + }) | |
| 1563 | + } | |
| 1564 | + //----------如果有活动,并且在进行中,就不计算线下库存--------------- | |
| 1565 | + var now=ut.gettimestamp(); | |
| 1566 | + if(prom){ | |
| 1567 | + if(prom.is_end==0 && prom.end_time>now && prom.start_time<now){ | |
| 1568 | + th.setData({ | |
| 1569 | + prom_type:goodsinfo.prom_type, | |
| 1570 | + prom_price:prom.price, | |
| 1571 | + prom_buy_limit:prom.buy_limit, | |
| 1572 | + prom_end_time:prom.end_time, | |
| 1573 | + prom_start_time:prom.start_time, | |
| 1574 | + prom_st:1, | |
| 1575 | + }) | |
| 1576 | + return false; | |
| 1577 | + } | |
| 1578 | + } | |
| 1579 | + //---设置普通商品--- | |
| 1580 | + th.setData({ | |
| 1581 | + prom_type:0, | |
| 1582 | + prom_price:null, | |
| 1583 | + prom_buy_limit:null, | |
| 1584 | + prom_end_time:null, | |
| 1585 | + prom_start_time:null, | |
| 1586 | + prom_st:null, | |
| 1587 | + }) | |
| 1588 | + | |
| 1589 | + }, | |
| 1590 | + | |
| 1591 | + | |
| 1348 | 1592 | //---------拿出门店分类和门店------------ |
| 1349 | 1593 | get_sto(e) { |
| 1350 | - var th = this; | |
| 1594 | + var th = this,that=this; | |
| 1351 | 1595 | var timer_get = setInterval(function() { |
| 1352 | 1596 | if (th.data.is_get_local_ok == 0) return false; |
| 1353 | 1597 | var dd = null, |
| ... | ... | @@ -1358,13 +1602,13 @@ Page({ |
| 1358 | 1602 | store_id: o.stoid, |
| 1359 | 1603 | distr_type: g_distr_type, |
| 1360 | 1604 | isstop: 0, |
| 1361 | - pageSize: 300 | |
| 1605 | + pageSize: 2000 | |
| 1362 | 1606 | } |
| 1363 | 1607 | } else { |
| 1364 | 1608 | dd = { |
| 1365 | 1609 | store_id: o.stoid, |
| 1366 | 1610 | isstop: 0, |
| 1367 | - pageSize: 300 | |
| 1611 | + pageSize: 2000 | |
| 1368 | 1612 | } |
| 1369 | 1613 | } |
| 1370 | 1614 | //如果有距离的话 |
| ... | ... | @@ -1379,15 +1623,16 @@ Page({ |
| 1379 | 1623 | }).then(res => { |
| 1380 | 1624 | var e = res; |
| 1381 | 1625 | if (e.data.code == 0) { |
| 1382 | - | |
| 1626 | + | |
| 1383 | 1627 | //如果有开启距离的功能,没有设置默认门店,要用最近的门店作为默认门店 |
| 1384 | - if(dd.lat && !th.data.def_pick_store){ | |
| 1628 | + if(dd.lat && !th.data.def_pick_store && th.data.bconfig.is_sort_storage){ | |
| 1385 | 1629 | th.setData({ |
| 1386 | 1630 | def_pick_store:e.data.data.pageData[0], |
| 1387 | 1631 | sto_sele_name: e.data.data.pageData[0].pickup_name, |
| 1388 | 1632 | sto_sele_id: e.data.data.pageData[0].pickup_id, |
| 1389 | 1633 | sto_sele_distr: e.data.data.pageData[0].distr_type |
| 1390 | 1634 | }); |
| 1635 | + th.data.fir_def_store=e.data.data.pageData[0]; | |
| 1391 | 1636 | } |
| 1392 | 1637 | |
| 1393 | 1638 | //-- 如果有默认选择门店的时候,要把默认门店放在第一位 -- |
| ... | ... | @@ -1401,152 +1646,260 @@ Page({ |
| 1401 | 1646 | e.data.data.pageData.splice(0, 0, th.data.def_pick_store); //添加 |
| 1402 | 1647 | } |
| 1403 | 1648 | |
| 1404 | - /*---- | |
| 1405 | - //--获取线下库存-- | |
| 1406 | - if(th.data.sales_rules){ | |
| 1407 | - | |
| 1408 | - }---*/ | |
| 1409 | 1649 | |
| 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 | - } | |
| 1650 | + th.setData({all_pick_list:e.data.data.pageData}); | |
| 1651 | + | |
| 1652 | + //--获取线下库存,而且不是新的门店规则,同时不能是活动-- | |
| 1653 | + if(th.data.sales_rules==2 && !th.data.is_newsales_rules && th.data.prom_type!=1 && th.data.prom_type!=6){ | |
| 1654 | + setTimeout(function(){ | |
| 1655 | + th.deal_pickup_dline(e); | |
| 1656 | + },800) | |
| 1657 | + }else{ | |
| 1658 | + setTimeout(function(){ | |
| 1659 | + th.deal_pickup(e); //--普通门店排版-- | |
| 1660 | + },800) | |
| 1661 | + } | |
| 1662 | + } | |
| 1546 | 1663 | }) |
| 1547 | 1664 | }, 200) |
| 1548 | 1665 | |
| 1549 | - | |
| 1666 | + }, | |
| 1667 | + | |
| 1668 | + //------------处理门店--------------- | |
| 1669 | + deal_pickup(e){ | |
| 1670 | + var th=this; | |
| 1671 | + //单总量超出5个的时候 | |
| 1672 | + if (e.data.data.total > 5) { | |
| 1673 | + getApp().request.get("/api/weshop/storagecategory/page", { | |
| 1674 | + data: { | |
| 1675 | + store_id: o.stoid, | |
| 1676 | + is_show: 1, | |
| 1677 | + pageSize: 1000 | |
| 1678 | + }, | |
| 1679 | + success: function(ee) { | |
| 1680 | + if (ee.data.code == 0) { | |
| 1681 | + if (ee.data.data && ee.data.data.pageData && ee.data.data.pageData.length > 0) { | |
| 1682 | + var def_arr = new Array(); | |
| 1683 | + var ishas = 0; | |
| 1684 | + //-- 开始就看5个门店 -- | |
| 1685 | + for (var k = 0; k < 5; k++) { | |
| 1686 | + if (k == e.data.data.pageData.length) break; | |
| 1687 | + def_arr.push(e.data.data.pageData[k]); | |
| 1688 | + } | |
| 1689 | + | |
| 1690 | + th.setData({ | |
| 1691 | + def_pickpu_list: def_arr, | |
| 1692 | + pickpu_list: ee.data.data.pageData | |
| 1693 | + }); | |
| 1694 | + var sto_cate = ee.data.data.pageData; | |
| 1695 | + var sto_arr = e.data.data.pageData; | |
| 1696 | + var newarr = new Array(); | |
| 1697 | + var qita = new Array(); | |
| 1698 | + | |
| 1699 | + //----要进行门店分组-------- | |
| 1700 | + for (var i = 0; i < sto_arr.length; i++) { | |
| 1701 | + //找一下这个门店有没有在分类数组内 | |
| 1702 | + var find2 = 0, | |
| 1703 | + find2name = ""; | |
| 1704 | + for (var m = 0; m < sto_cate.length; m++) { | |
| 1705 | + if (sto_arr[i].category_id == sto_cate[m].cat_id) { | |
| 1706 | + find2 = sto_cate[m].cat_id; | |
| 1707 | + find2name = sto_cate[m].cat_name; | |
| 1708 | + break; | |
| 1709 | + } | |
| 1710 | + } | |
| 1711 | + | |
| 1712 | + if (newarr.length > 0) { | |
| 1713 | + var find = 0; | |
| 1714 | + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
| 1715 | + if (find2 != 0) { | |
| 1716 | + for (var ii = 0; ii < newarr.length; ii++) { | |
| 1717 | + if (sto_arr[i].category_id == newarr[ii].cat_id) { | |
| 1718 | + newarr[ii].s_arr.push(sto_arr[i]); | |
| 1719 | + find = 1; | |
| 1720 | + break; | |
| 1721 | + } | |
| 1722 | + } | |
| 1723 | + if (find == 0) { | |
| 1724 | + var arr0 = new Array(); | |
| 1725 | + arr0.push(sto_arr[i]); | |
| 1726 | + var item = { | |
| 1727 | + cat_id: find2, | |
| 1728 | + name: find2name, | |
| 1729 | + s_arr: arr0 | |
| 1730 | + }; | |
| 1731 | + newarr.push(item); | |
| 1732 | + } | |
| 1733 | + } else { | |
| 1734 | + qita.push(sto_arr[i]); | |
| 1735 | + } | |
| 1736 | + } else { | |
| 1737 | + //如果有找到,那门店就在这个分组内,否则,分类就要排在其他 | |
| 1738 | + if (find2 != 0) { | |
| 1739 | + var arr0 = new Array(); | |
| 1740 | + arr0.push(sto_arr[i]); | |
| 1741 | + var item = { | |
| 1742 | + cat_id: find2, | |
| 1743 | + name: find2name, | |
| 1744 | + s_arr: arr0 | |
| 1745 | + }; | |
| 1746 | + newarr.push(item); | |
| 1747 | + } else { | |
| 1748 | + qita.push(sto_arr[i]); | |
| 1749 | + } | |
| 1750 | + } | |
| 1751 | + } | |
| 1752 | + | |
| 1753 | + //----安排其他的分类----- | |
| 1754 | + if (qita.length > 0) { | |
| 1755 | + var item = { | |
| 1756 | + cat_id: -1, | |
| 1757 | + name: "其他", | |
| 1758 | + s_arr: qita | |
| 1759 | + }; | |
| 1760 | + newarr.push(item); | |
| 1761 | + } | |
| 1762 | + th.setData({ | |
| 1763 | + is_show_sto_cat: 1, | |
| 1764 | + all_sto: newarr | |
| 1765 | + }); | |
| 1766 | + | |
| 1767 | + } else { | |
| 1768 | + th.setData({ | |
| 1769 | + is_show_sto_cat: -1, | |
| 1770 | + only_pk: e.data.data.pageData | |
| 1771 | + }); | |
| 1772 | + //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ | |
| 1773 | + if (!th.data.def_pick_store) { | |
| 1774 | + th.setData({def_pick_store:e.data.data.pageData[0]}) | |
| 1775 | + } | |
| 1776 | + } | |
| 1777 | + } else { | |
| 1778 | + th.setData({ | |
| 1779 | + is_show_sto_cat: -1, | |
| 1780 | + only_pk: e.data.data.pageData | |
| 1781 | + }); | |
| 1782 | + //-----如果没有默认门店,要取第一个门店作为默认店.此时没有门店分类的情况------ | |
| 1783 | + if (!th.data.def_pick_store) { | |
| 1784 | + th.setData({def_pick_store:e.data.data.pageData[0]}) | |
| 1785 | + } | |
| 1786 | + | |
| 1787 | + } | |
| 1788 | + } | |
| 1789 | + }); | |
| 1790 | + } else { | |
| 1791 | + th.setData({ | |
| 1792 | + is_show_sto_cat: 0, | |
| 1793 | + only_pk: e.data.data.pageData | |
| 1794 | + }); | |
| 1795 | + //-----如果没有默认门店,要取第一个门店作为默认店------ | |
| 1796 | + if (!th.data.def_pick_store && th.data.bconfig.is_sort_storage) { | |
| 1797 | + th.setData({ | |
| 1798 | + def_pick_store:e.data.data.pageData[0], | |
| 1799 | + sto_sele_name: e.data.data.pageData[0].pickup_name, | |
| 1800 | + sto_sele_id: e.data.data.pageData[0].pickup_id, | |
| 1801 | + sto_sele_distr: e.data.data.pageData[0].distr_type | |
| 1802 | + }) | |
| 1803 | + } | |
| 1804 | + } | |
| 1805 | + | |
| 1806 | + }, | |
| 1807 | + //------------处理线下门店库存-------- | |
| 1808 | + deal_pickup_dline(e){ | |
| 1809 | + var pkno=[],th=this; | |
| 1810 | + if(this.data.def_pick_store){ | |
| 1811 | + pkno.push(this.data.def_pick_store.pickup_no); | |
| 1812 | + } | |
| 1813 | + for(var i in e.data.data.pageData){ | |
| 1814 | + var item=e.data.data.pageData[i]; | |
| 1815 | + if(pkno.indexOf(item.pickup_no)<0) | |
| 1816 | + pkno.push(item.pickup_no); | |
| 1817 | + } | |
| 1818 | + var pkno_str=pkno.join(","); | |
| 1819 | + var o_plist=e.data.data.pageData; | |
| 1820 | + var new_list=[]; | |
| 1821 | + var is_find_def_store=0; | |
| 1822 | + | |
| 1823 | + var lock=[]; | |
| 1824 | + //先读取门店的lock,采用链式写法,少用await | |
| 1825 | + getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 1826 | + data:{store_id:os.stoid,wareId:th.data.sele_g.goods_id,pageSize:1000} | |
| 1827 | + }).then(res=>{ | |
| 1828 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 1829 | + lock=res.data.data.pageData | |
| 1830 | + } | |
| 1831 | + //---通过接口获取门店的线下库存信息-- | |
| 1832 | + return getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 1833 | + data:{storageNos:pkno_str,wareIds:encodeURIComponent(th.data.sele_g.erpwareid),storeId:os.stoid} | |
| 1834 | + }) | |
| 1835 | + }).then(res=>{ | |
| 1836 | + if(res.data.code==0){ | |
| 1837 | + if(res.data.data.pageData){ | |
| 1838 | + var plist=res.data.data.pageData; | |
| 1839 | + var def_pick_store=th.data.def_pick_store; | |
| 1840 | + //以原来的数组为外循环,保证距离的顺序 | |
| 1841 | + for(var kk in o_plist){ | |
| 1842 | + for(var ii in plist){ | |
| 1843 | + //线下的门店小心 | |
| 1844 | + var n_item=plist[ii]; | |
| 1845 | + if(n_item.StorageNo==o_plist[kk].pickup_no){ | |
| 1846 | + | |
| 1847 | + //拿到锁库的数量 | |
| 1848 | + var lock_num=th.find_lock_num(o_plist[kk].pickup_id,lock); | |
| 1849 | + //可出库数大于预出库库存的数量,可以判断为有库存 | |
| 1850 | + if(n_item.CanOutQty>lock_num){ | |
| 1851 | + o_plist[kk].CanOutQty=n_item.CanOutQty-lock_num; | |
| 1852 | + new_list.push(o_plist[kk]); | |
| 1853 | + //如果找到默认门店 | |
| 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; | |
| 1859 | + } | |
| 1860 | + } | |
| 1861 | + break; | |
| 1862 | + } | |
| 1863 | + } | |
| 1864 | + } | |
| 1865 | + | |
| 1866 | + //数据组装下 | |
| 1867 | + var em={};em.data={};em.data.data={}; | |
| 1868 | + em.data.data.total=new_list.length; | |
| 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 | + | |
| 1882 | + //---把数组组装进去--- | |
| 1883 | + th.deal_pickup(em); | |
| 1884 | + }else{ | |
| 1885 | + th.setData({def_pick_store:null,all_sto:null,only_pk:null}) | |
| 1886 | + } | |
| 1887 | + }else{ | |
| 1888 | + th.setData({def_pick_store:null,all_sto:null,only_pk:null}) | |
| 1889 | + } | |
| 1890 | + }) | |
| 1891 | + }, | |
| 1892 | + | |
| 1893 | + find_lock_num(pick_id,lock){ | |
| 1894 | + var lock_num=0; | |
| 1895 | + if(!lock) return 0; | |
| 1896 | + if(lock.length<0) return 0; | |
| 1897 | + for(var i in lock){ | |
| 1898 | + if(pick_id==lock[i].pickupId){ | |
| 1899 | + lock_num+=lock[i].outQty; | |
| 1900 | + } | |
| 1901 | + } | |
| 1902 | + return lock_num; | |
| 1550 | 1903 | }, |
| 1551 | 1904 | |
| 1552 | 1905 | //----------取货门店被点击的效果------ |
| ... | ... | @@ -1707,6 +2060,7 @@ Page({ |
| 1707 | 2060 | isshow: 1, |
| 1708 | 2061 | }); |
| 1709 | 2062 | ee.get_sku(os.stoid, ee.data.data.sku, gid); |
| 2063 | + ee.get_sto(); | |
| 1710 | 2064 | return false; |
| 1711 | 2065 | } |
| 1712 | 2066 | //----已经过期----- |
| ... | ... | @@ -1727,6 +2081,7 @@ Page({ |
| 1727 | 2081 | isshow: 1, |
| 1728 | 2082 | }); |
| 1729 | 2083 | ee.get_sku(os.stoid, ee.data.data.sku, gid); |
| 2084 | + ee.get_sto(); | |
| 1730 | 2085 | return false; |
| 1731 | 2086 | } |
| 1732 | 2087 | |
| ... | ... | @@ -1744,6 +2099,8 @@ Page({ |
| 1744 | 2099 | prom_start_time: prom_start_time, |
| 1745 | 2100 | isshow: 1, |
| 1746 | 2101 | }); |
| 2102 | + | |
| 2103 | + ee.get_sto(); | |
| 1747 | 2104 | |
| 1748 | 2105 | |
| 1749 | 2106 | var newTime = ut.gettimestamp(); |
| ... | ... | @@ -1798,6 +2155,7 @@ Page({ |
| 1798 | 2155 | isshow: 1, |
| 1799 | 2156 | }); |
| 1800 | 2157 | ee.get_sku(os.stoid, ee.data.data.sku, gid); |
| 2158 | + ee.get_sto(); | |
| 1801 | 2159 | return false; |
| 1802 | 2160 | } |
| 1803 | 2161 | //----已经结束----- |
| ... | ... | @@ -1817,6 +2175,7 @@ Page({ |
| 1817 | 2175 | isshow: 1, |
| 1818 | 2176 | }); |
| 1819 | 2177 | ee.get_sku(os.stoid, ee.data.data.sku, gid); |
| 2178 | + ee.get_sto(); | |
| 1820 | 2179 | return false; |
| 1821 | 2180 | } |
| 1822 | 2181 | |
| ... | ... | @@ -1827,6 +2186,7 @@ Page({ |
| 1827 | 2186 | isshow: 1, |
| 1828 | 2187 | }); |
| 1829 | 2188 | ee.get_sku(os.stoid, ee.data.data.sku, gid); |
| 2189 | + ee.get_sto(); | |
| 1830 | 2190 | return false; |
| 1831 | 2191 | } |
| 1832 | 2192 | |
| ... | ... | @@ -1891,7 +2251,7 @@ Page({ |
| 1891 | 2251 | t.data.data.ct_rylist = JSON.parse(t.data.data.ct_rylist); |
| 1892 | 2252 | var max_num = 0; |
| 1893 | 2253 | t.data.data.ct_rylist.forEach(function(val, ind) { |
| 1894 | - if (val.rynum > max_num) max_num = val.rynum; | |
| 2254 | + if (parseInt(val.rynum) > max_num) max_num = parseInt(val.rynum); | |
| 1895 | 2255 | }) |
| 1896 | 2256 | t.data.data.max_ct_num = max_num; |
| 1897 | 2257 | } |
| ... | ... | @@ -1908,6 +2268,8 @@ Page({ |
| 1908 | 2268 | prom_start_time: prom_start_time, |
| 1909 | 2269 | isshow: 1, |
| 1910 | 2270 | }); |
| 2271 | + | |
| 2272 | + ee.get_sto(); | |
| 1911 | 2273 | |
| 1912 | 2274 | var newTime = now; |
| 1913 | 2275 | var endTime2 = t.data.data.end_time; |
| ... | ... | @@ -2257,6 +2619,10 @@ Page({ |
| 2257 | 2619 | title: '提示', |
| 2258 | 2620 | content: '超出商品限购' |
| 2259 | 2621 | }); |
| 2622 | + | |
| 2623 | + var num=th.data.prom_buy_limit-th.data.prom_buy_num; | |
| 2624 | + if(num<0) num=0; | |
| 2625 | + th.setData({goodsInputNum:num}) | |
| 2260 | 2626 | return false; |
| 2261 | 2627 | } |
| 2262 | 2628 | } |
| ... | ... | @@ -2267,6 +2633,10 @@ Page({ |
| 2267 | 2633 | title: '提示', |
| 2268 | 2634 | content: '超出商品活动限购' |
| 2269 | 2635 | }); |
| 2636 | + | |
| 2637 | + var num=th.data.prom_buy_limit-th.data.prom_buy_num; | |
| 2638 | + if(num<0) num=0; | |
| 2639 | + th.setData({goodsInputNum:num}) | |
| 2270 | 2640 | return false; |
| 2271 | 2641 | } |
| 2272 | 2642 | } |
| ... | ... | @@ -2286,12 +2656,19 @@ Page({ |
| 2286 | 2656 | title: '提示', |
| 2287 | 2657 | content: '超出商品活动库存' |
| 2288 | 2658 | }); |
| 2659 | + | |
| 2660 | + th.setData({goodsInputNum:redis_num}) | |
| 2661 | + | |
| 2289 | 2662 | return false; |
| 2290 | 2663 | } |
| 2291 | 2664 | } |
| 2292 | 2665 | |
| 2293 | 2666 | if (th.data.goodsInputNum <= 0) return s.my_warnning("商品数量不能为0", 0, th); |
| 2294 | - if (th.data.goodsInputNum > o.store_count) return s.my_warnning("超出商品库存", 0, th); | |
| 2667 | + if (th.data.goodsInputNum > o.store_count) { | |
| 2668 | + th.setData({goodsInputNum:o.store_count}) | |
| 2669 | + return s.my_warnning("超出商品库存", 0, th); | |
| 2670 | + } | |
| 2671 | + | |
| 2295 | 2672 | if (th.data.sto_sele_name == null || th.data.sto_sele_name == undefined) |
| 2296 | 2673 | this.setData({ |
| 2297 | 2674 | sto_sele_name: "" |
| ... | ... | @@ -3107,9 +3484,24 @@ Page({ |
| 3107 | 3484 | // 选择门店 |
| 3108 | 3485 | choice_store: function(ee) { |
| 3109 | 3486 | var th = this; |
| 3110 | - //var ind=ee.currentTarget.dataset.ind; | |
| 3487 | + var ind=ee.currentTarget.dataset.ind; | |
| 3111 | 3488 | var bconfig = th.data.bconfig; |
| 3112 | - | |
| 3489 | + | |
| 3490 | + if(!th.data.only_pk && !th.data.def_pickpu_list){ | |
| 3491 | + getApp().confirmBox("门店库存不足", null, 25000, !1); | |
| 3492 | + return false; | |
| 3493 | + } | |
| 3494 | + | |
| 3495 | + if(th.data.only_pk && !th.data.only_pk.length){ | |
| 3496 | + getApp().confirmBox("门店库存不足", null, 25000, !1); | |
| 3497 | + return false; | |
| 3498 | + } | |
| 3499 | + if(th.data.def_pickpu_list && !th.data.def_pickpu_list.length){ | |
| 3500 | + getApp().confirmBox("门店库存不足", null, 25000, !1); | |
| 3501 | + return false; | |
| 3502 | + } | |
| 3503 | + | |
| 3504 | + | |
| 3113 | 3505 | if (bconfig.is_sort_storage) { |
| 3114 | 3506 | wx.getLocation({ |
| 3115 | 3507 | type: 'wgs84', |
| ... | ... | @@ -3147,23 +3539,64 @@ Page({ |
| 3147 | 3539 | th.data.is_get_local_ok = 1; |
| 3148 | 3540 | th.get_sto(); |
| 3149 | 3541 | } |
| 3150 | - | |
| 3151 | - this.setData({ | |
| 3152 | - //open_ind_store: ind, | |
| 3153 | - store: 1, | |
| 3154 | - openSpecModal: !1, | |
| 3155 | - openSpecModal_pt: !1 | |
| 3156 | - }) | |
| 3542 | + | |
| 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 | + } | |
| 3157 | 3557 | }, |
| 3158 | 3558 | //关闭选择门店 |
| 3159 | 3559 | close_popup: function(e) { |
| 3160 | - | |
| 3560 | + var th=this; | |
| 3161 | 3561 | this.setData({ |
| 3162 | 3562 | store: 0, |
| 3163 | 3563 | choice_sort_store: 0, |
| 3164 | - sort_store: 0 | |
| 3564 | + sort_store: 0, | |
| 3565 | + fir_pick_index:0, | |
| 3566 | + sec_pick_index:0 | |
| 3165 | 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 | + | |
| 3166 | 3598 | }, |
| 3599 | + | |
| 3167 | 3600 | //选择更多门店 |
| 3168 | 3601 | more_store: function() { |
| 3169 | 3602 | this.setData({ |
| ... | ... | @@ -3193,16 +3626,61 @@ Page({ |
| 3193 | 3626 | sec_pick_index: 0 |
| 3194 | 3627 | }); |
| 3195 | 3628 | }, |
| 3196 | - | |
| 3197 | - | |
| 3198 | - | |
| 3629 | + | |
| 3199 | 3630 | choose_for_store_fir: function(e) { |
| 3200 | 3631 | var index_c = e.currentTarget.dataset.ind; |
| 3201 | - | |
| 3202 | - this.setData({ | |
| 3203 | - fir_pick_index: index_c | |
| 3632 | + var th=this; | |
| 3633 | + th.setData({ | |
| 3634 | + fir_pick_index: index_c | |
| 3204 | 3635 | }) |
| 3636 | + | |
| 3205 | 3637 | }, |
| 3638 | + | |
| 3639 | + //如果开启线下库存,已经急速库存才会使用 | |
| 3640 | + async check_the_pick(item,func){ | |
| 3641 | + var th=this; | |
| 3642 | + var goodsinfo=th.data.sele_g; | |
| 3643 | + var erpwareid=goodsinfo.erpwareid; | |
| 3644 | + var plist=null; | |
| 3645 | + var lock=0; | |
| 3646 | + | |
| 3647 | + //---如果是活动的时候--- | |
| 3648 | + if(th.data.prom_type==1 || th.data.prom_type==6){ | |
| 3649 | + func(); return false; | |
| 3650 | + } | |
| 3651 | + | |
| 3652 | + if(this.data.sales_rules!=2 && this.data.is_newsales_rules!=1){ | |
| 3653 | + func(); | |
| 3654 | + }else{ | |
| 3655 | + | |
| 3656 | + //先读取门店的lock | |
| 3657 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 3658 | + data:{store_id:os.stoid,wareId:goodsinfo.goods_id,storageId:item.pickup_id,pageSize:1000} | |
| 3659 | + }).then(res=>{ | |
| 3660 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 3661 | + for(var i in res.data.data.pageData ) | |
| 3662 | + lock+=res.data.data.pageData[i].outQty; | |
| 3663 | + } | |
| 3664 | + }) | |
| 3665 | + //读取线下的门店库存 | |
| 3666 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 3667 | + data:{storageNos:item.pickup_no,wareIds:encodeURIComponent(erpwareid),storeId:os.stoid} | |
| 3668 | + }).then(res=>{ | |
| 3669 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 3670 | + plist=res.data.data.pageData[0]; | |
| 3671 | + } | |
| 3672 | + }) | |
| 3673 | + | |
| 3674 | + if(plist && plist.CanOutQty-lock>0){ | |
| 3675 | + item.CanOutQty=plist.CanOutQty-lock; | |
| 3676 | + func(); | |
| 3677 | + return false; | |
| 3678 | + } | |
| 3679 | + getApp().my_warnning(item.pickup_name+"库存不足!", 0, th); | |
| 3680 | + | |
| 3681 | + } | |
| 3682 | + }, | |
| 3683 | + | |
| 3206 | 3684 | |
| 3207 | 3685 | //确定def_pick为选择的门店 |
| 3208 | 3686 | sure_pick: function(e) { |
| ... | ... | @@ -3222,142 +3700,142 @@ Page({ |
| 3222 | 3700 | var index = th.data.sec_pick_index; |
| 3223 | 3701 | item = th.data.sec_sto.s_arr[index]; |
| 3224 | 3702 | } |
| 3225 | - th.setData({ | |
| 3226 | - def_pick_store: item, | |
| 3227 | - sto_sele_name: item.pickup_name, | |
| 3228 | - sto_sele_id: item.pickup_id, | |
| 3229 | - sto_sele_distr: item.distr_type, | |
| 3230 | - store: 0, | |
| 3231 | - choice_sort_store: 0, | |
| 3232 | - fir_pick_index: 0 | |
| 3233 | - }); | |
| 3234 | - | |
| 3235 | - if (openindstore == 1) { | |
| 3236 | - th.setData({ | |
| 3237 | - openSpecModal: !0, | |
| 3238 | - openSpecModal_ind: openindstore, | |
| 3239 | - }); | |
| 3240 | - } else if (openindstore == 2) { | |
| 3241 | - th.setData({ | |
| 3242 | - openSpecModal: !0, | |
| 3243 | - openSpecModal_ind: openindstore, | |
| 3244 | - }); | |
| 3245 | - } | |
| 3246 | - else if (openindstore == 4) { //4就是拼团 | |
| 3247 | - th.setData({ | |
| 3248 | - openSpecModal_pt: 1, //打开拼团购买界面 | |
| 3249 | - store: 0, //关闭门店 | |
| 3250 | - choice_sort_store: 0, //关闭门店2级 | |
| 3251 | - sort_store: 0, //关闭门店2级 | |
| 3252 | - }); | |
| 3253 | - } | |
| 3254 | - | |
| 3255 | - else { | |
| 3256 | - th.setData({ | |
| 3257 | - store: 0, | |
| 3258 | - choice_sort_store: 0, | |
| 3259 | - sort_store: 0 | |
| 3260 | - }) | |
| 3261 | - } | |
| 3262 | - | |
| 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 | + }) | |
| 3263 | 3743 | }, |
| 3264 | 3744 | //---点击二级之后的选择--- |
| 3265 | 3745 | choose_for_store: function(e) { |
| 3266 | 3746 | var index_c = e.currentTarget.dataset.ind; |
| 3267 | - | |
| 3268 | - this.setData({ | |
| 3269 | - sec_pick_index: index_c, | |
| 3270 | - fir_pick_index: index_c | |
| 3271 | - }) | |
| 3747 | + var th=this; | |
| 3748 | + th.setData({ | |
| 3749 | + sec_pick_index: index_c, | |
| 3750 | + fir_pick_index: index_c | |
| 3751 | + }) | |
| 3752 | + | |
| 3272 | 3753 | }, |
| 3273 | 3754 | //把选择的门店设置成默认的门店def_pick |
| 3274 | 3755 | set_def_pick: function(e) { |
| 3275 | 3756 | var th = this; |
| 3276 | 3757 | var item = null; |
| 3277 | - | |
| 3278 | 3758 | if (th.data.choice_sort_store == 0) { |
| 3279 | - | |
| 3280 | 3759 | var index = th.data.fir_pick_index; |
| 3281 | - | |
| 3282 | 3760 | if (th.data.is_show_sto_cat == 1) { |
| 3283 | 3761 | item = th.data.def_pickpu_list[index]; |
| 3284 | 3762 | } else { |
| 3285 | 3763 | item = th.data.only_pk[index]; //当没有门店分类的时候 |
| 3286 | - | |
| 3287 | 3764 | } |
| 3288 | 3765 | } else { |
| 3289 | 3766 | var index = th.data.sec_pick_index; |
| 3290 | 3767 | item = th.data.sec_sto.s_arr[index]; |
| 3291 | 3768 | } |
| 3292 | - | |
| 3293 | - var store_id = o.stoid; | |
| 3294 | - var user_id = getApp().globalData.user_id; | |
| 3295 | - var def_pickup_id = item.pickup_id; | |
| 3296 | - | |
| 3297 | - getApp().request.put('/api/weshop/users/update', { | |
| 3298 | - data: { | |
| 3299 | - user_id, | |
| 3300 | - def_pickup_id | |
| 3301 | - }, | |
| 3302 | - success: function(res) { | |
| 3303 | - if (res.data.code == 0) { | |
| 3304 | - if (th.data.choice_sort_store == 0) th.setData({ | |
| 3305 | - fir_pick_index: 0 | |
| 3306 | - }); | |
| 3307 | - getApp().globalData.pk_store = item; | |
| 3308 | - } else { | |
| 3309 | - //s.showWarning("设置默认门店地址失败", null, 500, !1); | |
| 3310 | - getApp().my_warnning("设置默认门店地址失败",0,th) | |
| 3311 | - } | |
| 3312 | - | |
| 3313 | - } | |
| 3314 | - }); | |
| 3315 | - | |
| 3316 | - th.setData({ | |
| 3317 | - def_pick_store: item, | |
| 3318 | - sto_sele_name: item.pickup_name, | |
| 3319 | - sto_sele_id: item.pickup_id, | |
| 3320 | - sto_sele_distr: item.distr_type, | |
| 3321 | - store: 0, | |
| 3322 | - choice_sort_store: 0 | |
| 3323 | - }); | |
| 3324 | - | |
| 3325 | - | |
| 3326 | - var openindstore = th.data.open_ind_store; | |
| 3327 | - if (openindstore == 1) { | |
| 3328 | - th.setData({ | |
| 3329 | - openSpecModal: !0, | |
| 3330 | - openSpecModal_ind: openindstore, | |
| 3331 | - store: 0, | |
| 3332 | - choice_sort_store: 0, | |
| 3333 | - sort_store: 0, | |
| 3334 | - }); | |
| 3335 | - } else if (openindstore == 2) { | |
| 3336 | - th.setData({ | |
| 3337 | - openSpecModal: !0, | |
| 3338 | - openSpecModal_ind: openindstore, | |
| 3339 | - store: 0, | |
| 3340 | - choice_sort_store: 0, | |
| 3341 | - sort_store: 0, | |
| 3342 | - }); | |
| 3343 | - } | |
| 3344 | - else if (openindstore == 4) { //4就是拼团 | |
| 3345 | - th.setData({ | |
| 3346 | - openSpecModal_pt: 1, //打开拼团购买界面 | |
| 3347 | - store: 0, //关闭门店 | |
| 3348 | - choice_sort_store: 0, //关闭门店2级 | |
| 3349 | - sort_store: 0, //关闭门店2级 | |
| 3350 | - }); | |
| 3351 | - } | |
| 3352 | - | |
| 3353 | - else { | |
| 3354 | - th.setData({ | |
| 3355 | - store: 0, | |
| 3356 | - choice_sort_store: 0, | |
| 3357 | - sort_store: 0, | |
| 3358 | - }) | |
| 3359 | - } | |
| 3360 | - | |
| 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 | + }) | |
| 3361 | 3839 | }, |
| 3362 | 3840 | |
| 3363 | 3841 | wait_for_store_config: function() { |
| ... | ... | @@ -3453,7 +3931,19 @@ Page({ |
| 3453 | 3931 | }, |
| 3454 | 3932 | go_card_info:function(){ |
| 3455 | 3933 | getApp().goto("/pages/user/cardinfo/cardinfo"); |
| 3934 | + }, | |
| 3935 | + //-- 根据ID拿出门店 -- | |
| 3936 | + get_pick_from_list(pid){ | |
| 3937 | + var all_pick_list=this.data.all_pick_list; | |
| 3938 | + for(var i in all_pick_list){ | |
| 3939 | + var item=all_pick_list[i]; | |
| 3940 | + if(item.pickup_id==pid){ | |
| 3941 | + return item; | |
| 3942 | + } | |
| 3943 | + } | |
| 3456 | 3944 | } |
| 3945 | + | |
| 3946 | + | |
| 3457 | 3947 | |
| 3458 | 3948 | |
| 3459 | 3949 | }); | ... | ... |
pages/goods/goodsInfo/goodsInfo.wxml
| ... | ... | @@ -94,7 +94,7 @@ |
| 94 | 94 | <view class="word-line fs20 xc-qtunit-price">零售价¥{{data.market_price}}</view> |
| 95 | 95 | </view> |
| 96 | 96 | <view class="abs white xc-nanber"> |
| 97 | - <text class="fs22">已拼{{prom_act.buy_num}}份</text> | |
| 97 | + <text class="fs22">已拼{{prom_act.buy_num}}件</text> | |
| 98 | 98 | <view class="flex" style='margin-top:-34rpx'> |
| 99 | 99 | <view class="xc-people-img"> |
| 100 | 100 | <image class="imgs" src="{{prom_st==1? iurl+'/miniapp/images/r_logo_red.png':iurl+'/miniapp/images/r_logo.png'}}"></image> |
| ... | ... | @@ -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> |
| ... | ... | @@ -733,10 +741,16 @@ |
| 733 | 741 | |
| 734 | 742 | <!-------------------底部按钮--------------------> |
| 735 | 743 | <view class="join-cart"> |
| 736 | - <view bindtap="contactService" class="custom-service cart-ico new_split"> | |
| 744 | + <!-- bindtap="contactService" --> | |
| 745 | + <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 | 746 | <image class="cs-img" src="{{iurl}}/miniapp/images/custom-service.png"></image> |
| 738 | 747 | <view>客服</view> |
| 739 | - </view> | |
| 748 | + </button> | |
| 749 | + <view wx:else class="custom-service cart-ico new_split" bindtap="contactService"> | |
| 750 | + <image class="cs-img" src="{{iurl}}/miniapp/images/custom-service.png"></image> | |
| 751 | + <view>客服</view> | |
| 752 | + </view> | |
| 753 | + | |
| 740 | 754 | <view bindtap="collectGoods" class="custom-service cart-ico new_split"> |
| 741 | 755 | <image hidden="{{is_collect}}" class="cs-img" src="{{iurl}}/miniapp/images/heart.png"></image> |
| 742 | 756 | <image hidden="{{!is_collect}}" class="cs-img" src="{{iurl}}/miniapp/images/heart-h.png"></image> |
| ... | ... | @@ -751,18 +765,17 @@ |
| 751 | 765 | </view> |
| 752 | 766 | <view bindtap="openSpecModel" class="buy-btn cart-btn cart-btn-lg" wx:if="{{data.goods.is_virtual}}">立即购买</view> |
| 753 | 767 | |
| 754 | - <!---- 普通商品购买 -----> | |
| 768 | + <!-- 普通商品购买 --> | |
| 755 | 769 | <block wx:if="{{prom_type==0 || prom_type==2 || prom_type==3 || prom_type==4}}"> |
| 756 | 770 | |
| 757 | - <block wx:if="{{sele_g.store_count>0}}"> | |
| 771 | + <!-- 线上销售的时候,要判断库存量, 线下库存的时候不用判断 --> | |
| 772 | + <block wx:if="{{(sele_g.store_count>0 && sales_rules==1) || sales_rules==2 }}"> | |
| 758 | 773 | <view bindtap="openSpecModel" data-ind="1" class="join-btn cart-btn">加入购物车</view> |
| 759 | 774 | <view bindtap="openSpecModel" data-ind="2" class="buy-btn cart-btn">立即购买</view> |
| 760 | 775 | </block> |
| 761 | - <block wx:else> | |
| 762 | - <view class="is_stock cart-btn is_stock xc-ash-b " style="width:55.5%"> | |
| 763 | - 库存不足 | |
| 764 | - </view> | |
| 765 | - </block> | |
| 776 | + <block wx:else> | |
| 777 | + <view class="is_stock cart-btn is_stock xc-ash-b " style="width:55.5%">库存不足</view> | |
| 778 | + </block> | |
| 766 | 779 | |
| 767 | 780 | </block> |
| 768 | 781 | |
| ... | ... | @@ -862,7 +875,13 @@ |
| 862 | 875 | <block wx:if="{{prom_type==0}}"> |
| 863 | 876 | <view class="flex"> |
| 864 | 877 | <view class="spec-goods-stock">已售:{{sele_g.sales_sum}}</view> |
| 865 | - <view class="spec-goods-stock">可售:{{sele_g.store_count}}</view> | |
| 878 | + <block wx:if="{{sales_rules==2}}"> | |
| 879 | + <view class="spec-goods-stock" wx:if="{{def_pick_store && def_pick_store.CanOutQty}}">可售:{{def_pick_store.CanOutQty}}</view> | |
| 880 | + <view class="spec-goods-stock" wx:else>可售:0</view> | |
| 881 | + </block> | |
| 882 | + <block wx:else> | |
| 883 | + <view class="spec-goods-stock">可售:{{sele_g.store_count}}</view> | |
| 884 | + </block> | |
| 866 | 885 | |
| 867 | 886 | </view> |
| 868 | 887 | </block> |
| ... | ... | @@ -872,7 +891,7 @@ |
| 872 | 891 | <view class="spec-goods-stock" wx:else >已售:{{prom_act.buy_num}}</view> |
| 873 | 892 | <view class="spec-goods-stock">可售:{{prom_act.goods_num-prom_act.buy_num}}</view> |
| 874 | 893 | |
| 875 | - | |
| 894 | + | |
| 876 | 895 | </view> |
| 877 | 896 | </block> |
| 878 | 897 | </view> |
| ... | ... | @@ -889,23 +908,31 @@ |
| 889 | 908 | </view> |
| 890 | 909 | |
| 891 | 910 | <!-- 没有门店的时候 --> |
| 892 | - <view class="flex" bindtap="choice_store"wx:else> | |
| 893 | - <image class="stores-img" src="{{iurl}}/miniapp/images/stores.png"></image> | |
| 894 | - <view class="fs28 xc-ash-9f">选择门店</view> | |
| 911 | + <view class="flex" bindtap="choice_store" wx:else> | |
| 912 | + <image class="stores-img" src="{{iurl}}/miniapp/images/stores.png"></image> | |
| 913 | + <view class="fs28 xc-ash-9f">选择门店</view> | |
| 895 | 914 | </view> |
| 896 | 915 | |
| 897 | 916 | <view class="red-co fs28" bindtap="choice_store" > |
| 898 | 917 | 更多门店 |
| 899 | 918 | <text class="right-arrow"></text> |
| 900 | 919 | </view> |
| 901 | - </view> | |
| 902 | - <view class="fs24 xc-ash-9f xc-distance-top "wx:if="{{def_pick_store}}">地址:{{def_pick_store.fulladdress}}</view> | |
| 920 | + </view> | |
| 921 | + <view wx:if="{{only_pk && !only_pk.length}}">(库存不足)</view> | |
| 922 | + <block wx:else> | |
| 923 | + <view wx:if="{{def_pickpu_list && !def_pickpu_list.length}}">(库存不足)</view> | |
| 924 | + <block wx:else> | |
| 925 | + <view wx:if="{{def_pick_store && !def_pick_store.CanOutQty && sales_rules==2 && prom_type==0}}">(库存不足)</view> | |
| 926 | + </block> | |
| 927 | + </block> | |
| 928 | + | |
| 929 | + <view class="fs24 xc-ash-9f xc-distance-top "wx:if="{{def_pick_store}}">地址:{{def_pick_store.fulladdress}}</view> | |
| 903 | 930 | </view> |
| 904 | 931 | |
| 905 | 932 | <!----商品的属性项目----> |
| 906 | 933 | <view class="xc-goods-attribute"> |
| 907 | 934 | <view hidden="{{ismend==1}}" class="spec-name">商品属性</view> |
| 908 | - <view hidden="{{ismend==1}}" class="flex"> | |
| 935 | + <view hidden="{{ismend==1}}" style="max-height: 120rpx;overflow-y: auto;"> | |
| 909 | 936 | <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 | 937 | {{item.gg}} |
| 911 | 938 | </view> |
| ... | ... | @@ -922,12 +949,57 @@ |
| 922 | 949 | </view> |
| 923 | 950 | </view> |
| 924 | 951 | </view> |
| 925 | - <view class="spec-cart-btns"> | |
| 926 | - | |
| 927 | - | |
| 928 | - <view wx:if="{{openSpecModal_ind==1}}" bindtap="addCart"data-openSpecModal_ind="{{openSpecModal_ind}}" class="spec-cart-btn yellow fs32" data-action="add">加入购物车</view> | |
| 929 | - <view wx:if="{{openSpecModal_ind==2}}" bindtap="addCart"data-openSpecModal_ind="{{openSpecModal_ind}}" class="spec-cart-btn spec-buy" data-action="buy">立即购买</view> | |
| 930 | - | |
| 952 | + <view class="spec-cart-btns"> | |
| 953 | + <!-- 根本就找不到门店 --> | |
| 954 | + <block wx:if="{{!only_pk && !def_pickpu_list}}"> | |
| 955 | + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999;">库存不足</view> | |
| 956 | + </block> | |
| 957 | + <block wx:else> | |
| 958 | + | |
| 959 | + | |
| 960 | + <block wx:if="{{only_pk.length && !only_pk.length}}"> | |
| 961 | + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999;">库存不足</view> | |
| 962 | + </block> | |
| 963 | + <block wx:else> | |
| 964 | + <block wx:if="{{def_pickpu_list && !def_pickpu_list.length}}"> | |
| 965 | + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">库存不足</view> | |
| 966 | + </block> | |
| 967 | + <block wx:else> | |
| 968 | + <block wx:if="{{!def_pick_store}}"> | |
| 969 | + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">请先选择门店</view> | |
| 970 | + </block> | |
| 971 | + <block wx:else> | |
| 972 | + <!-- 如果是线下库存购买的时候,且是普通商品购买的时候 --> | |
| 973 | + <block wx:if="{{sales_rules==2 && prom_type==0}}"> | |
| 974 | + <block wx:if="{{!def_pick_store.CanOutQty}}"> | |
| 975 | + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">库存不足</view> | |
| 976 | + </block> | |
| 977 | + <block wx:else> | |
| 978 | + <view wx:if="{{openSpecModal_ind==1}}" bindtap="addCart"data-openSpecModal_ind="{{openSpecModal_ind}}" | |
| 979 | + class="spec-cart-btn yellow fs32" data-action="add">加入购物车</view> | |
| 980 | + <view wx:if="{{openSpecModal_ind==2}}" bindtap="addCart"data-openSpecModal_ind="{{openSpecModal_ind}}" | |
| 981 | + class="spec-cart-btn spec-buy" data-action="buy">立即购买</view> | |
| 982 | + </block> | |
| 983 | + </block> | |
| 984 | + <!-- 线上销售 --> | |
| 985 | + <block wx:else> | |
| 986 | + <block wx:if="{{sele_g.store_count<=0}}"> | |
| 987 | + <view class="spec-cart-btn fs32" data-action="add" style="background-color: #dcdcdc;color: #999">库存不足</view> | |
| 988 | + </block> | |
| 989 | + <block wx:else> | |
| 990 | + <view wx:if="{{openSpecModal_ind==1}}" bindtap="addCart"data-openSpecModal_ind="{{openSpecModal_ind}}" | |
| 991 | + class="spec-cart-btn yellow fs32" data-action="add">加入购物车</view> | |
| 992 | + <view wx:if="{{openSpecModal_ind==2}}" bindtap="addCart"data-openSpecModal_ind="{{openSpecModal_ind}}" | |
| 993 | + class="spec-cart-btn spec-buy" data-action="buy">立即购买</view> | |
| 994 | + </block> | |
| 995 | + </block> | |
| 996 | + </block> | |
| 997 | + </block> | |
| 998 | + </block> | |
| 999 | + | |
| 1000 | + | |
| 1001 | + </block> | |
| 1002 | + | |
| 931 | 1003 | </view> |
| 932 | 1004 | |
| 933 | 1005 | <view class="clear"></view> |
| ... | ... | @@ -1062,7 +1134,7 @@ |
| 1062 | 1134 | <view>购买数量</view> |
| 1063 | 1135 | <view class="count"> |
| 1064 | 1136 | <view bindtap="subCartNum" class="sub">-</view> |
| 1065 | - <input bindblur="inputCartNum xc-val-fream" type="number" value="{{goodsInputNum}}"></input> | |
| 1137 | + <input bindblur="inputCartNum" class="xc-val-fream" type="number" value="{{goodsInputNum}}"></input> | |
| 1066 | 1138 | <view bindtap="addCartNum" class="add">+</view> |
| 1067 | 1139 | </view> |
| 1068 | 1140 | </view> |
| ... | ... | @@ -1281,7 +1353,8 @@ |
| 1281 | 1353 | <view class="fs28 xc-black3 address_name">{{item.pickup_name}}</view> |
| 1282 | 1354 | </view> |
| 1283 | 1355 | <view> |
| 1284 | - <view class="distance fs24 address-val"wx:if="{{item.distance!=null}}"> 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}}</view> | |
| 1356 | + <view class="distance fs24 address-val"wx:if="{{item.distance!=null}}"> | |
| 1357 | + 距离:{{item.distance>1000?filters.toFix(item.distance/1000,2)+"km":filters.toFix(item.distance,0)+"m"}}</view> | |
| 1285 | 1358 | </view> |
| 1286 | 1359 | </view> |
| 1287 | 1360 | <view class="fs24 xc-ash-9f">地址:{{item.fulladdress}}</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 { |
| ... | ... | @@ -2253,7 +2254,7 @@ right:17rpx; top:55rpx; |
| 2253 | 2254 | height: 90rpx; |
| 2254 | 2255 | } |
| 2255 | 2256 | .sn_height{ |
| 2256 | - height: 170rpx; | |
| 2257 | + min-height: 170rpx; height: auto;padding: 10rpx 0; | |
| 2257 | 2258 | } |
| 2258 | 2259 | .xc-address_frame .address_frame{ |
| 2259 | 2260 | width: 92%; |
| ... | ... | @@ -2560,4 +2561,10 @@ border-radius: 55rpx; |
| 2560 | 2561 | .carde_frame{ |
| 2561 | 2562 | height: 50rpx; |
| 2562 | 2563 | line-height: 18rpx |
| 2563 | -} | |
| 2564 | 2564 | \ No newline at end of file |
| 2565 | +} | |
| 2566 | + | |
| 2567 | +button.custom-service { line-height: normal; border: 0;} | |
| 2568 | +button.custom-service::after{ | |
| 2569 | + border: 0; | |
| 2570 | +} | |
| 2571 | +.no_store{color:#d60021; font-size: 26rpx;} | |
| 2565 | 2572 | \ No newline at end of file | ... | ... |
pages/goods/goodsList/goodsList.js
| ... | ... | @@ -97,10 +97,15 @@ Page({ |
| 97 | 97 | }, |
| 98 | 98 | requestGoodsList: function(t) { |
| 99 | 99 | var e = this; |
| 100 | - this.data.requestUrl = t, | |
| 101 | - t += "&orderField=" + e.data.tabname; | |
| 102 | - t += "&orderType=" + e.data.adname; | |
| 103 | - t +="&page=" + e.data.currentPage, | |
| 100 | + this.data.requestUrl = t; | |
| 101 | + | |
| 102 | + //不是商品分组的,不是默认排序的 | |
| 103 | + if(t.indexOf("group_id")==-1 || e.data.tabname!="goods_id" ){ | |
| 104 | + t += "&orderField=" + e.data.tabname; | |
| 105 | + t += "&orderType=" + e.data.adname; | |
| 106 | + } | |
| 107 | + | |
| 108 | + t +="&page=" + e.data.currentPage; | |
| 104 | 109 | a.request(t, |
| 105 | 110 | function(t) { |
| 106 | 111 | e.setData({is_go:1}); | ... | ... |
pages/index/index/index.js
| ... | ... | @@ -149,7 +149,8 @@ Page({ |
| 149 | 149 | data: { |
| 150 | 150 | store_id: os.stoid, |
| 151 | 151 | pageSize: 5, |
| 152 | - is_show: 1 | |
| 152 | + is_show: 1, | |
| 153 | + level:1 | |
| 153 | 154 | } |
| 154 | 155 | }).then(res => { |
| 155 | 156 | if (res.data.data) { |
| ... | ... | @@ -181,7 +182,7 @@ Page({ |
| 181 | 182 | //读取全局是否有弄自定义模板 |
| 182 | 183 | await api.get_template_fir(o.stoid).then(res => { |
| 183 | 184 | var data = res.data.data; |
| 184 | - if (data.length > 0) { | |
| 185 | + if (data && data.length > 0) { | |
| 185 | 186 | var temp_data = data[0]; |
| 186 | 187 | var t_arr = JSON.parse(temp_data.json_str); |
| 187 | 188 | th.setData({ | ... | ... |
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
| ... | ... | @@ -28,8 +28,19 @@ |
| 28 | 28 | <view>暂无收货地址</view> |
| 29 | 29 | </view> |
| 30 | 30 | |
| 31 | - <view class="address flex-level"> | |
| 32 | - <navigator bindtap="go_url" data-url="/pages/user/add_address/add_address">添加收货地址</navigator> | |
| 31 | + <view class="address flex jc_sb" style="width:76%; margin-left:12%"> | |
| 32 | + | |
| 33 | + <navigator bindtap="get_wx" class="ye"> | |
| 34 | + <view class="add">+</view> | |
| 35 | + <view class="addAddress">获取微信地址</view> | |
| 36 | + </navigator> | |
| 37 | + | |
| 38 | + <navigator bindtap="go_url" data-url="/pages/user/add_address/add_address"> | |
| 39 | + <view class="add">+</view> | |
| 40 | + <view class="addAddress">新建收货地址</view> | |
| 41 | + </navigator> | |
| 42 | + | |
| 43 | + | |
| 33 | 44 | </view> |
| 34 | 45 | </view> |
| 35 | 46 | |
| ... | ... | @@ -69,12 +80,17 @@ |
| 69 | 80 | |
| 70 | 81 | </view> |
| 71 | 82 | |
| 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 | 83 | \ No newline at end of file |
| 84 | + <!-- 新建收货地址 --> | |
| 85 | + <view class="new flex jc_sb"> | |
| 86 | + <navigator bindtap="get_wx" class="ye"> | |
| 87 | + <view class="add">+</view> | |
| 88 | + <view class="addAddress">获取微信地址</view> | |
| 89 | + </navigator> | |
| 90 | + | |
| 91 | + <navigator bindtap="go_url" data-url="/pages/user/add_address/add_address"> | |
| 92 | + <view class="add">+</view> | |
| 93 | + <view class="addAddress">新建收货地址</view> | |
| 94 | + </navigator> | |
| 95 | + </view> | |
| 96 | +</view> | |
| 97 | +<warn id="warn"></warn> | |
| 82 | 98 | \ 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
| 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); |
| ... | ... | @@ -344,14 +542,18 @@ Page({ |
| 344 | 542 | //-----删除订单----- |
| 345 | 543 | deleteOrderData: function(t) { |
| 346 | 544 | var th=this; |
| 347 | - var order_id=t.currentTarget.dataset.order_id; | |
| 545 | + var order_id=t.currentTarget.dataset.order_id; | |
| 546 | + var up_data={ | |
| 547 | + order_id: order_id,isdel:1 | |
| 548 | + }; | |
| 549 | + if(th.data.order.order_status!=6){ | |
| 550 | + up_data.order_status=5; | |
| 551 | + } | |
| 348 | 552 | wx.showModal({ |
| 349 | 553 | title: "是否删除订单?", |
| 350 | 554 | success: function(tt) { |
| 351 | - t.confirm && rq.put("/api/weshop/order/updatebyId", { | |
| 352 | - data: { | |
| 353 | - order_id: order_id, order_status: 5 | |
| 354 | - }, | |
| 555 | + tt.confirm && rq.put("/api/weshop/order/updatebyId", { | |
| 556 | + data: up_data, | |
| 355 | 557 | success: function (t) { |
| 356 | 558 | getApp().my_warnning("删除成功",1,th); |
| 357 | 559 | setTimeout(function () { |
| ... | ... | @@ -389,7 +591,48 @@ Page({ |
| 389 | 591 | if(item.order_amount==0 || item.user_money==0) return true; |
| 390 | 592 | } |
| 391 | 593 | return false; |
| 392 | - } | |
| 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 | + | |
| 393 | 636 | |
| 394 | 637 | |
| 395 | 638 | ... | ... |
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,278 @@ 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 | + | |
| 426 | + console.log("-----------------111-------------------"); | |
| 427 | + | |
| 428 | + if(good.prom_type==1 || good.prom_type==6){ | |
| 429 | + if(gg.prom_type!=good.prom_type) { | |
| 430 | + wx.showModal({ | |
| 431 | + title: '提示', | |
| 432 | + content: gg.goods_name+'商品的活动发生了变化' | |
| 433 | + }); | |
| 434 | + return false; | |
| 435 | + } | |
| 436 | + | |
| 437 | + }else{ | |
| 438 | + | |
| 439 | + if(gg.prom_type==1 || gg.prom_type==6){ | |
| 440 | + var prom=null; | |
| 441 | + //---如果是活动的时候--- | |
| 442 | + var prom=null,th=this; | |
| 443 | + if(gg.prom_type==1){ | |
| 444 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+gg.prom_id,{ | |
| 445 | + }).then(res=>{ | |
| 446 | + if(res.data.code==0){ | |
| 447 | + prom=res.data.data; | |
| 448 | + } | |
| 449 | + }) | |
| 450 | + } | |
| 451 | + if(gg.prom_type==6){ | |
| 452 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+gg.prom_id,{ | |
| 453 | + }).then(res=>{ | |
| 454 | + if(res.data.code==0){ | |
| 455 | + prom=res.data.data; | |
| 456 | + } | |
| 457 | + }) | |
| 458 | + } | |
| 459 | + | |
| 460 | + if(prom){ | |
| 461 | + var t_now=ut.gettimestamp(); | |
| 462 | + if(prom.is_end==0 && prom.start_time<t_now && prom.end_time>t_now){ | |
| 463 | + wx.showModal({ | |
| 464 | + title: '提示', | |
| 465 | + content: gg.goods_name+'商品的活动发生了变化' | |
| 466 | + }); | |
| 467 | + return false; | |
| 468 | + } | |
| 469 | + } | |
| 470 | + } | |
| 471 | + | |
| 472 | + | |
| 473 | + var isok=1; | |
| 474 | + var card_field=th.data.card_field; | |
| 475 | + //如果会员是等级会员,商品有等级价,且不是活动商品 | |
| 476 | + if(card_field && gg[card_field]>0){ | |
| 477 | + if (good.goods_price != gg[card_field]) isok = 0; | |
| 478 | + }else{ | |
| 479 | + if (good.goods_price != gg.shop_price) isok = 0; | |
| 480 | + | |
| 481 | + } | |
| 482 | + if(!isok){ | |
| 483 | + wx.showModal({ | |
| 484 | + title: '提示', | |
| 485 | + content: gg.goods_name+'商品的价格发生了变化' | |
| 486 | + }); | |
| 487 | + return false; | |
| 488 | + } | |
| 489 | + | |
| 490 | + //--如果是线下库存的时候-- | |
| 491 | + if(th.data.conf.sales_rules==2){ | |
| 492 | + var ob={}; | |
| 493 | + await th.check_down_line_next(gg,good.goods_num,order.pickup_id,function(obj){ | |
| 494 | + ob=obj; | |
| 495 | + }) | |
| 496 | + if(ob.code==-1){ | |
| 497 | + wx.showModal({ | |
| 498 | + title: '提示', | |
| 499 | + content: gg.goods_name+'门店库存不足' | |
| 500 | + }); | |
| 501 | + return false; | |
| 502 | + } | |
| 503 | + | |
| 504 | + }else{ | |
| 505 | + if(good.goods_num>store_count){ | |
| 506 | + wx.showModal({ | |
| 507 | + title: '提示', | |
| 508 | + content: gg.goods_name+'商品的库存不足' | |
| 509 | + }); | |
| 510 | + return false; | |
| 511 | + } | |
| 512 | + | |
| 513 | + } | |
| 514 | + } | |
| 515 | + | |
| 516 | + console.log("------------------------------------"); | |
| 517 | + | |
| 518 | + var prom=null; | |
| 519 | + //---如果是活动的时候--- | |
| 520 | + var prom=null,goodsinfo=good,th=this; | |
| 521 | + if(goodsinfo.prom_type==1){ | |
| 522 | + await getApp().request.promiseGet("/api/ms/flash_sale/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 523 | + }).then(res=>{ | |
| 524 | + if(res.data.code==0){ | |
| 525 | + prom=res.data.data; | |
| 526 | + } | |
| 527 | + }) | |
| 528 | + } | |
| 529 | + if(goodsinfo.prom_type==6){ | |
| 530 | + await getApp().request.promiseGet("/api/weshop/teamlist/get/"+os.stoid+"/"+goodsinfo.prom_id,{ | |
| 531 | + }).then(res=>{ | |
| 532 | + if(res.data.code==0){ | |
| 533 | + prom=res.data.data; | |
| 534 | + } | |
| 535 | + }) | |
| 536 | + } | |
| 537 | + //----------如果有活动,并且在进行中,就不计算线下库存--------------- | |
| 538 | + if(prom){ | |
| 539 | + var now=ut.gettimestamp(); | |
| 540 | + if(prom.is_end==1 && prom.end_time<now){ | |
| 541 | + wx.showModal({ | |
| 542 | + title: '提示', | |
| 543 | + content: goodsinfo.goods_name+'商品的活动已经结束' | |
| 544 | + }); | |
| 545 | + return false; | |
| 546 | + } | |
| 547 | + | |
| 548 | + buyed_mum2=promgoodsbuynum+good.goods_num; | |
| 549 | + if (buyed_mum2 > prom.buy_limit && prom.buy_limit > 0) { | |
| 550 | + wx.showModal({ | |
| 551 | + title: '提示', | |
| 552 | + content: goodsinfo.goods_name+'购买数量超出商品活动限购' | |
| 553 | + }); | |
| 554 | + return false; | |
| 555 | + } | |
| 556 | + | |
| 557 | + var redis_num = 0; | |
| 558 | + //------判断活动是否抢光----- | |
| 559 | + await getApp().request.promiseGet("/api/weshop/activitylist/getActLen/" + | |
| 560 | + os.stoid + "/" + goodsinfo.prom_type + "/" + goodsinfo.prom_id, { | |
| 561 | + }).then(res => { | |
| 562 | + redis_num = res.data.data; | |
| 563 | + }); | |
| 564 | + | |
| 565 | + if (good.goods_num > redis_num) { | |
| 566 | + wx.showModal({ | |
| 567 | + title: gg.goods_name+'超出商品活动库存', | |
| 568 | + }); | |
| 569 | + return false; | |
| 570 | + } | |
| 571 | + } | |
| 572 | + | |
| 573 | + | |
| 574 | + } | |
| 575 | + th.pay_next(e); | |
| 383 | 576 | }, |
| 384 | - | |
| 577 | + | |
| 578 | + | |
| 579 | + pay_next(e){ | |
| 580 | + if (e.order_amount == 0) { | |
| 581 | + var dd = { | |
| 582 | + parent_sn: e.order_sn, | |
| 583 | + store_id: e.store_id, | |
| 584 | + type: 1, | |
| 585 | + }; | |
| 586 | + getApp().request.post("/api/weshop/order/pay/createOrder", { | |
| 587 | + data: dd, | |
| 588 | + success: function(t) { | |
| 589 | + if (t.data.code == 0) { | |
| 590 | + th.onload(); | |
| 591 | + } else { | |
| 592 | + getApp().confirmBox(t.data.msg + "请您取消该订单"); | |
| 593 | + } | |
| 594 | + } | |
| 595 | + }) | |
| 596 | + return false; | |
| 597 | + } | |
| 598 | + a.jumpToCart4({ | |
| 599 | + order_sn: e.order_sn, | |
| 600 | + order_amount: e.order_amount, | |
| 601 | + type: 1 //正常单 | |
| 602 | + }); | |
| 603 | + }, | |
| 604 | + | |
| 605 | + //---检验线下库存的数量的子函数--- | |
| 606 | + async check_down_line_next(gg,num,pick_id,func){ | |
| 607 | + | |
| 608 | + var lock=0,pick_no,plist; | |
| 609 | + //先读取门店的lock | |
| 610 | + await getApp().request.promiseGet("/api/weshop/order/ware/lock/page",{ | |
| 611 | + data:{store_id:os.stoid,wareId:gg.goods_id,storageId:pick_id} | |
| 612 | + }).then(res=>{ | |
| 613 | + if(res.data.code==0 && res.data.data.total>0){ | |
| 614 | + for(var i in res.data.data.pageData) | |
| 615 | + lock+=res.data.data.pageData[i].outQty; | |
| 616 | + } | |
| 617 | + }) | |
| 618 | + //先获取门店的编号 | |
| 619 | + await getApp().request.promiseGet("/api/weshop/pickup/get/"+os.stoid+"/"+pick_id,{ | |
| 620 | + data:{storeId:os.stoid,goodsId:gg.goods_id,pickupId:pick_id} | |
| 621 | + }).then(res=>{ | |
| 622 | + if(res.data.code==0){ | |
| 623 | + pick_no=res.data.data.pickup_no; | |
| 624 | + } | |
| 625 | + }) | |
| 626 | + //读取线下的门店库存 | |
| 627 | + await getApp().request.promiseGet("/api/weshop/goods/getWareStorages",{ | |
| 628 | + data:{storageNos:pick_no,wareIds:encodeURIComponent(gg.erpwareid),storeId:os.stoid} | |
| 629 | + }).then(res=>{ | |
| 630 | + if(res.data.code==0){ | |
| 631 | + plist=res.data.data.pageData[0]; | |
| 632 | + } | |
| 633 | + }) | |
| 634 | + var ob={}; ob.code=1; | |
| 635 | + if(num>plist.CanOutQty-lock){ | |
| 636 | + ob.code=-1; | |
| 637 | + ob.CanOutQty=plist.CanOutQty-lock | |
| 638 | + if(ob.CanOutQty<0) ob.CanOutQty=0; | |
| 639 | + } | |
| 640 | + func(ob) | |
| 641 | + }, | |
| 642 | + | |
| 643 | + | |
| 644 | + | |
| 385 | 645 | //------图片失败,默认图片--------- |
| 386 | 646 | bind_bnerr: function(e) { |
| 387 | 647 | var _errImg = e.currentTarget.dataset.errorimg; | ... | ... |
pages/user/order_list/order_list.wxml
| ... | ... | @@ -24,16 +24,20 @@ |
| 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> |
| 31 | 33 | </block> |
| 32 | 34 | <block wx:else>退款中</block> |
| 35 | + <!-- | |
| 33 | 36 | <view class="flex" wx:if="{{(item.order_status==0&&item.pay_status==0)}}"> |
| 34 | 37 | <view class="lin"></view> |
| 35 | - <image src="{{iurl}}miniapp/images/trash.png" bindtap="deleteOrderData" data-order_id="{{item.order_id}}"></image> | |
| 36 | - </view> | |
| 38 | + <image src="{{iurl}}miniapp/images/trash.png" bindtap="deleteOrderData" data-index="{{index}}" data-order_id="{{item.order_id}}"></image> | |
| 39 | + </view>--> | |
| 40 | + | |
| 37 | 41 | </view> |
| 38 | 42 | </view> |
| 39 | 43 | |
| ... | ... | @@ -126,8 +130,6 @@ |
| 126 | 130 | </view> |
| 127 | 131 | <view class="links flex-right-vertical fs30"> |
| 128 | 132 | <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 | 133 | <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 | 134 | <view class="commodity_To_evaluate flex-level View_evaluation" wx:if="{{item.pt_status==3}}">拼团失败</view> |
| 133 | 135 | <!---has_rt部分退----> |
| ... | ... | @@ -136,7 +138,7 @@ |
| 136 | 138 | <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 | 139 | </block> |
| 138 | 140 | <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> | |
| 141 | + <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 | 142 | <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 | 143 | <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 | 144 | </block> | ... | ... |
pages/user/order_list/order_list.wxss