ant design vue 表格table 默认勾选几项的操作


Posted in Javascript onOctober 31, 2020

为什么我同样的功能要用react 、vue 都写一遍 ?

啊我真是不是闲的蛋疼啊(~ o ~)~zZ

在 ant design vue 中,表格的第一列是联动的选择框

截一张官方文档图,图示最后一排就是禁用状态

ant design vue 表格table 默认勾选几项的操作

点击 checkbox 会触发onChange , 从而得到selectedRowKeys,selectedRowKeys就是选中的 key 数组。

onChange: (selectedRowKeys, selectedRows) => {
  console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
 },

默认禁用disable 某项时,官方文档给出了例子:

rowSelection() {
   const { selectedRowKeys } = this;
   return {
    onChange: (selectedRowKeys, selectedRows) => {
     console.log(`selectedRowKeys: ${selectedRowKeys}`, 'selectedRows: ', selectedRows);
    },
    getCheckboxProps: record => ({
     props: {
      disabled: record.name === 'Disabled User', // Column configuration not to be checked
      name: record.name,
     }
    }),
   }
  }

主要是getCheckboxProps 里面的disabled 属性控制的。

默认选中某项时,需要 getCheckboxProps 里面的defaultChecked 属性控制:

业务场景:勾选了几项保存之后,下次进来编辑还是需要展示之前勾选的项,这时候就用到了默认勾选的属性

之前只贴了核心逻辑,好多人好像没看懂,我把整体的都贴上来了。

核心代码defaultChecked: selectedRowKeys.includes(record.id) 的思路就是所有表格里所有包含已选中项的id,都给他默认选中

data () {
  return {
   // ... 
   record: '',
   rowSelection: {
    selectedRowKeys: [],
    onChange: this.onSelectChange
   }
 },
 methods: {
   handleEdit (record) {
   //...省略我的业务逻辑
    if (record) {
    //...省略我的业务逻辑
    let selectedRowKeys =
     (record.roleIdList.length > 0 && record.roleIdList.split(',')) || [];
    this.rowSelection = {
     selectedRowKeys: selectedRowKeys,
     onChange: this.onSelectChange,
     getCheckboxProps: record => {
      return {
       props: {
        defaultChecked: selectedRowKeys.includes(record.id)
       }
      };
     }
    };
   } else {
    this.record = '';
    this.rowSelection = {
     selectedRowKeys: [],
     onChange: this.onSelectChange
    }
   }

 },
 onSelectChange (selectedRowKeys) {
   // 去重 Array.from(new Set(arr))
   this.rowSelection.selectedRowKeys = Array.from(new Set(selectedRowKeys));
 }
 }

ant design vue 版本和 react 版本写法略有不同,disabled 和 defaultChecked 都挂在了props 属性下。

补充知识:Ant-Design-Pro中Table组件rowSelection方法的一些坑

如下所示:

<Table rowSelection={rowSelection} columns={columns} dataSource={data} />

在 <Table/> 组件中有 rowSelection={rowSelection} 方法,可以让Table的第一列成为联动的选择框。

API中说到通过 rowSelection.selectedRowKeys 来控制选中项。比较坑的是,selectedRowKeys 控制的只是dataSource当前的顺序编号。

一定要加上rowKey="id"或者rowKey={record => record.id},后来经过多次调试发现很多BUG都跟这个参数有关,不然会导致联动的选择框状态异常。id可以自定义为dataSource中的某个值。

以上这篇ant design vue 表格table 默认勾选几项的操作就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript CSS修改学习第二章 样式
Feb 19 Javascript
JS自定义选项卡函数及用法实例分析
Sep 02 Javascript
js 模仿锚点定位的实现方法
Nov 19 Javascript
浅谈JavaScript异步编程
Jan 20 Javascript
Vue使用.sync 实现父子组件的双向绑定数据问题
Apr 04 Javascript
JS实现水平遍历和嵌套递归操作示例
Aug 15 Javascript
微信小程序实现写入读取缓存详解
Aug 30 Javascript
js实现固定区域内的不重叠随机圆
Oct 24 Javascript
小程序实现上传视频功能
Aug 18 Javascript
vue组件讲解(is属性的用法)模板标签替换操作
Sep 04 Javascript
mustache.js实现首页元件动态渲染的示例代码
Dec 28 Javascript
Node.js中的异步生成器与异步迭代详解
Jan 31 Javascript
浅谈Vue使用Cascader级联选择器数据回显中的坑
Oct 31 #Javascript
Ant design vue中的联动选择取消操作
Oct 31 #Javascript
Ant Design Vue table中列超长显示...并加提示语的实例
Oct 31 #Javascript
vue中可编辑树状表格的实现代码
Oct 31 #Javascript
Ant Design Pro 之 ProTable使用操作
Oct 31 #Javascript
react ant Design手动设置表单的值操作
Oct 31 #Javascript
解决pycharm双击但是无法打开的情况
Oct 31 #Javascript
You might like
PHP出错界面
2006/10/09 PHP
一些关于PHP的知识
2006/11/17 PHP
php实现12306余票查询、价格查询示例
2014/04/17 PHP
浅谈php优化需要注意的地方
2014/11/27 PHP
php的crc32函数使用时需要注意的问题(不然就是坑)
2015/04/21 PHP
PHP 使用位运算实现四则运算的代码
2021/03/09 PHP
javascript优先加载笔记代码
2008/09/30 Javascript
node.js中的fs.fstatSync方法使用说明
2014/12/15 Javascript
Javascript 运动中Offset的bug解决方案
2014/12/24 Javascript
js正则匹配出所有图片及图片地址src的方法
2015/06/08 Javascript
JS+CSS实现简易的滑动门效果代码
2015/09/24 Javascript
Bootstrap+jfinal实现省市级联下拉菜单
2016/05/30 Javascript
vue语法之拼接字符串的示例代码
2017/10/25 Javascript
Vue-Access-Control 前端用户权限控制解决方案
2017/12/01 Javascript
解决iview打包时UglifyJs报错的问题
2018/03/07 Javascript
详解webpack模块加载器兼打包工具
2018/09/11 Javascript
微信小程序页面间传值与页面取值操作实例分析
2019/04/30 Javascript
微信小程序 动态修改页面数据及参数传递过程详解
2019/09/27 Javascript
[49:27]LGD vs OG 2018国际邀请赛小组赛BO2 第二场 8.16
2018/08/17 DOTA
Python每天必学之bytes字节
2016/01/28 Python
Python文件与文件夹常见基本操作总结
2016/09/19 Python
python3实现windows下同名进程监控
2018/06/21 Python
Python实现的爬取百度贴吧图片功能完整示例
2019/05/10 Python
python 扩展print打印文件路径和当前时间信息的实例代码
2019/10/11 Python
Python reversed函数及使用方法解析
2020/03/17 Python
python3 re返回形式总结
2020/11/20 Python
毕业生应聘幼儿园的自荐信
2013/11/20 职场文书
十月份红领巾广播稿
2014/01/22 职场文书
房屋转让协议书
2014/04/11 职场文书
亲子阅读的活动方案
2014/08/15 职场文书
酒店餐厅2014重阳节活动策划方案
2014/09/16 职场文书
失职检讨书大全
2015/01/26 职场文书
写给孩子的新学期寄语
2015/02/27 职场文书
紫日观后感
2015/06/05 职场文书
爱国主义教育基地观后感
2015/06/18 职场文书
2019公司管理制度
2019/04/19 职场文书