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下实现overlay遮罩层代码
Aug 25 Javascript
调用HttpHanlder的几种返回方式小结
Dec 20 Javascript
javaScript中push函数用法实例分析
Jun 08 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
真正好用的js验证上传文件大小的简单方法
Oct 27 Javascript
vue中使用iview自定义验证关键词输入框问题及解决方法
Mar 26 Javascript
js实现图片上传并预览功能
Aug 06 Javascript
JavaScript数据结构与算法之二叉树实现查找最小值、最大值、给定值算法示例
Mar 01 Javascript
JS开发自己的类库实例分析
Aug 28 Javascript
基于layui的table插件进行复选框联动功能的实现方法
Sep 19 Javascript
解决Vue动态加载本地图片问题
Oct 09 Javascript
vue的hash值原理也是table切换实例代码
Dec 14 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中文件缓存转内存缓存的方法
2011/12/06 PHP
php遍历目录输出目录及其下的所有文件示例
2014/01/27 PHP
php输入流php://input使用浅析
2014/09/02 PHP
Yii统计不同类型邮箱数量的方法
2016/10/18 PHP
Javascript 去除数组的重复元素
2010/05/04 Javascript
JS重要知识点小结
2011/11/06 Javascript
什么是DOM(Document Object Model)文档对象模型
2012/03/05 Javascript
Javascript跨域请求的4种解决方式
2013/03/17 Javascript
IE8对JS通过属性和数组遍历解析不一样的地方探讨
2013/05/06 Javascript
JavaScript正则表达式实例详解
2016/10/16 Javascript
面试常见的js算法题
2017/03/23 Javascript
JavaScript实现获取远程的html到当前页面中
2017/03/26 Javascript
使用jQuery,Angular实现登录界面验证码详解
2017/04/27 jQuery
promise和co搭配生成器函数方式解决js代码异步流程的比较
2018/05/25 Javascript
Angular6封装http请求的步骤详解
2018/08/13 Javascript
JavaScript实现简单的隐藏式侧边栏功能示例
2018/08/31 Javascript
vue前端框架—Mint UI详解(更适用于移动端)
2019/04/30 Javascript
vue vantUI实现文件(图片、文档、视频、音频)上传(多文件)
2019/10/15 Javascript
[00:15]TI9地铁玩家打卡
2019/08/11 DOTA
windows下wxPython开发环境安装与配置方法
2014/06/28 Python
Python中bisect的用法
2014/09/23 Python
Python中下划线的使用方法
2015/03/27 Python
PyGame贪吃蛇的实现代码示例
2018/11/21 Python
Python3+Appium安装使用教程
2019/07/05 Python
Python 二叉树的层序建立与三种遍历实现详解
2019/07/29 Python
django rest framework 过滤时间操作
2020/07/12 Python
python一些性能分析的技巧
2020/08/30 Python
CSS3实现鼠标悬停显示扩展内容
2016/08/24 HTML / CSS
美国户外生活方式品牌:Eddie Bauer
2016/12/28 全球购物
化石印度尼西亚在线商店:Fossil Indonesia
2019/03/11 全球购物
Tomcat的缺省是多少,怎么修改
2014/04/09 面试题
小学教师办公室制度
2014/02/03 职场文书
学校三节实施方案
2014/06/09 职场文书
企业仓管员岗位职责
2014/06/15 职场文书
六查六看个人剖析材料
2014/10/14 职场文书
如何使用Tkinter进行窗口的管理与设置
2021/06/30 Python