使用指令实现element表格的下拉刷新

5 篇文章 0 订阅

使用指令实现element表格的下拉刷新

在自己开发的项目中,数据一直都是分页处理,直到有一天产品想要基于element表格组件下拉刷新的效果。

目前实现的是全局指令
在plugins文件下新增directives.js文件夹

//   注册指令组件

export default (Vue)=>{
  Vue.directive('loadele', {
    bind(el, binding, vnode) {
      //.el-table__body-wrapper 是表格组件中body标签的class样式名,也就是下拉框的父级class
      const tableWrap = el.querySelector('.el-table__body-wrapper')
      tableWrap .addEventListener('scroll', function() {
        const sign = 20		// 定义小于多少px时执行刷新
        const scrollHeight = this.scrollHeight - this.scrollTop - this.clientHeight
        if (scrollHeight <= sign) {
     	// 指令要触发的事件
          vnode.context.getNewData()
        }
      })
    }
  })
}

在main.js中引入

import directives from './plugins/directives'
Vue.use(directives)

在页面中使用

<el-table :data="outData" height="calc(100vh - 200px)" class="lis_table" @row-click="getTableData" v-loadele="getNewData" highlight-current-row @cell-click="changeInput">
          <el-table-column prop="testdate" fixed label="测试日期" min-width="100" align="center">
            <template slot-scope="scope">
              <span>{{scope.row.testdate | formatTime('yyyy-MM-dd')}}</span>
            </template>
          </el-table-column>
          <el-table-column prop="testItemName" fixed label="项目名称" align="center" min-width="100"></el-table-column>
        </el-table>

在这里插入图片描述

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一条小鲨鱼

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值