vue element 表格滑动加载

<el-table
      v-loadmore="getNewData"
      v-loading="loadingData"
      :data="tableData"
      style="width: 100%"
      max-height="800">
      <el-table-column
        v-for="(item, index) in columns" :key="item.Id"
        :fixed="index === 0 ? 'left' : false"
        :prop="item.prop" :label="item.name">
      </el-table-column>
    </el-table>

element中 table表格数据滑动加载
// 自定义局部指令
    directives: {
      loadmore: {
        // 指令的定义
        bind(el, binding, vnode) {
          const selectWrap = el.querySelector('.el-table__body-wrapper')
          selectWrap.addEventListener('scroll', function() {
            const sign = 100
            const scrollDistance = this.scrollHeight - this.scrollTop - this.clientHeight
            if (scrollDistance <= sign) {
              binding.value()
              // console.log('距离底部小于100了')
              // console.log(vnode.context)
              // // 指令中不能用this关键字
              // vnode.context.getNewData()
            }
          })
        }
      }
    }

自定义指令中 v-loadmore = 'getNewData'

getNewData() {
        if (this.flag === true) {
          this.flag = false
          this.PageIndex++
          // this.loadingData = true
          this.getTableData(this.PageIndex, this.pageSize)
        }
      },
// 请求后台表格数据
getTableData(PageIndex, pageSize) {
        searchSalesDetail(Date.parse(this.formInline.startTime) / 1000, PageIndex, pageSize).then(res => {
          console.log(res)
          const columnsArr = []
          for (const i in res.columns[0]) {
            const obj = {}
            obj.prop = i
            obj.name = res.columns[0][i]
            columnsArr.push(obj)
          }
          this.columns = columnsArr
          this.tableData.push(...res.data)
          this.flag = true
          // this.tableData = res.data
          this.loadingData = false
        })
      },
  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 5
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值