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 DOM操作小结与实例
Jan 07 Javascript
javascript实现面向对象类的功能书写技巧
Mar 07 Javascript
js获取电脑分辨率的思路及操作
Nov 22 Javascript
jQuery中Ajax的load方法详解
Jan 14 Javascript
JS动态修改图片的URL(src)的方法
Apr 01 Javascript
深入理解JS继承和原型链的问题
Dec 17 Javascript
移动端触屏幻灯片图片切换插件idangerous swiper.js
Apr 10 Javascript
微信小程序radio组件使用详解
Jan 31 Javascript
Vue.js实现双向数据绑定方法(表单自动赋值、表单自动取值)
Aug 27 Javascript
vue实现输入一位数字转汉字功能
Dec 13 Javascript
Webpack设置环境变量的一些误区详解
Dec 19 Javascript
原生JavaScript实现五子棋游戏
Nov 09 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中的时间处理
2006/10/09 PHP
PHP基于imap获取邮件实例
2014/11/11 PHP
php检查页面是否被百度收录
2015/10/28 PHP
效率高的Javscript字符串替换函数的benchmark
2008/08/02 Javascript
在JavaScript中,为什么要尽可能使用局部变量?
2009/04/06 Javascript
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
写出高效jquery代码的19条指南
2014/03/19 Javascript
认识Knockout及如何使用Knockout绑定上下文
2015/12/25 Javascript
深入理解JavaScript程序中内存泄漏
2016/03/17 Javascript
angularjs中回车键触发某一事件的方法
2017/04/24 Javascript
BootStrap 动态表单效果
2017/06/02 Javascript
JavaScript操作文件_动力节点Java学院整理
2017/06/30 Javascript
vue iview实现动态路由和权限验证功能
2018/04/17 Javascript
用ES6写全屏滚动插件的示例代码
2018/05/02 Javascript
vue.js实现的幻灯片功能示例
2019/01/18 Javascript
微信小程序实现炫酷的弹出式菜单特效
2019/01/28 Javascript
python使用pyhook监控键盘并实现切换歌曲的功能
2014/07/18 Python
python获取标准北京时间的方法
2015/03/24 Python
Python中最常用的操作列表的几种方法归纳
2015/04/24 Python
python绘制铅球的运行轨迹代码分享
2017/11/14 Python
使用PyInstaller将python转成可执行文件exe笔记
2018/05/26 Python
Pytorch 数据加载与数据预处理方式
2019/12/31 Python
在tensorflow中设置使用某一块GPU、多GPU、CPU的操作
2020/02/07 Python
Python range与enumerate函数区别解析
2020/02/28 Python
详解用Python进行时间序列预测的7种方法
2020/03/13 Python
python 爬取免费简历模板网站的示例
2020/09/27 Python
全民健身日活动方案
2014/01/29 职场文书
求职信范文怎么写
2014/01/29 职场文书
个人实习生的自我评价
2014/02/16 职场文书
自我检讨报告
2015/01/28 职场文书
解除劳动合同通知书范本
2015/04/16 职场文书
义卖募捐活动总结
2015/05/09 职场文书
硕士毕业答辩开场白
2015/05/27 职场文书
2016领导干部廉洁从政心得体会
2016/01/19 职场文书
学习商务礼仪心得体会
2016/01/22 职场文书
常用的MongoDB查询语句的示例代码
2021/07/25 MongoDB