Antd-vue Table组件添加Click事件,实现点击某行数据教程


Posted in Javascript onNovember 17, 2020

给Table组件添加Click事件,实现点击某行数据操作

customRow 设置行属性 Function(record, index)

通过customRow 属性给table添加自定义事件

<a-table
  :columns="columns"
  :dataSource="data"
  :rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange ,onSelect: handleSelect}"
  bordered
  :customRow="handleClickRow"
 >
 </a-table>
methods: {
 handleClickRow(record, index){
  return {
   on: {
    click: () => {
     console.log(record, index)
    console.log('点击行内容record' + record)
    console.log('序号索引index' + index)
    }
   }
  }
 }
}

控制台输出:

Antd-vue Table组件添加Click事件,实现点击某行数据教程

补充知识:利用filetr 操作 ant-design table某一行的某一列的数据。点击切换真实数据和加密数据

情景描述:

如果有这样一个需求,在table中的某一列的数据,不能直接展示原始数据,而是使用加密符号代替,只有点击了某行某列之后,才能切换到真实数据,每次点击就是一次切换。

这样类似的需求你会怎么实现?

这里使用ant-design UI框架中的table组件做为例子来讲。

首先,肯定会想到用filter(angular中叫pipe,vue里面叫filter)。

上代码:

<span slot="secret" slot-scope="record">
  <span @click="showCode(record)" style="cursor: pointer;">{{ record | 
  codeFilter(secret, currentRecordId) }}</span>
</span>

这里,我们使用了codeFilter这个filter,它有三个参数。

所以,我们先要创建这个filter,

Vue.filter('permisssionCodeFilter', function (data, secret, id) {
 // 初始状态,所有code都以保密符号显示
 if (!id) {
 if (secret) {
  return replaceString(data.code, '*')
 } else {
  return data.code
 }
 } else { // 如果是点击了某行,则只响应该行code是保密显示还是直接显示,其他非点击行都以保密符号显示
 if (id === data.id) {
  if (secret) {
  return replaceString(data.code, '*')
  } else {
  return data.code
  }
 } else {
  return replaceString(data.code, '*')
 }
 }
})

初始状态下,我们没有点击任何一行,所以id肯定是空的,那么根据secret这个参数是true还是false来决定所有行的数据都是直接显示还是加密符号显示。

replaceString()是一个公共方法,用来替换字符串的值

/**
 * replace string
 * @param string
 * @param target
 */
export function replaceString (string, target) {
 let retValue = string
 const stringArr = string.split('')
 stringArr.forEach(t => {
 retValue = retValue.replace(t, target)
 })
 return retValue
}

接着,如果是点击了某行的那个数据,怎么做到该数据要显示真实数据还是加密符号?如果是点了其他行,怎么隐藏该行的数据,而显示当前点击行的数据?

先看点击事件的方法:

showCode (record) {
  // 如果当前行显示的是密文,则先将点击行的id赋给currentId,以便下面这个条件可以满足,修改screct的值;
  // 如果当前行显示的是明文,则不需要满足下面的条件,secret的值无需修改,因为点击该行之后,所有行数据都是显示密文
  if (this.secret) {
  this.currentId = record.id
  }
  if (!this.currentId || this.currentId === record.id) {
  this.secret = !this.secret
  }
  this.currentId = record.id
 },

如果当前行显示的是密文,则先将点击行的id赋给currentId,以便下面这个条件可以满足,修改screct的值;

如果当前行显示的是明文,则不需要满足下面的条件,secret的值无需修改,因为点击该行之后,所有行数据都是显示密文;

这样就实现了。

要注意的是,这种方法只是临时改变了数据显示在那一列的显示,并没有直接改变表格数据中该列的值。

有些场景是要直接改变表格数据的值,才能在表格上更新,比如该列的值是展示在一个input控件里。

以上这篇Antd-vue Table组件添加Click事件,实现点击某行数据教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
基于jQuery的合并表格中相同文本的相邻单元格的代码
Apr 06 Javascript
jQuery中:checked选择器用法实例
Jan 04 Javascript
javascript动态添加删除tabs标签的方法
Jul 06 Javascript
jQuery监听文件上传实现进度条效果的方法
Oct 16 Javascript
JS实现自定义状态栏动画文字效果示例
Oct 12 Javascript
JavaScript实现正则去除a标签并保留内容的方法【测试可用】
Jul 18 Javascript
react 中父组件与子组件双向绑定问题
May 20 Javascript
vue如何限制只能输入正负数及小数
Jul 04 Javascript
JS操作json对象key、value的常用方法分析
Oct 29 Javascript
Vue中fragment.js使用方法小结
Feb 17 Javascript
只有 20 行的 JavaScript 模板引擎实例详解
May 11 Javascript
微信小程序APP的生命周期及页面的生命周期
Apr 19 Javascript
解决Antd Table表头加Icon和气泡提示的坑
Nov 17 #Javascript
ant design的table组件实现全选功能以及自定义分页
Nov 17 #Javascript
ant design pro中可控的筛选和排序实例
Nov 17 #Javascript
antd table按表格里的日期去排序操作
Nov 17 #Javascript
vue 数据遍历筛选 过滤 排序的应用操作
Nov 17 #Javascript
解决vue-cli输入命令vue ui没效果的问题
Nov 17 #Javascript
详解Vue数据驱动原理
Nov 17 #Javascript
You might like
解决PHP在DOS命令行下却无法链接MySQL的技术笔记
2010/12/29 PHP
CodeIgniter针对lighttpd服务器URL重写的方法
2015/06/10 PHP
php获取英文姓名首字母的方法
2015/07/13 PHP
PHP 7.1新特性的汇总介绍
2016/12/16 PHP
PHP快速推送微信模板消息
2017/04/14 PHP
javascript 浏览器判断 绑定事件 arguments 转换数组 数组遍历
2009/07/06 Javascript
onkeypress字符按键兼容所有浏览器使用介绍
2013/04/24 Javascript
禁用键盘上的(全局)指定键兼容iE、Chrome、火狐
2013/05/14 Javascript
js判断一个字符串是否包含一个子串的方法
2015/01/26 Javascript
JavaScript将数字转换成大写中文的方法
2015/03/23 Javascript
阻止表单提交按钮多次提交的完美解决方法
2016/05/16 Javascript
bootstarp modal框居中显示的实现代码
2017/02/18 Javascript
JS实现获取图片大小和预览的方法完整实例【兼容IE和其它浏览器】
2017/04/24 Javascript
jQuery实现动态给table赋值的方法示例
2017/07/04 jQuery
详解使用VueJS开发项目中的兼容问题
2018/08/02 Javascript
浅谈Vue数据响应思路之数组
2018/11/06 Javascript
在Create React App中启用Sass和Less的方法示例
2019/01/16 Javascript
js实现简单点赞操作
2020/03/17 Javascript
js实现圆形菜单选择器
2020/12/03 Javascript
python写xml文件的操作实例
2014/10/05 Python
python八皇后问题的解决方法
2018/09/27 Python
对Python 窗体(tkinter)树状数据(Treeview)详解
2018/10/11 Python
基于Python2、Python3中reload()的不同用法介绍
2019/08/12 Python
python按照list中字典的某key去重的示例代码
2020/10/13 Python
python实现简单的学生管理系统
2021/02/22 Python
营销与策划应届生求职信
2013/11/04 职场文书
毕业生求职自荐信怎么写
2014/01/08 职场文书
乐观大学生的自我评价
2014/01/10 职场文书
大学专科自荐信
2014/06/17 职场文书
法学专业大学生实习自我鉴定
2014/10/05 职场文书
辛德勒的名单观后感
2015/06/03 职场文书
一年之计:2019年下半年的计划
2019/05/07 职场文书
Golang 实现超大文件读取的两种方法
2021/04/27 Golang
Python提取PDF指定内容并生成新文件
2021/06/09 Python
Jpa Specification如何实现and和or同时使用查询
2021/11/23 Java/Android
MySQL事务的ACID特性以及并发问题方案
2022/07/15 MySQL