Vue3+elementplus含筛选分页实现

Vue3+elementplus含筛选分页实现

描述:表格得到的数据进行筛选排序后再进行展示,所以需要查的内容全部查询出来后进行筛选或排序再进行展示。这里的操作记录我使用的方法,能够实现筛选后的展示情况。

效果:进行整体时间排序,前端,最好是从接口一次性查询出所有数据

在这里插入图片描述

1、调用elementplus的组件

<div class="gva-pagination">
  <el-pagination
    :current-page="page"
    :page-size="pageSize"
    :page-sizes="[10, 30, 50, 100]"
    :total="total"
    layout="total, sizes, prev, pager, next, jumper"
    @current-change="handleCurrentChange"
    @size-change="handleSizeChange"
  />
</div>

2、实现分页函数

// 分页函数
const page = ref(1)
const total = ref(0)
const pageSize = ref(10)
const tableData = ref()
const tableDataSlice = ref([])

const handleSizeChange = (val) => {
  pageSize.value = val
  if (val * page.value > total.value) {
    tableDataSlice.value = tableData.value.slice((page.value - 1) * pageSize.value, total.value)
  } else {
    tableDataSlice.value = tableData.value.slice((page.value - 1) * pageSize.value, (page.value - 1) * pageSize.value + pageSize.value)
  }
}

const handleCurrentChange = (val) => {
  page.value = val
  if (val * pageSize.value > total.value) {
    tableDataSlice.value = tableData.value.slice((val - 1) * pageSize.value, total.value)
  } else {
    tableDataSlice.value = tableData.value.slice((val - 1) * pageSize.value, (val - 1) * pageSize.value + pageSize.value)
  }
}

3、data数据绑定为tableDataSlice

<el-table
      :data="tableDataSlice"
    >
      <el-table-column
        align="center"
        label="日期"
        min-width="150"
        prop="date"
      >
</el-table>

4、在获取数据函数内最后添加首页10行展示

const getTableData = async() => {
    // 进行筛选功能实现,比如时间排序后展示
    ...
    tableData.value.sort(function(a, b) {
    	return new Date(b.date).getTime() - new Date(a.date).getTime()
    })
    ...
    // 添加
    if (tableDataSlice.value.length === 0) {
        tableDataSlice.value = tableData.value.slice(0, pageSize.value)
      }
}
  • 8
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值