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的模态div层弹出效果
Aug 21 Javascript
通过jquery 获取URL参数并进行转码
Aug 18 Javascript
js表单处理中单选、多选、选择框值的获取及表单的序列化
Mar 08 Javascript
vue.js中$watch的用法示例
Oct 04 Javascript
jQuery表格的维护和删除操作
Feb 03 Javascript
关于vue.js过渡css类名的理解(推荐)
Apr 10 Javascript
基于Vue、Vuex、Vue-router实现的购物商城(原生切换动画)效果
Jan 09 Javascript
微信小程序实现收货地址左滑删除
Nov 18 Javascript
layui 选择列表,打勾,点击确定返回数据的例子
Sep 02 Javascript
Node如何后台数据库使用增删改查功能
Nov 21 Javascript
Vue中正确使用Element-UI组件的方法实例
Oct 13 Javascript
详解微信小程序「渲染层网络层错误」的解决方法
Jan 06 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 静态页面中显示动态内容
2009/08/14 PHP
教你如何在CI框架中使用 .htaccess 隐藏url中index.php
2014/06/09 PHP
ThinkPHP视图查询详解
2014/06/30 PHP
Mac系统下安装PHP Xdebug
2018/03/30 PHP
laravel5.1框架model类查询的实现方法
2019/10/08 PHP
Laravel jwt 多表(多用户端)验证隔离的实现
2019/12/18 PHP
JavaScript在IE和Firefox浏览器下的7个差异兼容写法小结
2010/06/18 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
js简单实现根据身份证号码识别性别年龄生日
2013/11/29 Javascript
JavaScript弹出新窗口并控制窗口移动到指定位置的方法
2015/04/06 Javascript
Javascript基础回顾之(二) js作用域
2017/01/31 Javascript
[01:11]回顾历届DOTA2国际邀请赛中国区预选赛
2017/06/26 DOTA
python实现进程间通信简单实例
2014/07/23 Python
Python实现的简单hangman游戏实例
2015/06/28 Python
Python随机数用法实例详解【基于random模块】
2017/04/18 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
python 多进程并行编程 ProcessPoolExecutor的实现
2019/10/11 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
python实现替换word中的关键文字(使用通配符)
2020/02/13 Python
python通过函数名调用函数的几种场景
2020/09/23 Python
Burt’s Bees英国官网:世界领先的天然个人护理品牌
2020/08/17 全球购物
工程力学专业毕业生求职信
2013/10/06 职场文书
中学实习教师自我鉴定
2013/12/12 职场文书
行政部总经理岗位职责
2014/01/04 职场文书
六一儿童节活动策划方案
2014/01/27 职场文书
护士试用期自我鉴定
2014/02/08 职场文书
开学典礼策划方案
2014/05/28 职场文书
保洁员岗位职责
2015/02/04 职场文书
大学生团员个人总结
2015/02/14 职场文书
内勤岗位职责范本
2015/04/13 职场文书
商场圣诞节活动总结
2015/05/06 职场文书
2015年小学辅导员工作总结
2015/05/27 职场文书
公司与个人合作协议书
2016/03/19 职场文书
超详细Python解释器新手安装教程
2021/05/10 Python
python如何将mat文件转为png
2022/07/15 Python