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 写类方式之一
Jul 05 Javascript
JS解决ie6下png透明的方法实例
Aug 02 Javascript
用jQuery模拟select下拉框的简单示例代码
Jan 26 Javascript
javascript动态判断html元素并执行不同的操作
Jun 16 Javascript
详解Webwork中Action 调用的方法
Feb 02 Javascript
jquery实现图片上传前本地预览
Apr 28 jQuery
基于js 本地存储(详解)
Aug 16 Javascript
Vue2 添加数据可视化支持的方法步骤
Jan 02 Javascript
Vue keepAlive 数据缓存工具实现返回上一个页面浏览的位置
May 10 Javascript
JavaScript canvas实现雪花随机动态飘落
Feb 08 Javascript
详解Vue Cli浏览器兼容性实践
Jun 08 Javascript
js实现计算器功能
Aug 10 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生成自己的LOG文件
2006/10/09 PHP
让你同时上传 1000 个文件 (二)
2006/10/09 PHP
php xml留言板 xml存储数据的简单例子
2009/08/24 PHP
php 使用post,get的一种简洁方式
2010/04/25 PHP
Thinkphp多文件上传实现方法
2014/10/31 PHP
微信公众平台接口开发入门示例
2014/12/24 PHP
通过修改Laravel Auth使用salt和password进行认证用户详解
2017/08/17 PHP
用PHP的反射实现委托模式的讲解
2019/03/22 PHP
yii2.0框架多模型操作示例【添加/修改/删除】
2020/04/13 PHP
jQuery版本升级踩坑大全
2016/01/12 Javascript
jQuery soColorPacker 网页拾色器
2016/06/22 Javascript
JavaScript实现时间倒计时跳转(推荐)
2016/06/28 Javascript
javascript汉字拼音互转的简单实例
2016/10/09 Javascript
3种不同的ContextMenu右键菜单实现代码
2016/11/03 Javascript
jQuery图片轮播实现并封装(一)
2016/12/03 Javascript
原生js实现弹出层登录拖拽功能
2016/12/05 Javascript
javascript 开发之百度地图使用到的js函数整理
2017/05/19 Javascript
BackBone及其实例探究_动力节点Java学院整理
2017/07/14 Javascript
详解在React.js中使用PureComponent的重要性和使用方式
2018/07/10 Javascript
详解VS Code使用之Vue工程配置format代码格式化
2019/03/20 Javascript
小程序云开发实现数据库异步操作同步化
2019/05/18 Javascript
微信小程序按钮点击动画效果的实现
2019/09/04 Javascript
[40:48]DOTA2上海特级锦标赛D组败者赛 Liquid VS COL第二局
2016/02/28 DOTA
Python用模块pytz来转换时区
2016/08/19 Python
Python使用matplotlib绘制多个图形单独显示的方法示例
2018/03/14 Python
Python实战购物车项目的实现参考
2019/02/20 Python
Python面向对象之多态原理与用法案例分析
2019/12/30 Python
在python中利用pycharm自定义代码块教程(三步搞定)
2020/04/15 Python
安装pyecharts1.8.0版本后导入pyecharts模块绘图时报错: “所有图表类型将在 v1.9.0 版本开始强制使用 ChartItem 进行数据项配置 ”的解决方法
2020/08/18 Python
耐克美国官网:Nike.com
2016/08/01 全球购物
MyBag中文网:英国著名的时尚包袋电商零售网站
2020/07/31 全球购物
保安辞职信范文
2015/02/28 职场文书
2015秋季开学典礼致辞
2015/07/16 职场文书
pytorch finetuning 自己的图片进行训练操作
2021/06/05 Python
MYSQL事务的隔离级别与MVCC
2022/05/25 MySQL
css3手动实现pc端横向滚动
2022/06/21 HTML / CSS