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 相关文章推荐
可恶的ie8提示缺少id未定义
Mar 20 Javascript
Egret引擎开发指南之发布项目
Sep 03 Javascript
JavaScript中的slice()方法使用详解
Jun 06 Javascript
简单纯js实现点击切换TAB标签实例
Aug 23 Javascript
JavaScript的代码编写格式规范指南
Dec 07 Javascript
浅谈Angularjs link和compile的使用区别
Oct 21 Javascript
简单实现js无缝滚动效果
Feb 05 Javascript
JS实现新建文件夹功能
Jun 17 Javascript
lhgcalendar时间插件限制只能选择三个月的实现方法
Jul 03 Javascript
Vue $emit $refs子父组件间方法的调用实例
Sep 12 Javascript
如何解决日期函数new Date()浏览器兼容性问题
Sep 11 Javascript
React+Redux实现简单的待办事项列表ToDoList
Sep 29 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登录环节防止sql注入的方法浅析
2014/06/30 PHP
PHP获取音频文件的相关信息
2015/06/22 PHP
PHP区块查询实现方法分析
2018/05/12 PHP
Laravel统计一段时间间隔的数据方法
2019/10/09 PHP
js 日期转换成中文格式的函数
2009/07/07 Javascript
鼠标事件的screenY,pageY,clientY,layerY,offsetY属性详解
2015/03/12 Javascript
jQuery插件pagination实现分页特效
2015/04/12 Javascript
用javascript实现自动输出网页文本
2015/07/30 Javascript
jquery+ajax请求且带返回值的代码
2015/08/12 Javascript
javascript函数式编程程序员的工具集
2015/10/11 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
javascript中数组和字符串的方法对比
2016/07/20 Javascript
如何在Angular2中使用jQuery及其插件的方法
2017/02/09 Javascript
浅谈vue.js中v-for循环渲染
2017/07/26 Javascript
Laravel整合Bootstrap 4的完整方案(推荐)
2018/01/25 Javascript
layui表格内放置图片,并点击放大的实例
2019/09/10 Javascript
JS typeof fn === 'function' &amp;&amp; fn()详解
2020/08/22 Javascript
解密Python中的描述符(descriptor)
2015/06/03 Python
django+js+ajax实现刷新页面的方法
2017/05/22 Python
python的文件操作方法汇总
2017/11/10 Python
Python常见数据类型转换操作示例
2019/05/08 Python
Python有参函数使用代码实例
2020/01/06 Python
Python中remove漏删和索引越界问题的解决
2020/03/18 Python
html5的websockets全双工通信详解学习示例
2014/02/26 HTML / CSS
韩国休闲女装品牌网站:ANAIS
2016/08/24 全球购物
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
写出程序把一个链表中的接点顺序倒排
2014/04/28 面试题
委托与事件是什么关系?为什么要使用委托
2014/04/18 面试题
编辑硕士自荐信范文
2013/11/27 职场文书
应届生自荐信范文
2014/02/21 职场文书
技校毕业生自荐信范文
2014/03/07 职场文书
社区交通安全实施方案
2014/03/22 职场文书
优秀共青团员事迹材料
2014/12/25 职场文书
受欢迎的自荐信,就这么写!
2019/04/19 职场文书
Pytorch中TensorBoard及torchsummary的使用详解
2021/05/12 Python
JavaWeb 入门:Hello Servlet
2021/07/16 Java/Android