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 相关文章推荐
做网页的一些技巧
Feb 01 Javascript
关于document.cookie的使用javascript
Apr 11 Javascript
Jquery 基础学习笔记
May 29 Javascript
jQuery使用andSelf()来包含之前的选择集
May 19 Javascript
关于事件mouseover ,mouseout ,mouseenter,mouseleave的区别
Oct 12 Javascript
JavaScript中的各种操作符使用总结
May 26 Javascript
微信小程序 前端源码逻辑和工作流详解
Oct 08 Javascript
HTML5+jQuery实现搜索智能匹配功能
Mar 24 jQuery
vue.js实现刷新当前页面的方法教程
Jul 05 Javascript
跟混乱的页面弹窗说再见
Apr 11 Javascript
JS实现图片切换特效
Dec 23 Javascript
vue项目中播放rtmp视频文件流的方法
Sep 17 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
2006/12/14 PHP
使用php发送有附件的电子邮件-(PHPMailer使用的实例分析)
2013/04/26 PHP
php获取textarea的值并处理回车换行的方法
2014/10/20 PHP
php基于websocket搭建简易聊天室实践
2016/10/24 PHP
PHP的重载使用魔术方法代码实例详解
2021/02/26 PHP
初试jQuery EasyUI 使用介绍
2010/04/01 Javascript
jquery选择器之属性过滤选择器详解
2014/01/27 Javascript
JavaScript实现生成GUID(全局统一标识符)
2014/09/05 Javascript
JavaScript整除运算函数ceil和floor的区别分析
2015/04/14 Javascript
利用Js的console对象,在控制台打印调式信息测试Js的实现
2016/11/26 Javascript
利用Angular+Angular-Ui实现分页(代码加简单)
2017/03/10 Javascript
微信小程序 标签传入数据
2017/05/08 Javascript
ES6入门教程之Iterator与for...of循环详解
2017/05/17 Javascript
JS实现简单拖拽效果
2017/06/21 Javascript
对vuejs的v-for遍历、v-bind动态改变值、v-if进行判断的实例讲解
2018/08/27 Javascript
js module大战
2019/04/19 Javascript
jQuery实现获取多选框的值示例
2020/02/07 jQuery
vue如何搭建多页面多系统应用
2020/06/17 Javascript
跟老齐学Python之私有函数和专有方法
2014/10/24 Python
Python的Django应用程序解决AJAX跨域访问问题的方法
2016/05/31 Python
python3.7 的新特性详解
2019/07/25 Python
Python使用selenium + headless chrome获取网页内容的方法示例
2019/10/16 Python
Python遍历字典方式就实例详解
2019/12/28 Python
Virtualenv 搭建 Py项目运行环境的教程详解
2020/06/22 Python
关于django python manage.py startapp 应用名出错异常原因解析
2020/12/15 Python
python将YUV420P文件转PNG图片格式的两种方法
2021/01/22 Python
Steve Madden官网:美国鞋类品牌
2017/01/29 全球购物
德国运动鞋网上商店:Afew Store
2018/01/05 全球购物
质量工程师岗位职责
2013/11/16 职场文书
产品促销活动策划书
2014/01/15 职场文书
个人评语大全
2014/05/04 职场文书
体育教师求职信
2014/05/24 职场文书
思想作风纪律整顿心得体会
2014/09/04 职场文书
我爱家乡演讲稿
2014/09/12 职场文书
庆六一宣传标语
2014/10/08 职场文书
关于安全的广播稿
2014/10/23 职场文书