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 相关文章推荐
javascript知识点收藏
Feb 22 Javascript
jQuery.Validate 使用笔记(jQuery Validation范例 )
Jun 25 Javascript
IE的fireEvent方法概述及应用
Feb 22 Javascript
javascript实现带下拉子菜单的导航菜单效果
May 14 Javascript
Node.js中Request模块处理HTTP协议请求的基本使用教程
Mar 31 Javascript
喜大普奔!jQuery发布 3.0 最终版
Jun 12 Javascript
javascript 数组的正态分布排序的问题
Jul 31 Javascript
Node.js的基本知识简单汇总
Sep 19 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
Oct 28 Javascript
浅析Jquery操作select
Dec 13 Javascript
node.js基础知识小结
Feb 26 Javascript
原生JS实现的放大镜特效示例【测试可用】
Dec 08 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实现将wav文件转换成图像文件并在页面中显示的方法
2015/04/21 PHP
WordPress中对访客评论功能的一些优化方法
2015/11/24 PHP
如何使用微信公众平台开发模式实现多客服
2016/01/06 PHP
PHP通过引用传递参数用法分析
2016/12/01 PHP
关于PHP转换超过2038年日期出错的问题解决
2017/06/28 PHP
预加载css或javascript的js代码
2010/04/23 Javascript
33个优秀的 jQuery 图片展示插件分享
2012/03/14 Javascript
jQuery ajax dataType值为text json探索分享
2013/09/23 Javascript
jquery 实现两级导航菜单附效果图
2014/03/07 Javascript
教你如何在 Javascript 文件里使用 .Net MVC Razor 语法
2014/07/23 Javascript
JavaScript实现文字跟随鼠标特效
2015/08/06 Javascript
javascript封装简单实现方法
2015/08/11 Javascript
jQuery UI库中dialog对话框功能使用全解析
2016/04/23 Javascript
第一次接触Bootstrap框架
2016/10/24 Javascript
Bootstrap导航条学习使用(一)
2017/02/08 Javascript
Vue加载组件、动态加载组件的几种方式
2018/08/31 Javascript
element ui 表格动态列显示空白bug 修复方法
2018/09/04 Javascript
在mpvue框架中使用Vant WeappUI组件库的注意事项【推进】
2019/06/09 Javascript
vue-router 按需加载 component: () =&gt; import() 报错的解决
2020/09/22 Javascript
vue动态合并单元格并添加小计合计功能示例
2020/11/26 Vue.js
vue实现两个区域滚动条同步滚动
2020/12/13 Vue.js
Python 爬虫模拟登陆知乎
2016/09/23 Python
python使用tornado实现登录和登出
2018/07/28 Python
解决Python正则表达式匹配反斜杠''\''问题
2019/07/17 Python
python GUI库图形界面开发之PyQt5窗口背景与不规则窗口实例
2020/02/25 Python
python实点云分割k-means(sklearn)详解
2020/05/28 Python
python3.9实现pyinstaller打包python文件成exe
2020/12/13 Python
python实现定时发送邮件
2020/12/23 Python
HTML5 新事件 小结
2009/07/16 HTML / CSS
Burberry英国官网:英国标志性奢侈品牌
2017/03/29 全球购物
学位证书委托书
2014/09/30 职场文书
学术会议邀请函
2015/01/30 职场文书
2016教师给学生的毕业寄语
2015/12/04 职场文书
2016年度基层党建工作公开承诺书
2016/03/25 职场文书
优秀的商业计划书,让融资一步到位
2019/05/07 职场文书
四十九个javascript小知识实用技巧
2021/11/20 Javascript