vue问题:怎样实现el-table表格索引的翻页递增显示

素材编辑 | 宋大狮

排版运营 | 小唐狮

ONE 问题描述

今天要和大家分享的是vue的问题,主要是关于element中table组件数据展示时,对索引进行翻页递增显示。

需求:默认展示一页10条数据,切换第一页时,表格数据索引为1-10,切换第二页时,表格数据索引递增为11-20。

问题:切换第一页时,表格数据索引为1-10,切换第二页时,表格数据索引依旧展示为1-10。

TWO 解决过程

尝试一:

思路:考虑后端解决,在返回数据时添加对应索引值。

实现:考虑到减轻前端负担、有问题找后端的原则,很自然的就跑去找后端提需求,但与后端交流后,很快得到了拒绝,原因是由于筛选功能的存在,无法给数据库中的每条数据设置固定的索引值,否则在筛选展示时,会造成索引错位的问题。

结果:后端搞不了,那就只能前端自力更生了。

尝试二:

思路:循环为每条数据添加对应索引值。

实现:在接口响应成功处,用forEach循环为响应数据的每一项,都添加一个计算后的index索引属性,并在表格序号展示处添加prop="index"属性。其中,计算公式是固定的:item.index=(index+1)+ (this.dataForm.currentPage-1)*this.dataForm.limit为循环下标,currentPage 为当前页码,limit为每页要展示的条数。注意,关于分页的修改:在条数切换回调函数处,将currentPage 、page都要置为1,在页数切换回调函数处,将currentPage 置为page的值。

结果:成功实现表格所有数据索引的递增显示。

THREE 知识总结

总结一:问题复盘

在做table组件数据展示时,对索引进行翻页递增显示,需要先在表格序号展示处添加prop="index"属性,再在接口响应成功处,用forEach循环为响应数据的每一项,都添加一个计算后的index索引属性,计算公式是固定的:item.index=(index+1)+ (this.dataForm.currentPage-1)*this.dataForm.limit。

总结二:索引的翻页递增显示代码

template代码:

<el-table-column 
 prop="index" 

:label="$t('ebc.serial_Number')"
 header-align="center"
 align="center"
 width="60">

</el-table-column>

script代码:

     baseService
        .get()
        .then((res) => {
          if (res.code !== 0) {
            return this.$message.error(res.msg);
          }

          this.dataListLoading = false;

          // 改变序号
          res.data.list.forEach((item: any, index: number) => {
            item.index = index + 1 + (this.dataForm.currentPage - 1) * this.dataForm.limit;
          });

          this.dataList = res.data.list;
          this.dataForm.total = res.data.total;
        });

FOUR 集思广益

欢迎大家对本问题留言或私信指教,一起学习提高!

- END -

ABOUT 关于作者

  • 宋大狮 | 执着于理想,纯粹与当下

  • 小唐狮 | 广场舞大军中最靓的仔

  • 0
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

程序员大澈

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

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

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

打赏作者

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

抵扣说明:

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

余额充值