首页 > 其他分享 >vxe-table 分页后序号连续

vxe-table 分页后序号连续

时间:2023-07-26 16:28:09浏览次数:50  
标签:pageNum vxe dataLibVersion 序号 清空 组件 table queryParams

需求

使用 vxe-table 分页后,序号连续。比如每页显示 10 条数据,点击第 2 页,序号从 11 起算。

问题

依照官网 vxe-table-序号 修改后,出现两个问题:

  1. 分页后序号还是不连续;
  2. 点击第 2 页,虽然显示的是第 2 页的数据,但是分页区域的当前页还是 1。

image

methods: {
    /* 自定义序号显示 */
    seqMethod({ rowIndex }) {
      return (
        (this.queryParams.pageNum - 1) * this.queryParams.pageSize + rowIndex + 1
      );
    },
}

image

解决

猜想

预估是 pageNum 有问题。

经过排查,发现:点击第 2 页后,queryParams.pageNum 会从 2 变为 1。而 data 中 pageNum 的初始值也是 1。

因此猜想:该组件进行了重新加载。

为了验证这个猜想,把 pageNum 初始值改为 2,发现不会出现上述问题。说明猜想正确。

image

原因分析

进一步分析:为什么组件会重新加载?

通过如下的代码梳理,A -> B -> C 这三个组件,C组件是 Pagination,B组件是C组件的parent组件,A组件是B组件的parent组件。

  1. 由于 :page.sync="queryParams.pageNum"中的 .sync 修饰符,导致C组件的 page 改变,会引起B组件的 queryParams.pageNum 同步改变。;

    image

  2. pageNum 切换,触发C组件的 handleCurrentChange 事件,

    image

    进一步触发B组件的 reloadData 事件,

    image

    image

    进一步触发A组件的 reloadData 事件。

    image

    A组件中:会继续触发 loadData 事件 -> 清空 dataLibVersion 并执行loadStanOps 事件。

    image

    image

    这会导致 dataLibVersion 改变(有值 -> 清空 -> 有值)。而 dataLibVersion 清空会导致 dataList 清空,

    image

    image

    dataList 是B组件的源数据,即 dataList 的改变会导致B组件重新加载,就会使得B组件的 queryParams.pageNum 重置为初始值 1。

    image

    image

解决办法

只要不让A组件的 dataLibVersion 清空即可,为了减少修改A组件代码对其他功能的影响,只需要用 loadByPageType 事件代替 loadData 即可。

image

参考链接

深入理解.sync用法

标签:pageNum,vxe,dataLibVersion,序号,清空,组件,table,queryParams
From: https://www.cnblogs.com/shayloyuki/p/17582763.html

相关文章

  • iptables
    一、iptables简介iptables是linux自带的一款防火墙工具,它能帮助我们基于规则完成数据包过滤、数据包重定向和网络地址转换功能。   严格的说,iptables其实不是真正的防火墙,我们可以把它理解成一个客户端代理,用户通过iptables这个代理,将用户的安全设定执行到对应的”安全框架......
  • iptables——网络防火墙
    概念介绍主机防火墙:针对单个主机进行防护网络防火墙:往往处于网络入口或边缘,针对于网络入口进行防护。服务于防火墙背后的本地局域网。当外部网络的主机与内部网络的主机通信时,不管是由外部主机发往内部主机的报文,还是由内部主机发往外部主机的报文,都需要经过iptables所在的主机......
  • iptables——匹配条件
    基本匹配条件取反操作只针对单个IP,与同时指定多个IP的操作不能同时使用。当一条规则中有多个匹配条件时,这多个匹配条件之间,默认存在“与”的关系。即报文必须同时满足这些条件,才算被规则匹配。0.0.0.0/0表示所有IP。ssh协议的传输层属于tcp协议类型。1.源IP地址-s匹配报文的......
  • iptables——黑白名单机制
    黑名单机制当链的默认策略设置为ACCEPT时,按照道理来说,在链中配置规则时,对应的动作应该设置为DROP或者REJECT。因为,默认策略已经为ACCEPT了,如果在设置规则时,对应动作仍然为ACCEPT,那么所有报文都会被放行,因为不管报文是否被规则匹配到都会被ACCEPT,所以就失去了访问控制的意义。所......
  • iptables——自定义链创建及引用
    当默认链中的规则非常多时,不方便我们管理,此时可以考虑用自定义链。比如将所有针对80端口的web入站规则都写入到IN_WEB自定义链中,将所有针对sshd的出站规则都写入到OUT_SSH自定义链中。创建自定义链#在filter表中创建IN_WEB自定义链iptables-tfilter-NIN_WEB引用自定......
  • iptables——相关概念
    本系列文章参考朱双印博客,原文链接:https://www.zsythink.net/archives/1199写在前面设置iptables防火墙,需要明确的2点:1.本机开通了哪些服务端口2.有哪些机器需要访问本机一般为了安全性考虑,先只开通需要本机对需要访问本机的22端口和本机的服务端口。#阻止所有流量iptable......
  • Tableau 分组排序,并显示前几名()
    待更新1、index+rank 2、LOD表达式+ PERCENTILE()①各个子类别下95%以下的数据,对这部分数据进行统计计算: [销售额]<=  {FIXED[子类别]:PERCENTILE([销售额],0.95)} ②在别处查到的,暂时不知道怎么用,先记录在此:......
  • 前端-antd table 分页器自定义
      按照时间排序, ......
  • 通过iptables转发后的端口telnet通但是curl不通的问题
    今天遇到一个问题,一个隔离安全域的服务器需要访问承载网上的gitlab,但是无法直接做互通,所以需要通过iptables转发一次。完成iptables规则后,发现telnet端口是通的但是curlhttp:地址加端口就会返回不通。于是不停的改iptables规则,甚至放行forword规则,最后检查发现是存在外网的代理(代......
  • Ubuntu中iptables的相关操作命令
    iptables简介:Iptables和UFW (UncomplicatedFirewall)都是Linux操作系统中常用的防火墙管理工具,它们的主要区别如下:相同点:两者都是Linux操作系统中的防火墙管理工具,可以配置网络规则以限制网络流量。工作原理:iptables和UFW都基于netfilter框架来实现防火墙功能。......