Commit ecacaa8712e7e7e5dcaffffcf2b3a48ca7722a9d

Authored by yvan.ni
1 parent 7afe40e3

分类下滑,清空上一个定时器

packageC/pages/goods/distributionCategoryList/index.js
1 1 const { app } = require("../../../../utils/common");
2 2 let startY = 0;
3 3 let endY = 0;
4   -let scrolltop = 0;
  4 +let isReachBt = 0;
5 5 let moveDistance = 0;
6 6 const t = getApp(), e = t.request, oo = t.globalData.setting;
7 7 var i = function (i) {
... ... @@ -449,6 +449,9 @@ Page({
449 449 },
450 450  
451 451 async click_classify(e) {
  452 +
  453 + clearInterval(this.data.timer);
  454 +
452 455 let { cid, current } = e.currentTarget.dataset;
453 456 this.setData({
454 457 select_classify_on: current,
... ... @@ -495,71 +498,87 @@ Page({
495 498 })
496 499 }
497 500 }, */
498   - async requestGoodsList() {
499   - console.log('hanshu');
500   - if (this.data.isLoading) return false;
501   - // if(this.data.is_no_more)return
502   - if (this.data.is_no_more && this.data.is_up) return false;
  501 +
  502 + requestGoodsList() {
  503 + if(this.data.isLoading) return false;
  504 + if(this.data.is_no_more) return false
503 505 this.data.isLoading = 1;
  506 + var th=this;
  507 +
504 508 let { currentData } = this.data;
505 509 currentData.cat_id = this.data.cat_id;
506 510 currentData.page = this.data.stylePage;
507   - // console.log(data);
508   - let url = `/api/weshop/users/distribut/pagemyshop`;
509   - const { data: res } = await e.promiseGet(url, {
  511 +
  512 + let url = '/api/weshop/users/distribut/pagemyshop';
  513 + getApp().promiseGet(url, {
510 514 isShowLoading: true,
511 515 data: currentData,
512   - });
513   - console.log(res);
514   -
515   - let index = this.getCurrentIndex();
516   - let next_classify_name = this.data.catelist[index].name;
517   - this.setData({
518   - isLoading: 0,
519   - is_no_more: 0,
520   - is_get: 1,
521   - select_classify_on: index,
522   - classify_name: next_classify_name,
523   - next_classify_name,
524   - });
525   - if (res.code == 0 && res.data.pageData.length > 0) {
526   - // if(res.data.pageData.length<res.data.pageSize){
527   - // this.setData({
528   - // is_no_more:1,
529   - // })
530   - // }
531   - if (res.data.page > 1) {
532   - this.setData({
533   - requestData: this.data.requestData.concat(res.data.pageData),
  516 + }).then(res=>{
  517 + var res=res.data;
  518 + let index = this.getCurrentIndex();
  519 + let next_classify_name = this.data.catelist[index].name;
  520 + th.setData({
  521 + isLoading: 0,
  522 + is_get: 1,
  523 + select_classify_on: index,
  524 + classify_name: next_classify_name,
  525 + next_classify_name,
534 526 });
535   - } else {
536   - this.setData({
537   - requestData: res.data.pageData,
538   - });
539   - }
540 527  
541   - } else {
542   - //上拉加载
543   - if (res.data.page > 1) {
544   - this.setData({
545   - is_no_more: 1,
546   - })
547   - } else {
548   - this.setData({
549   - requestData: [],
550   - });
551   - //如果类目为空则3秒后加载下一类目
552   - this.data.timer = setInterval(() => {
553   - this.setData({
554   - countDownNum: this.data.countDownNum - 1,
555   - });
556   - if (this.data.countDownNum == 0) {
557   - clearInterval(this.data.timer);
558   - this.get_next_cate(index);
559   - }
560   - }, 1000);
561   - }
562   - }
  528 + if (res.code == 0 && res.data.pageData.length > 0) {
  529 + if (res.data.page > 1) {
  530 + th.setData({
  531 + requestData: th.data.requestData.concat(res.data.pageData),
  532 + });
  533 + } else {
  534 + th.setData({
  535 + requestData: res.data.pageData,
  536 + });
  537 + }
  538 + isReachBt = 0;
  539 +
  540 + if(res.data.pageData.length<10){
  541 + this.setData({
  542 + is_no_more: 1,
  543 + })
  544 + }
  545 +
  546 + } else {
  547 + //上拉加载
  548 + if (res.data.page > 1) {
  549 + th.setData({
  550 + is_no_more: 1,
  551 + })
  552 + } else {
  553 + th.setData({
  554 + requestData: [],
  555 + });
  556 +
  557 + //如果类目为空则3秒后加载下一类目
  558 + if(th.data.timer) {
  559 + th.data.timer=clearInterval(th.data.timer);
  560 + th.data.timer=0;
  561 + }
  562 + th.data.timer = setInterval(() => {
  563 + if(th.data.countDownNum<0){
  564 + clearInterval(th.data.timer);
  565 + return false;
  566 + }
  567 +
  568 + th.setData({
  569 + countDownNum: this.data.countDownNum - 1,
  570 + });
  571 + if (th.data.countDownNum <= 0) {
  572 + clearInterval(th.data.timer);
  573 + th.get_next_cate(index);
  574 + return false;
  575 + }
  576 + }, 1000);
  577 + }
  578 + }
  579 + })
  580 +
  581 +
563 582 },
564 583  
565 584 //查找当前类目在 catelist的下标 为后面下一个类目使用
... ... @@ -577,23 +596,22 @@ Page({
577 596 return index;
578 597 },
579 598  
580   -
581 599 get_next_cate(index) {
582   - console.log('get_next_cate');
  600 + if(this.data.isLoading) return false;
583 601 index = index + 1;
584 602 let nex_cat_id = this.data.catelist[index].id;
585 603 this.setData({
586 604 cat_id: nex_cat_id,
587 605 stylePage: 1,
588 606 is_get: 0,
  607 + is_no_more:0,
589 608 next_classify_name: this.data.catelist[index].name,
590 609 });
591   - this.data.is_up = 0;
  610 + this.data.car_scroll=0;
  611 + isReachBt = 0;
592 612 this.requestGoodsList();
593 613 },
594   - onReachBottom: function () {
595 614  
596   - },
597 615 //选择更多
598 616 select_more: function (e) {
599 617 var cid = e.currentTarget.dataset.cid;
... ... @@ -624,41 +642,45 @@ Page({
624 642  
625 643 },
626 644 touchstart(e) {
627   - // if (!this.data.is_no_more) return false;
628   - // if(this.data.is_next){
629   - // this.setData({
630   - // is_no_more:0,
631   - // })
632   - // }
633   - // this.data.is_next=0;
  645 + startY=0;
  646 + if (!this.data.is_no_more) return false;
  647 + if(isReachBt<=0) return false;
634 648 startY = e.changedTouches[0].clientY;
635   - console.log('gdsg');
  649 +
636 650 },
637 651 touchend(e) {
  652 + var th=this;
  653 + setTimeout(function () {
  654 + if(!th.data.car_scroll){
  655 + clearInterval(th.data.timer);
  656 + th.get_next_cate(th.data.select_classify_on);
  657 + return false;
  658 + }
638 659  
639   - endY = e.changedTouches[0].clientY;
640   - moveDistance = startY - endY;
641   - if(moveDistance<0){
642   - scrolltop=0
643   - }
644   - console.log(scrolltop);
645   - if (this.data.is_no_more && !this.data.is_up) {
646   - this.data.is_up = 1;
647   - return false;
648   - }
  660 + if(!startY) return false;
  661 + endY = e.changedTouches[0].clientY;
  662 + moveDistance = startY - endY;
  663 + if(moveDistance<0){
  664 + isReachBt=0;
  665 + return false;
  666 + }
  667 + if (th.data.is_no_more && moveDistance >= 10 && isReachBt > 0) {
  668 + clearInterval(th.data.timer);
  669 + th.get_next_cate(th.data.select_classify_on);
  670 + }
  671 + },50)
649 672  
650   - if (this.data.is_no_more && moveDistance >= 300 && scrolltop > 0) {
651   - this.data.is_up = 0;
652   - this.get_next_cate(this.data.select_classify_on);
653   - }
654 673  
655 674 },
656 675 // 左侧更新
657 676 scrollLower: function () {
658   - scrolltop = 1;
659   - if (this.data.isLoading) return false;
660   - if (this.data.is_no_more) return false;
661 677  
  678 + console.log("low111");
  679 + if (this.data.isLoading) return false;
  680 + if (this.data.is_no_more) {
  681 + isReachBt = 1;
  682 + return false;
  683 + }
662 684  
663 685 this.setData({
664 686 stylePage: this.data.stylePage + 1,
... ... @@ -666,7 +688,6 @@ Page({
666 688 });
667 689 !this.data.is_none && this.requestGoodsList();
668 690  
669   -
670 691 },
671 692  
672 693 //--- 获取卡类列表 ---
... ... @@ -693,4 +714,8 @@ Page({
693 714 })
694 715 },
695 716  
  717 + bd_scroll:function (e) {
  718 + this.data.car_scroll=1;
  719 + }
  720 +
696 721 });
697 722 \ No newline at end of file
... ...
packageC/pages/goods/distributionCategoryList/index.wxml
... ... @@ -95,8 +95,10 @@
95 95 <!-- 显示商品列表开始 -->
96 96 <!-- <view class="classify_content-frame flex-wrap" style="width:100%;overflow:hidden;heigth:100%;"> -->
97 97 <!-- <view class="null" style="width:100%;margin-top:70rpx;"></view> -->
98   - <scroll-view wx:if="{{is_get}}" scroll-y scroll-top="{{scrollTop}}" bindtouchstart="touchstart" bindtouchend="touchend" bindscrolltolower='scrollLower' lower-threshold="200" style="height:{{windowHeight}};position:absolute;margin-top:70rpx;top:140rpx;bottom:0;rigth:0;left:26%;width:73%;">
99   - <view class="null" style="width:100%;height:1px;"></view>
  98 + <scroll-view wx:if="{{is_get}}" scroll-y scroll-top="{{scrollTop}}"
  99 + bindscroll="bd_scroll"
  100 + bindtouchstart="touchstart" bindtouchend="touchend" bindscrolltolower='scrollLower' lower-threshold="200" style="height:{{windowHeight}};position:absolute;margin-top:70rpx;top:140rpx;bottom:0;rigth:0;left:26%;width:73%;">
  101 + <!--<view class="null" style="width:100%;height:1px;"></view>-->
100 102 <!-- goodslist -->
101 103 <view class="choice_list" style="height:{{requestData.length?'100%':''}}">
102 104 <navigator class="choice_item" style="margin-bottom:{{dataLength -1 == index?'100px':'0'}}" url="/pages/goods/goodsInfo/goodsInfo?goods_id={{item.goods_id}}" wx:for="{{requestData}}" data-id="{{item.id}}">
... ... @@ -204,9 +206,9 @@
204 206 </view>
205 207 </navigator>
206 208 <!-- 暂无更多 -->
207   - <view wx:if="{{is_no_more&&!is_none&&requestData.length}}" style="color:c-red; height: 200rpx;line-height: 30rpx;margin-top: 20rpx;font-size: 25rpx; text-align: center;">
  209 + <view id="morelb" wx:if="{{is_no_more&&!is_none&&requestData.length}}" style="color:c-red; height: 60rpx;line-height: 30rpx;margin-top: 20rpx;font-size: 25rpx; text-align: center;">
208 210 <text style="font-size:32rpx;color:red;margin-right:10rpx" class="iconfont icon-arrowup"></text>
209   - <text style="color:#999">向上拉继续浏览{{next_classify_name}}</text>
  211 + <text style="color:#999">向上拉继续浏览下一个类别</text>
210 212 </view>
211 213 </view>
212 214 <view class="no-data" wx:if="{{requestData.length==0}}">
... ...