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 相关文章推荐
JS实现在Repeater控件中创建可隐藏区域的代码
Sep 16 Javascript
用IE重起计算机或者关机的示例代码
Mar 10 Javascript
原生js事件的添加和删除的封装
Jul 01 Javascript
JavaScript实现删除,移动和复制文件的方法
Aug 05 Javascript
JS控制FileUpload的上传文件类型实例代码
Oct 07 Javascript
js实现兼容PC端和移动端滑块拖动选择数字效果
Feb 16 Javascript
js实现功能比较全面的全选和多选
Mar 02 Javascript
react开发中如何使用require.ensure加载es6风格的组件
May 09 Javascript
JS原生带小白点轮播图实例讲解
Jul 22 Javascript
angular2+node.js express打包部署的实战
Jul 27 Javascript
jQuery实现的页面详情展开收起功能示例
Jun 11 jQuery
Vue 数据绑定的原理分析
Nov 16 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连接MySQL代码的参数说明
2008/06/07 PHP
PHP设计模式之单例模式定义与用法分析
2019/03/26 PHP
javascript Array.prototype.slice使用说明
2010/10/11 Javascript
javascript 使用 NodeList需要注意的问题
2013/03/04 Javascript
js 遍历json返回的map内容示例代码
2013/10/29 Javascript
JS如何判断移动端访问设备并解析对应CSS
2013/11/27 Javascript
Jquery 改变radio/checkbox选中状态,获取选中的值(示例代码)
2013/12/12 Javascript
jQuery数据缓存用法分析
2015/02/20 Javascript
javascript版2048小游戏
2015/03/18 Javascript
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
浅谈JavaScript 标准对象
2016/06/02 Javascript
原生js实现返回顶部缓冲效果
2017/01/18 Javascript
vue分类筛选filter方法简单实例
2017/03/30 Javascript
JQuery 封装 Ajax 常用方法(推荐)
2017/05/21 jQuery
jQuery插件artDialog.js使用与关闭方法示例
2017/10/09 jQuery
微信小程序dom操作的替代思路实例分析
2018/12/06 Javascript
微信小程序外卖选购页实现切换分类与数量加减功能案例
2019/01/15 Javascript
Vue中使用better-scroll实现轮播图组件
2020/03/07 Javascript
JQuery事件冒泡和默认行为代码实例
2020/05/13 jQuery
vue实现虚拟列表功能的代码
2020/07/28 Javascript
[01:33:07]VGJ.T vs Newbee Supermajor 败者组 BO3 第一场 6.6
2018/06/07 DOTA
[44:37]完美世界DOTA2联赛PWL S3 Forest vs access 第一场 12.11
2020/12/13 DOTA
Python中文编码那些事
2014/06/25 Python
Python的Django中将文件上传至七牛云存储的代码分享
2016/06/03 Python
Python实现的特征提取操作示例
2018/12/03 Python
扩展Django admin的list_filter()可使用范围方法
2019/08/21 Python
python FTP批量下载/删除/上传实例
2019/12/22 Python
python 已知平行四边形三个点,求第四个点的案例
2020/04/12 Python
html5 Canvas画图教程(10)—把面拆成线条模拟出圆角矩形
2013/01/09 HTML / CSS
贝佳斯官方网站:Borghese
2020/05/08 全球购物
校园元旦活动总结
2014/07/09 职场文书
2014年幼儿园国庆主题活动方案
2014/09/16 职场文书
党委班子纠正“四风”问题整改措施
2014/10/28 职场文书
2014年学生党支部工作总结
2014/12/20 职场文书
成品仓库管理员岗位职责
2015/04/09 职场文书
导游词之山西-五老峰
2019/10/07 职场文书