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 相关文章推荐
Array.prototype 的泛型应用分析
Apr 30 Javascript
jQuery+jqmodal弹出窗口实现代码分明
Jun 14 Javascript
javascript setAttribute, getAttribute 在不同浏览器上的不同表现
Aug 05 Javascript
瀑布流布局并自动加载实现代码
Mar 12 Javascript
js遍历、动态的添加数据的小例子
Jun 22 Javascript
JavaScript中的console.group()函数详细介绍
Dec 29 Javascript
JavaScript中的变量定义与储存介绍
Dec 31 Javascript
浅谈javascript原型链与继承
Jul 13 Javascript
jQuery实现在最后一个元素之前插入新元素的方法
Jul 18 Javascript
微信小程序 火车票查询实例讲解
Oct 17 Javascript
vue中选项卡点击切换且能滑动切换功能的实现代码
Nov 25 Javascript
详解vue-cli+element-ui树形表格(多级表格折腾小计)
Apr 17 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
菜鸟修复电子管记
2021/03/02 无线电
PHP字符转义相关函数小结(php下的转义字符串)
2007/04/12 PHP
简单的移动设备检测PHP脚本代码
2011/02/19 PHP
php生成excel列名超过26列大于Z时的解决方法
2014/12/29 PHP
php安装ssh2扩展的方法【Linux平台】
2016/07/20 PHP
Jquery 基础学习笔记之文档处理
2009/05/29 Javascript
Javascript this指针
2009/07/30 Javascript
JavaScript之自定义类型
2012/05/04 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
js 判断js函数、变量是否存在的简单示例代码
2014/03/04 Javascript
js实现在网页上简单显示时间的方法
2015/03/02 Javascript
基于Vue.js的表格分页组件
2016/05/22 Javascript
AngularJS使用指令增强标准表单元素功能
2016/07/01 Javascript
Angular+Bootstrap+Spring Boot实现分页功能实例代码
2017/07/21 Javascript
vue-cli初始化项目中使用less的方法
2018/08/09 Javascript
Vue-router的使用和出现空白页,路由对象属性详解
2018/09/03 Javascript
使用weixin-java-miniapp配置进行单个小程序的配置详解
2019/03/29 Javascript
Vue移动端项目实现使用手机预览调试操作
2020/07/18 Javascript
Vue实现简单的拖拽效果
2020/08/25 Javascript
Vue前端判断数据对象是否为空的实例
2020/09/02 Javascript
Python的Flask框架与数据库连接的教程
2015/04/20 Python
使用Python的Scrapy框架十分钟爬取美女图
2016/12/26 Python
Python+selenium实现截图图片并保存截取的图片
2018/01/05 Python
Python3爬虫爬取百姓网列表并保存为json功能示例【基于request、lxml和json模块】
2018/12/05 Python
总结python中pass的作用
2019/02/27 Python
python函数与方法的区别总结
2019/06/23 Python
如何用Matlab和Python读取Netcdf文件
2021/02/19 Python
初中生物教学反思
2014/01/10 职场文书
纪念建党演讲稿范文
2014/01/13 职场文书
乡镇干部十八大感言
2014/02/17 职场文书
学校端午节活动方案
2014/08/23 职场文书
小学生国庆65周年演讲稿范文(2篇)
2014/09/21 职场文书
结婚主持人致辞
2015/07/28 职场文书
《全神贯注》教学反思
2016/02/22 职场文书
MySQL库表名大小写的选择
2021/06/05 MySQL
什么是Python装饰器?如何定义和使用?
2022/04/11 Python