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

antd+vue——实现table组件跨页多选,已选择数据禁止第二次重复选择

需求场景:点击【新增】按钮可以在分页弹窗中跨页多选选择数据后添加到页面中,再次点击【新增】,已经选择过的数据则置灰不让重复选择。
在这里插入图片描述
选择后,置灰
在这里插入图片描述
点击【确定】数据添加到页面中,可再次点击【新增】进行添加数据
在这里插入图片描述

解决步骤1:table组件的写法

 <a-table:row-key="(r) => r.id":columns="columns":dataSource="dataSource":pagination="pagination"@change="changeTable":row-selection="rowSelection":rowClassName="rowClassNameFn"bordered:scroll="{ y: 400 }"></a-table>

1.columns:table表格配置的列
2.dataSource:table表格的数据源
3.pagination:分页参数
4.changeTable:切换页码/页容量
5.rowSelection:计算属性,用于实时获取选择情况
6.rowClassNameFn:行样式

rowSelection开始说吧,前面的只要是有点经验的,都会知道了。。

 computed: {rowSelection() {return {selectedRowKeys: this.selectedRowKeys,selectedRows: this.selectedRows,onChange: (selectedRowKeys, selectedRows) => {this.selectedRowKeys = selectedRowKeys;},onSelect: (record, selected, row) => {if (selected) {this.selectedRows.push(record);} else {let selectedRows = [...this.selectedRows];this.selectedRows = selectedRows.filter((item) => item.id != record.id);}},onSelectAll: (selected, selectedRows, changeRows) => {if (selected) {this.selectedRows = this.selectedRows.concat(changeRows);} else {let selectedRows = [...changeRows];this.selectedRows = selectedRows.filter((item) => this.selectedRowKeys.indexOf(item.id) == -1);}},getCheckboxProps: (record) => ({props: {disabled:this.areadyRows &&this.areadyRows.filter((item) => (item.controlCardNo || item.cardNo) == record.cardNo).length > 0,},}),};},},

上面的selectedRowsselectedRowKeys就是对应的行id集合以及行集合数组,areadyRows就是已选择的数据,这个跟selectedRows不一样的问题在于是否跨页。

行样式:

//行高亮
rowClassNameFn(record) {if (this.areadyRows &&this.areadyRows.filter((item) => (item.controlCardNo || item.cardNo) == record.cardNo).length > 0) {return 'disabledCls';}
},

设置样式:

<style lang="less" scoped>
/deep/.ant-table-tbody > tr.disabledCls {background: #f7f7f7 !important;
}
/deep/.ant-table-tbody > tr.disabledCls:hover > td {background: #f7f7f7 !important;
}
</style>

完成!!!多多积累,多多收获!!!

相关文章:

  • 深入理解C++中的锁
  • Linux上脚本备份数据库(升级版)
  • 贪心算法——加工木棍(C++)
  • 上位机图像处理和嵌入式模块部署(mcu 项目1:上位机编写)
  • vue3实现多表头列表el-table,拖拽,鼠标滑轮滚动条优化
  • Batch Size 不同对evaluation performance的影响
  • Stream toArray 好过collect
  • 常用知识点问答
  • 【Spring Boot】Java 持久层 API:JPA
  • 数据结构-第七章(B树和B+树)
  • 每日一道算法题 判断子序列
  • linux 环境报错:Peer reports incompatible or unsupported protocol version
  • sheng的学习笔记-hadoop,MapReduce,yarn,hdfs框架原理
  • 不使用AMap.DistrictSearch,通过poi数据绘制省市县区块
  • 巴西市场有哪些电商平台?巴西最畅销的产品有哪些?
  • 【跃迁之路】【585天】程序员高效学习方法论探索系列(实验阶段342-2018.09.13)...
  • 3.7、@ResponseBody 和 @RestController
  • CentOS 7 修改主机名
  • HTTP传输编码增加了传输量,只为解决这一个问题 | 实用 HTTP
  • Java深入 - 深入理解Java集合
  • JDK 6和JDK 7中的substring()方法
  • oschina
  • PHP的Ev教程三(Periodic watcher)
  • TiDB 源码阅读系列文章(十)Chunk 和执行框架简介
  • 从tcpdump抓包看TCP/IP协议
  • 构建工具 - 收藏集 - 掘金
  • 深度解析利用ES6进行Promise封装总结
  • 手写双向链表LinkedList的几个常用功能
  • 思考 CSS 架构
  • 如何用纯 CSS 创作一个货车 loader
  • ​七周四次课(5月9日)iptables filter表案例、iptables nat表应用
  • #我与Java虚拟机的故事#连载01:人在JVM,身不由己
  • #我与Java虚拟机的故事#连载14:挑战高薪面试必看
  • #我与Java虚拟机的故事#连载15:完整阅读的第一本技术书籍
  • #我与Java虚拟机的故事#连载19:等我技术变强了,我会去看你的 ​
  • (2022 CVPR) Unbiased Teacher v2
  • (独孤九剑)--文件系统
  • (二)fiber的基本认识
  • (附源码)ssm高校运动会管理系统 毕业设计 020419
  • (附源码)计算机毕业设计ssm基于Internet快递柜管理系统
  • (三分钟)速览传统边缘检测算子
  • (四) 虚拟摄像头vivi体验
  • (学习日记)2024.04.04:UCOSIII第三十二节:计数信号量实验
  • .htaccess配置常用技巧
  • .MyFile@waifu.club.wis.mkp勒索病毒数据怎么处理|数据解密恢复
  • .net core 6 redis操作类
  • .Net6支持的操作系统版本(.net8已来,你还在用.netframework4.5吗)
  • .NET8 动态添加定时任务(CRON Expression, Whatever)
  • ??如何把JavaScript脚本中的参数传到java代码段中
  • [ 转载 ] SharePoint 资料
  • [BIZ] - 1.金融交易系统特点
  • [BJDCTF2020]The mystery of ip1
  • [boost]使用boost::function和boost::bind产生的down机一例
  • [BZOJ1053][HAOI2007]反素数ant
  • [C#]科学计数法(scientific notation)显示为正常数字