当前位置: 首页 > 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>

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

http://www.lryc.cn/news/395197.html

相关文章:

  • Python采集京东标题,店铺,销量,价格,SKU,评论,图片
  • 数据中台指标管理系统
  • 什么是ThreadLocal以及内存泄漏问题、hash冲突问题
  • 从零开始做题:My_lllp
  • 如何编译ffmpeg支持h265(hevc)?
  • UNIAPP_顶部导航栏右侧添加uni-icons图标,并绑定点击事件,自定义导航栏右侧图标
  • Redis原理-数据结构
  • 计算机网络 - 万字长文
  • 基于java+springboot+vue实现的仓库管理系统(文末源码+lw+ppt)23-499
  • 网络安全概述
  • Java传引用问题
  • P8086 『JROI-5』Music
  • 【Java]认识泛型
  • git要忽略对文件的本地修改
  • Linux学习笔记(三)文件权限
  • 自定义类TMyLabel继承自QLabel ,实现mouseDoubleClickEvent
  • 逻辑回归模型(非回归问题,而是分类问题)
  • qt hasPendingDatagrams() 函数
  • 数据结构第08小节:双端队列
  • Python骨架肌体运动学数学模型
  • 二叉树的序列化和反序列化(Java)
  • Java中的泛型类
  • 57、Flink 的项目配置概述
  • 零基础自学爬虫技术该从哪里入手?
  • Vue.js 基础入门指南
  • 山泰科技集团陈玉东:争当数字化时代的知识产权卫士
  • WBCE CMS v1.5.2 远程命令执行漏洞(CVE-2022-25099)
  • 鸿蒙语言基础类库:【@ohos.url (URL字符串解析)】
  • 【AutoencoderKL】基于stable-diffusion-v1.4的vae对图像重构
  • 《警世贤文》摘抄:守法篇、惜时篇、修性篇、修身篇、待人篇、防人篇(建议多读书、多看报、少吃零食多睡觉)