elementUI-分页功能实现

第一种:一次数据请求,前端实现分页功能。

具体实现代码如下:

html:  table值绑定的

:data="infoData.canNotScraps.slice((cur_page-1)*pageSize,cur_page*pageSize)" 根据当前页自动计算要显示的哪一页数据
复制代码
<el-dialog title="不能报废的卡号" center :visible.sync="dialogFormVisible" width="60%">
      <el-table v-if="infoData.canNotScraps" :data="infoData.canNotScraps.slice((cur_page-1)*pageSize,cur_page*pageSize)" stripe border>
          <el-table-column prop="card_no" label="卡号"></el-table-column>
          <el-table-column prop="card_state_name" label="状态"></el-table-column>
      </el-table>
      <!-- 分页组件ui -->
      <div style="margin-top:20px" class="pagination">
        <el-pagination
        background
        @current-change="handleCurrentChange"
        @size-change="handleSizeChange"
        :current-page="cur_page"
        :page-sizes="pageSizes"
        :page-size="pageSize"
        layout="total, sizes, prev, pager, next, jumper"
        :total="total"
        ></el-pagination>
      </div>
</el-dialog>
复制代码

 

js:

infoData为后台返回数据,
infoData.canNotScraps 为后台返回的一堆表格数据组成的数组
复制代码
 data() {
    return {
      infoData: {},  
   cur_page: 1, pageSize: 20, total: 0, pageSizes:[20,30,40,50], };
},
复制代码

分页触发的方法,重置当前页为cur_page = 1

复制代码
  // 分页导航改变页码大小在method里定义
    handleSizeChange(val) {
        this.pageSize=val;
        this.cur_page=1;
    },
    // 分页导航
    handleCurrentChange(val) {
        this.cur_page = val;
    }
复制代码

第二种:分页功能每次点击去请求后台接口。

html: 在页面上定义分页组件 并且分配默认值

复制代码
 <div style="margin-top:20px" class="pagination">
        <el-pagination
          background
          @current-change="handleCurrentChange"
          @size-change="handleSizeChange"
          :current-page="cur_page"
          :page-sizes="[10, 20, 30, 40]"
          :page-size="pageSize"
          layout="total, sizes, prev, pager, next, jumper"
          :total="total"
        ></el-pagination>
   </div>
复制代码

js: 在data里定义默认值 并初始化

  tableData: [],
      cur_page: 1,
      pageSize: 20,
      total: 0,

 method 里定义请求数据的方法 和 handleCurrentChange 、handleSizeChange

复制代码
getData() {
      let params = {
        pageNo: this.cur_page,
        pageSize: this.pageSize,
        applyCode: this.applyCode,
        state: this.state,
        settlementOrgId: this.settlementOrgIds.slice(-1).toString(),
        createdByName: this.createdByName,
        startDate: this.time[0],
        endDate: this.time[1],
        templateType: this.templateType,
        templateCode: this.templateCode,
        templateName: this.templateName,
      };
      getStockInList(params).then((res) => {
        this.tableData = res.records;
        this.total = res.total;
        this.cur_page = res.current;
        this.pageSize = res.size;
      });
    },  // 分页导航改变页码大小 每次值改变 就去请求接口
    handleSizeChange(val) {
      this.pageSize = val;
      this.cur_page = 1;
      this.getData();
    },
    // 分页导航 每次值改变就去请求接口
    handleCurrentChange(val) {
      this.cur_page = val;
      this.getData();
    },
复制代码

element ui 文档已经很成熟了。跟着文档走,基本能实现后台管理功能的需求。

posted @   巫小婆  阅读(4377)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
阅读排行:
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
点击右上角即可分享
微信分享提示