当前位置: 首页 > java >正文

Vue 利用el-table和el-pagination组件,简简单单实现表格前端分页

个别业务场景,需求前端实现分页,处理一些特殊数据和交互,来满足不同的业务的条件,今天抽空写了个demo,效果如下:

代码:

<template><div class="paging"><div class="box_body"><el-table :data="tableData" border size="small" style="width: 100%"><el-table-columnlabel="序号"prop="num"min-width="150"></el-table-column><el-table-columnlabel="姓名"prop="name"min-width="150"></el-table-column><el-table-columnlabel="性别"prop="sex"min-width="150"></el-table-column><el-table-columnlabel="年龄"prop="age"min-width="150"></el-table-column></el-table><!--===分页=====--><el-pagination:current-page="pageinfo.page":page-sizes="[10, 20, 30, 40]":page-size="pageinfo.size"layout="total, sizes, prev, pager, next, jumper":total="pageinfo.total"@size-change="handleSizeChange"@current-change="handleCurrentChange"style="margin-bottom: 3px"></el-pagination></div></div>
</template><script>
export default {name: "paging",data() {return {// 从后端获取到的所有表格数据sourceTableData: [],// 页面要显示的表格数据tableData: [],// 分页信息pageinfo: {page: 1,size: 10,total: 0,},};},created() {// 页面初始化时生成100条数据,模拟从后端获取所有数据let arr = [];for (let i = 0; i < 100; i++) {let obj = {};obj.num = i + 1;obj.name = "name" + (i + 1);obj.sex = Math.round(Math.random()) == 0 ? "男" : "女";obj.age = 20 + Math.round(Math.random() * 30);arr.push(obj);}this.sourceTableData = arr;// 初始化算出第一页数据this.tableData = this.currentChangePage(this.pageinfo.size,this.pageinfo.page);this.pageinfo.total = this.sourceTableData.length;},methods: {/** 切换每页显示条数 */handleSizeChange(val) {this.pageinfo.page = 1;this.pageinfo.size = val;this.tableData = this.currentChangePage(val, this.pageinfo.page);},/** 切换分页 */handleCurrentChange(val) {this.pageinfo.page = val;this.tableData = this.currentChangePage(this.pageinfo.size, val);},// 分页方法(用于表格数据后端不分页,放到前端做分页)currentChangePage(size, current) {const tablePush = [];let array = JSON.parse(JSON.stringify(this.sourceTableData));array.forEach((item, index) => {if (size * (current - 1) <= index && index <= size * current - 1) {tablePush.push(item);}});return tablePush;},},
};
</script><style>
.paging {width: 100%;height: 100%;
}
.box_body {width: 1200px;margin: 50px auto;
}
</style>

有同学要用el-table组件做前端分页的可以直接复制粘贴拿去使用,动手能力强的同学可以再我这个基础上再次二次封装成组件去使用,方便随时调用。

http://www.xdnf.cn/news/17630.html

相关文章:

  • AI时代基于云原生的 CI/CD 基础设施 Tekton
  • Dubbo从入门到实战:分布式服务开发指南
  • USB 基本描述符
  • 视频播放器哪个好用?视频播放器PotPlayer,KMP Player
  • 下一个排列 的 思路总结
  • 从零开始的云计算生活——项目实战容器化
  • 标准IO详解(fgets、gets、fread、fwrite、fseek 等应用)
  • Java 包装类简单认识泛型
  • 《深度解构:React与Redux构建复杂表单的底层逻辑与实践》
  • C#使用EPPlus读写Excel
  • ubuntu20.04交叉编译vlc3.0.21 x64 windows版本
  • 大模型落地:AI 技术重构工作与行业的底层逻辑
  • Pytest 全流程解析:执行机制与报告生成实战指南
  • java 插入式注解的打开方式!
  • MySQL,Redis重点面试题
  • SQL179 每个6/7级用户活跃情况
  • Spring Framework源码解析——BeanPostProcessor
  • 【学习嵌入式day-22-Linux软件编程-IO】
  • SpringBoot集成支付宝二维码支付接口详解
  • Python3.10 + Firecrawl 下载 Markdown 文档:构建高效通用文章爬虫
  • 不同FPGA开发板系统移植步骤
  • Chrome插件开发【Service Worker练手小项目】
  • 【LeetCode刷题集】--排序(三)
  • 【智能的起源】人类如何模仿,简单的“刺激-反应”机制 智能的核心不是记忆,而是发现规律并能迁移到新场景。 最原始的智能:没有思考,只有简单条件反射
  • Mamba 原理汇总2
  • AI(2)-神经网络(激活函数)
  • 支持小语种的在线客服系统,自动翻译双方语言,适合对接跨境海外客户
  • 数据结构-数组扩容
  • 开发指南130-实体类的主键生成策略
  • Apache ECharts 6 核心技术解密 – Vue3企业级可视化实战指南