antd中 a-table表格组件跨页勾选,数据回显勾选的问题

news2024/9/21 2:43:00

踩坑:a-table翻页勾选数据丢失,数据回显勾选
需求:input框显示勾选的所有数据里面的name组成的字符串,点击后面的图标弹出弹框,并且之前选择的数据需要回显勾选。如下图所示
在这里插入图片描述

<a-card :bordered="false">
          <s-table
            ref="table"
            :columns="columns"
            :data="loadData"
            :alert="true"
            :rowKey="(record) => record.id"
            :rowSelection="rowSelection"
          >
            <span
              slot="sex"
              slot-scope="text"
            >
              {{ sexFilter(text) }}
            </span>
            <span
              slot="status"
              slot-scope="text"
            >
              {{ statusFilter(text) }}
            </span>
          </s-table>
        </a-card>
data(){
     return{
     	selectedRowKeys:[] //保存的选择的keyId列表
     	selectedRows:[] //保存的所有选择数据列表
     	rowSelection: {
        columnTitle: ' ',
        selectedRowKeys: this.selectedRowKeys,
        onSelect: this.onSelect,
        onSelectAll: this.onSelectAll,
        getCheckboxProps: (recode) => {
          if (this.selectedRowKeys.includes(recode.id)) {
            // 如果数组中无则添加
            let index = this.selectedRows.findIndex((v) => v.id == recode.id)
            if (index < 0) {
              this.selectedRows.push(recode)
            }
          }
          return {
            props: {
              defaultChecked: this.selectedRowKeys.includes(recode.id),
            },
          }
        },
      },
	}
}
methods:{
	onSelect(record, selected, selectedRowsData, nativeEvent) {
      // 选择
      if (selected) {
        this.selectedRowKeys.push(record.id)
        this.selectedRows.push(record)
      } else {
        // 取消选中
        this.selectedRowKeys = this.selectedRowKeys.filter((v) => v !== record.id)
        this.selectedRows.splice(
          this.selectedRows.findIndex((x) => x.id === record.id),
          1
        )
      }
      this.getArray(this.selectedRows)
    },
     /**
     * selected=true 全选
     * selected = false 取消全选
     * selectedRows 全选的行数据(包括默认选中的)
     * changeRows 前后改变的数据
     */
    onSelectAll(selected, selectedRows, changeRows) {
      console.log(selected, selectedRows, changeRows)
      // 全选
      if (selected) {
        changeRows.map((x) => {
          this.selectedRowKeys.push(x.id) //选中id
        })
        this.selectedRows = this.selectedRows.concat(changeRows)
      } else {
        // 取消全选
        changeRows.forEach((item) => {
          // 去掉选择取消的keyID
          this.selectedRowKeys = this.selectedRowKeys.filter((v) => v !== item.id)
        })
        this.selectedRows = this.selectedRows.filter((x) => !changeRows.find((i) => i.id === x.id))
      }
      this.getArray(this.selectedRows)
    },
    
     // 数组去重
    getArray(selectData) {
      let map = new Map()
      for (let item of selectData) {
        if (!map.has(item.id)) {
          map.set(item.id, item)
        }
      }
      this.selectedRows = [...map.values()]
      console.log(this.selectedRows, '数组去重后')
    },
}

现在是实现了翻页记忆选择,数据回显的时候也可实现
但是也发现了一个问题,如果某一页的数据全部被勾选回显,但是全选框不会被选中,目前也没有想到啥好的解决办法( 最后我是把全选框给去掉了 ),大佬们要是有遇到过的话,可以评论留一下解决办法,先说声谢谢喽~

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/987523.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

苹果笔有必要买吗?ipad可以用的手写笔

众所周知&#xff0c;现在网上越来越多平替电容笔的出现&#xff0c;无论是价格和功能&#xff0c;几乎都很接近。很多小伙伴不知如何下手&#xff0c;不知道如何从众多品牌中挑选出适合自己的电容笔&#xff0c;今天我为大家总结一下网上几款热销&#xff0c;平价的国货品牌电…

【计算机基础知识6】跨域问题及解决方案

目录 前言 一、什么是跨域问题&#xff1f; 二、为什么会出现跨域问题&#xff1f; 三、常见的跨域解决方法 1. JSONP&#xff08;JSON with Padding&#xff09; 2. CORS&#xff08;跨域资源共享&#xff09; 3. 代理服务器 4. postMessage() 前言 跨域是前端开发中经…

2023高教社杯数学建模E题思路代码 - 黄河水沙监测数据分析

# 1 赛题 E 题 黄河水沙监测数据分析 黄河是中华民族的母亲河。研究黄河水沙通量的变化规律对沿黄流域的环境治理、气候变 化和人民生活的影响&#xff0c; 以及对优化黄河流域水资源分配、协调人地关系、调水调沙、防洪减灾 等方面都具有重要的理论指导意义。 附件 1 给出了位…

win11切换输入法快捷键怎么设置

win11系统有自动的切换输入法的快捷键&#xff0c;如果我们觉得系统默认的快捷键使用起来不习惯的话&#xff0c;我们可以将切换输入法的快捷键进行更改设置&#xff0c;这里小编就给大家带来win11输入法切换快捷键的设置方法&#xff0c;感兴趣的小伙伴快来看看吧。 win11输入…

企业变更记录查询API:解密企业演变的关键数据

前言 随着市场竞争的不断升级和商业环境的动态变化&#xff0c;企业必须不断适应新的情况和变革。在这个过程中&#xff0c;企业的变更记录成为了关键的数据&#xff0c;它可以帮助企业了解自己的发展历程、监测竞争对手的动态、评估市场趋势和满足法律法规的合规要求。为了解…

Fair|Fur —— Object Nodes

目录 Guide Groom Guide Deform Guide Merge Hair Generate Guide Simulate Hair Card Generate Guide Groom 从skin几何体生成引导线&#xff0c;并在其节点内可进一步处理引导线&#xff1b;内嵌Hair Generate节点&#xff1b; 注&#xff1a;skin几何体应是静态的&am…

关于一次blog性能测试的过程和疑问

找了搭建的一个博客网站&#xff0c;拿来试着测了测&#xff0c;想看一下性能能达到什么目标&#xff1b; 测试过程中遇到一些问题&#xff0c;还无法凭自己找到原因&#xff0c;测试过程记录下来&#xff0c;希望有热心大佬多多指教&#xff1b; 目录 基准测试场景 1、首页…

基于JAVA SSM框架和JSP的超市小卖部管理系统设计

摘要 随着时代的发展&#xff0c;传统的超市购物方式已经不能满足人们的需求&#xff0c;对于顾客来说&#xff0c;排队购物和支付购物费用的问题亟待解决。对于实体超市来说&#xff0c;他们面临着网上购物的竞争压力&#xff0c;作为超市经理&#xff0c;他们要降低成本&…

【C语言】初阶测试 (带讲解)

目录 ① 选择题 1. 下列程序执行后&#xff0c;输出的结果为( ) 2. 以下程序的输出结果是&#xff1f; 3. 下面的代码段中&#xff0c;执行之后 i 和 j 的值是什么&#xff08;&#xff09; 4. 以下程序的k最终值是&#xff1a; 5. 以下程序的最终的输出结果为&#xff…

hive中遇到length函数不支持bigint

背景 hive中遇到length函数不支持bigint 解决方法&#xff0c;sql转为string之后计算长度 SELECT COUNT(1) FROM ( select msisdn FROM tb_nrmr_sample_lt_dd_total where loc_time in (23090201,23090202,23090203,23090204,23090205,23090206) and length(cast(msisdn as…

2023年9月NPDP产品经理国际认证报名,来弘博创新

产品经理国际资格认证NPDP是新产品开发方面的认证&#xff0c;集理论、方法与实践为一体的全方位的知识体系&#xff0c;为公司组织层级进行规划、决策、执行提供良好的方法体系支撑。 【认证机构】 产品开发与管理协会&#xff08;PDMA&#xff09;成立于1979年&#xff0c;是…

一种基于动态代理的通用研发提效解决方案

作为一名研发人员&#xff0c;除了业务开发之外&#xff0c;研发提效是一个永恒的话题&#xff0c;而女娲正是这一话题下进行的一次全面的剖析和实践。 作者&#xff1a;张全洪(钝悟) 一、女娲是什么 女娲是业务研发同学&#xff08;开发、测试、运维&#xff09;在软件迭代的…

高忆管理:军工板块走高,奥普光电涨停,恒宇信通等大涨

军工板块8日盘中发力走高&#xff0c;到发稿&#xff0c;晨曦航空、恒宇信通涨超12%&#xff0c;腾景科技涨逾11%&#xff0c;奥普光电涨停&#xff0c;霍莱沃、新余高科涨超7%。 对于该板块&#xff0c;组织表示&#xff0c;受职业增速下降以及“十四五”中期调整等不确定性因…

谈谈JSF业务线程池的大小配置 | 京东物流技术团队

1.简介 JSF业务线程池使用JDK的线程池技术&#xff0c;缺省情况下采用Cached模式&#xff08;核心线程数20&#xff0c;最大线程数200&#xff09;。此外&#xff0c;还提供了Fixed固定线程大小的模式&#xff0c;两种模式均可设置请求队列大小。 本文旨在通过一个简化场景&a…

如何利用python来提取SQL语句中的表名称

1.介绍 在某些场景下&#xff0c;我们可能需要从一个复杂的SQL语句中提取对应的表名称&#xff0c;在这样的场景下&#xff0c;我们如果在python中处理的话&#xff0c;就需要用到SQLparse这个库。 SQLparse 是一个用于解析 SQL 查询语句的 Python 库。它可以将复杂的 SQL 查询…

解决js计算小数不准的问题

1.使用计算函数 function accAdd(arg1, arg2) {var r1, r2, m;try { r1 arg1.toString().split(".")[1].length } catch (e) { r1 0 };try { r2 arg2.toString().split(".")[1].length } catch (e) { r2 0 };m Math.pow(10, Math.max(r1, r2));retur…

2023年9月北京/广州/深圳DAMA-CDGP数据治理专家认证报名

DAMA认证为数据管理专业人士提供职业目标晋升规划&#xff0c;彰显了职业发展里程碑及发展阶梯定义&#xff0c;帮助数据管理从业人士获得企业数字化转型战略下的必备职业能力&#xff0c;促进开展工作实践应用及实际问题解决&#xff0c;形成企业所需的新数字经济下的核心职业…

el-form表单中不同数据类型对应的时间格式化和校验规则

1. 在表单中, 当选择不同的数据类型时, 需要在下面选择时间时和数据类型对应上, 通过监听数据类型的变化, 给时间做格式化, 2. 但是当不按顺序选择数据类型后, 再选时间可能会报错, 所以需要在dom更新后, 再清空表单. 3. 校验规则, 结束时间需要大于开始时间, 但是不能选当前的…

报错ssh: Could not resolve hostname

…按照网上好多教程试了一下&#xff1a; 新建密钥&#xff0c;添加到gitee&#xff0c;重新测试。修改host&#xff0c;加入gitee的ip地址到里面去。修改.gifconfig配置文件&#xff0c;配置成ssh的仓库链接。 这上面的方法都不行&#xff0c;后面发现一篇文章&#xff1a;SS…

Spring 6.X IoC 容器

目录 一、Spring IoC 容器和 Bean 简介1.1、容器概述1.3、使用 一、Spring IoC 容器和 Bean 简介 下面主要介绍 Spring 框架对控制反转 (IoC) 原理的实现 首先要说明的是&#xff1a;IoC 也称为依赖注入&#xff0c;这是一个过程。 其次依赖项的定义&#xff1a;对象仅通过构造…