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 相关文章推荐
JQuery toggle使用分析
Nov 16 Javascript
jQuery EasyUI 开源插件套装 完全替代ExtJS
Mar 24 Javascript
Jquery $.getJSON 在IE下的缓存问题解决方法
Oct 10 Javascript
开源的javascript项目Kissy介绍
Nov 28 Javascript
完美实现八种js焦点轮播图(下篇)
Apr 20 Javascript
AngularJS 视图详解及示例代码
Aug 17 Javascript
详解Jquery的事件操作和文档操作
Dec 19 Javascript
BootStrap便签页的简单应用
Jan 06 Javascript
vue如何判断dom的class
Apr 26 Javascript
微信小程序单选radio及多选checkbox按钮用法示例
Apr 30 Javascript
在vue项目中使用sass语法问题
Jul 18 Javascript
详解vue-cli项目开发/生产环境代理实现跨域请求
Jul 23 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根据IP判断地区名信息的示例代码
2014/03/03 PHP
PHP实现自动对图片进行滚动显示的方法
2015/03/12 PHP
解决extjs在firefox中关闭窗口再打开后iframe中js函数访问不到的问题
2008/11/06 Javascript
RGB颜色值转HTML十六进制(HEX)代码的JS函数
2009/04/25 Javascript
JQuery显示、隐藏div的几种方法简明总结
2015/04/16 Javascript
JavaScript过滤字符串中的中文与空格方法汇总
2016/03/07 Javascript
谈谈jQuery之Deferred源码剖析
2016/12/19 Javascript
xmlplus组件设计系列之列表(4)
2017/04/26 Javascript
jquery.masonry瀑布流效果
2017/05/25 jQuery
JS获取url参数,JS发送json格式的POST请求方法
2018/03/29 Javascript
微信小程序登录换取token的教程
2018/05/31 Javascript
微信小程序-form表单提交代码实例
2019/04/29 Javascript
vue实现数字动态翻牌的效果(开箱即用)
2019/12/08 Javascript
element表格翻页第2页从1开始编号(后端从0开始分页)
2019/12/10 Javascript
JS的时间格式化和时间戳转换函数示例详解
2020/07/27 Javascript
详解vue 中 scoped 样式作用域的规则
2020/09/14 Javascript
Javascript新手入门之字符串拼接与变量的应用
2020/12/03 Javascript
python自动格式化json文件的方法
2015/03/11 Python
Python数据类型之Set集合实例详解
2019/05/07 Python
python plotly绘制直方图实例详解
2019/07/22 Python
详细介绍Python进度条tqdm的使用
2019/07/31 Python
Python笔记之代理模式
2019/11/20 Python
python内置模块collections知识点总结
2019/12/19 Python
利用python实现逐步回归
2020/02/24 Python
在Keras中CNN联合LSTM进行分类实例
2020/06/29 Python
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
string = null 和string = ''的区别
2013/04/28 面试题
内业资料员岗位职责
2014/01/04 职场文书
人力资源部门的主要职能
2014/02/22 职场文书
优秀研究生主要事迹
2014/06/03 职场文书
2015年初中生自我评价范文
2015/03/03 职场文书
关于战胜挫折的名言警句大全!
2019/07/05 职场文书
2019请假条的基本格式及范文!
2019/07/05 职场文书
golang中切片copy复制和等号复制的区别介绍
2021/04/27 Golang
Python使用BeautifulSoup4修改网页内容
2022/05/20 Python
分享很少见很有用的SQL功能CORRESPONDING
2022/08/05 MySQL