vue中element-ui table滚动加载

  1. //1.在main.js里注册
  2.  Vue.directive('loadmore', {
  3.  bind(el, binding) {
  4.  const selectWrap = el.querySelector('.el-table__body-wrapper')
  5.  selectWrap.addEventListener('scroll', function() {
  6.  let sign = 0
  7.  const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight
  8.  if (scrollDistance <= sign) {
  9.  binding.value()
  10.  }
  11.  })
  12.  }
  13.  })
  14. //2.在el-table组件中,使用自定义的事件:v-loadmore=“loadMore”
  15. //3.在methods中调用loadMore
  16. loadMore() {
  17.  if(this.aq == false){//是否已经全部加载
  18.  return
  19.  }
  20.  if(this.page == 1){//首次加载页码加一
  21.  this.page++
  22.  }
  23.  this.$axios({
  24.  method:'get',
  25.  url:数据接口地址,
  26.  params:{
  27.  page:this.page,
  28.  limit:this.limit
  29.  }
  30.  }).then(res=>{
  31.  if(res.data.length > 0){//有数据
  32.  this.page++ //页码加一,下次查询
  33.  res.data.forEach(res => {
  34.  this.tableData.push(res)//push到表格数据集合
  35.  });
  36.  }else{
  37.  this.aq = false //没有数据了
  38.  }
  39.  })
  40.  },
posted @ 2022-08-25 11:53  醉温柔  阅读(554)  评论(0编辑  收藏  举报