mint-ui Infinite scroll的使用说明+实例

4 篇文章 0 订阅

<template>

<div class="myFeedBackPage">

<HeaderBack :headerTitle="headertit" :txtColor="txtColor"/>

<ul class="feedBackList" v-infinite-scroll="loadMore"

        infinite-scroll-disabled="loading"

        infinite-scroll-distance="10">

  <li class="feedBackItem" v-for="(item , index) in feedBackList" :key="index">

       <div class="feedBackAsk">

         <img src="~img/myFeedBack/ask.png" alt="">

         <p>{{item.opinion}}</p>

         <span>{{item.createTime}}</span>

       </div>

       <div class="feedBackAnswer">

         <img src="~img/myFeedBack/answer.png" alt="">

         <p>{{item.feedback}}</p>

         <span>{{item.confirmTime}}</span>

       </div>

    </li>        

</ul>

    <p class="loadingTemp" v-show="loadingImg"><img class="" src="~img/myFeedBack/loading.gif" alt=""></p>

    <p v-if='loadingDom' class='loading'>没有更多数据</p>

</div>

</template>

 

<script>

import qs from 'qs'

import HeaderBack from '@/components/common/HeaderBack.vue'

export default {

components: {

HeaderBack

},

data() {

return {

headertit: '我的反馈',

txtColor: '#262626',

remnant: 0,

        desc: "",

        feedBackList: [],

        current: 1,

        pageSize: 10,

        loadingImg: true,

        loading: true, //为true时不会触发加载更多,false可以触发

  loadingDom: false,

  pages: 0

}

},

created() {

      this.getFeedBackList();

      // console.log(this.getFeedBackList());

    },

    mounted() {

    

    },

methods: {

  getFeedBackList: function () {

        const _this = this;

        this.$post('url',{

        current: _this.current,

        pageSize: _this.pageSize,

        userId: localStorage.getItem('userId')

}).then((res) => {

this.pages = res.page.pages//总页数

  //当请求没有数据时需要显示的内容,需要注意的是如果上一次正好将数据请求完

//这次请求的数据Data会为[],就会执行里面的代码,加上this.feedBackList.length == 0这个限制条件就不会了

          // console.log(res.data.list);

          if (res.data.list.length == 0 && this.feedBackList.length == 0) {

              this.loading = true;

              this.loadingImg = false;

} else {

            //有数据并且请求到的数据等于pageSize说明数据库还有多余数据

if (res.data.list.length === parseInt(this.pageSize)) {

                for (var i = 0; i < this.pageSize; i++) {

                  this.feedBackList.push(res.data.list[i]);

                }

this.loading = false;

} else {

//有数据但是数据库数据已经被请求完,没有其他数据

this.loading = true;

                this.loadingDom = true;

                this.loadingImg = false;

for (var i = 0; i < res.data.list.length; i++) {

this.feedBackList.push(res.data.list[i]);

}

}

//数据正好请求完,由于前面加了this.feedBackList.length == 0限制,会走当前逻辑

if (res.data.list.length == 0 || res.data.list.length == 9) {

this.loading = true;

                this.loadingDom = true;

                

}

          }

}).catch(e => console.log(e))

      },

      loadMore() {

        this.loading = true;

        this.current++;

        if(this.current > this.pages){

          this.loading = false

          this.loadingImg = false

          this.loadingDom = true

        }else{

          this.loadingImg = true

          this.getFeedBackList();

        }

      }

}

}

</script>

 

<style lang="scss" scoped>

.myFeedBackPage{

padding-top: 0.88rem;

.feedBackList{

  .feedBackItem{

    background:rgba(255,255,255,1);

    margin-bottom: 0.15rem;

    .feedBackAsk{

       border-bottom: 0.01rem solid #F1F0ED;

       padding: 0.15rem 0.38rem

    }

     .feedBackAnswer{

       padding: 0.15rem 0.38rem

     }

     img{

       width: 0.25rem;

       height: 0.25rem;

       display: block;

       margin-bottom: 0.1rem;

     }

     p{

       font-size: 0.26rem;

       line-height: 0.33rem;

       color:rgba(64,74,76,1);

       margin-bottom: 0.2rem;

     }

     span{

       height:0.15rem;

          font-size:0.18rem;

          color:rgba(133,134,151,1);

          line-height:0.33rem;

     }

  }

}

    .loading{

      text-align: center;

    }

    .loadingTemp{

      text-align: center;

      img{

        height: 0.8rem;

      }

    }

}


 

</style>

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值