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 相关文章推荐
游戏人文件夹程序 ver 4.03
Jul 14 Javascript
仿163填写邮件地址自动显示下拉(无优化)
Nov 05 Javascript
silverlight线程与基于事件驱动javascript引擎(实现轨迹回放功能)
Aug 09 Javascript
jQuery中获取Radio元素值的方法
Jul 02 Javascript
一看就懂:jsonp详解
Jun 01 Javascript
使用JS轻松实现ionic调用键盘搜索功能(超实用)
Sep 06 Javascript
JavaScript如何获取到导航条中HTTP信息
Oct 10 Javascript
Vue2.0实现组件数据的双向绑定问题
Mar 06 Javascript
用vue写一个仿简书的轮播图的示例代码
Mar 13 Javascript
vue实现随机验证码功能(完整代码)
Dec 10 Javascript
js实现简单进度条效果
Mar 25 Javascript
vue-cli4.0多环境配置变量与模式详解
Dec 30 Vue.js
解决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文件服务实现虚拟挂载其他目录示例
2014/04/17 PHP
PHP格式化显示时间date()函数代码
2018/10/03 PHP
如何实现浏览器上的右键菜单
2006/07/10 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
js实现九宫格拼图小游戏
2017/02/13 Javascript
js CSS3实现卡牌旋转切换效果
2017/07/04 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
bootstrap treeview 扩展addNode方法动态添加子节点的方法
2017/11/21 Javascript
JS中Object对象的原型概念基础
2018/01/29 Javascript
vuex操作state对象的实例代码
2018/04/25 Javascript
当vue路由变化时,改变导航栏的样式方法
2018/08/22 Javascript
详解Js里的for…in和for…of的用法
2019/03/28 Javascript
详解Vue+ElementUI从零开始搭建自己的网站(一、环境搭建)
2019/04/30 Javascript
Js通过AES加密后PHP用Openssl解密的方法
2019/07/12 Javascript
Node 代理访问的实现
2019/09/19 Javascript
Vue.js页面中有多个input搜索框如何实现防抖操作
2019/11/04 Javascript
jQuery实现简单弹幕效果
2019/11/28 jQuery
js抽奖转盘实现方法分析
2020/05/16 Javascript
[58:57]2018DOTA2亚洲邀请赛3月29日小组赛B组 Effect VS VGJ.T
2018/03/30 DOTA
简单介绍Python中的几种数据类型
2016/01/02 Python
Python+PyQt5实现美剧爬虫可视工具的方法
2019/04/25 Python
python中selenium操作下拉滚动条的几种方法汇总
2019/07/14 Python
python求前n个阶乘的和实例
2020/04/02 Python
python爬虫利用selenium实现自动翻页爬取某鱼数据的思路详解
2020/12/22 Python
美国高级工作服品牌:Carhartt
2018/01/25 全球购物
Desigual美国官方网站:西班牙服装品牌
2019/03/29 全球购物
金融专业毕业生推荐信
2013/11/26 职场文书
会议接待欢迎词
2014/01/12 职场文书
求职信的最佳写作思路
2014/02/01 职场文书
市场营销求职信范文
2014/02/21 职场文书
公司年会抽奖活动主持词
2014/03/31 职场文书
群众路线对照检查剖析材料
2014/10/09 职场文书
go类型转换及与C的类型转换方式
2021/05/05 Golang
Python爬取用户观影数据并分析用户与电影之间的隐藏信息!
2021/06/29 Python
Java获取e.printStackTrace()打印的信息方式
2021/08/07 Java/Android
使用Python开发贪吃蛇游戏 SnakeGame
2022/04/30 Python