Antd-vue Table组件添加Click事件,实现点击某行数据教程

 更新时间:2020年11月17日 11:01:53   作者:DuebassLei  
这篇文章主要介绍了Antd-vue Table组件添加Click事件,实现点击某行数据教程,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧

给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)
    }
   }
  }
 }
}

控制台输出:

补充知识:利用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事件,实现点击某行数据教程就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • vue项目中路径使用@和~的区别及说明

    vue项目中路径使用@和~的区别及说明

    这篇文章主要介绍了vue项目中路径使用@和~的区别及说明,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • Vue中的.vue文件的使用方式

    Vue中的.vue文件的使用方式

    这篇文章主要介绍了Vue中的.vue文件的使用方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-03-03
  • 基于elementUI竖向表格、和并列的案例

    基于elementUI竖向表格、和并列的案例

    这篇文章主要介绍了基于elementUI竖向表格、和并列的案例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-10-10
  • vue路由跳转到新页面实现置顶

    vue路由跳转到新页面实现置顶

    这篇文章主要介绍了vue路由跳转到新页面实现置顶问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • vue中动态添加style样式的几种写法总结

    vue中动态添加style样式的几种写法总结

    这篇文章主要介绍了vue中动态添加style样式的几种写法总结,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-10-10
  • 解决Vue的项目使用Element ui 走马灯无法实现的问题

    解决Vue的项目使用Element ui 走马灯无法实现的问题

    这篇文章主要介绍了解决Vue的项目使用Element ui 走马灯无法实现的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-08-08
  • 浅谈Vue中插槽slot的使用方法

    浅谈Vue中插槽slot的使用方法

    这篇文章主要给大家分享了 Vue中插槽slot的使用方法,下面文章内容围绕插槽slot的相关资料展开其的使用方法,需要的朋友可以参考一下,希望多大家有所帮助
    2021-11-11
  • vue3 el-select懒加载以及自定义指令方式

    vue3 el-select懒加载以及自定义指令方式

    这篇文章主要介绍了vue3 el-select懒加载以及自定义指令方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-04-04
  • 如何去除element-ui中table的hover效果

    如何去除element-ui中table的hover效果

    这篇文章主要介绍了如何去除element-ui中table的hover效果,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-10-10
  • Vue中Element的table多选表格如何实现单选

    Vue中Element的table多选表格如何实现单选

    这篇文章主要介绍了Vue中Element的table多选表格如何实现单选,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07

最新评论