Vue框架下table行click事件怎么添加,哪些事项要注意
Admin 2022-06-22 群英技术资讯 1628 次浏览
这篇文章主要讲解了“Vue框架下table行click事件怎么添加,哪些事项要注意”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着小编的思路慢慢深入,一起来研究和学习“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控件里。
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:mmqy2019@163.com进行举报,并提供相关证据,查实之后,将立刻删除涉嫌侵权内容。
猜你喜欢
今天给大家分享的是jquery如何实现简单的悬浮菜单效果,悬浮菜单是比较常见的,小编觉得挺实用的,因此分享给大家做个参考,实现效果及代码如下,接下来跟随小编一起看看吧。
这篇文章主要为大家介绍了React 和 Redux的关系,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
在处理文本数据的时候,我们经常会需要把文本数据的行与列进行转换操作,这样更方便查看,本文就详细的介绍了vue3+el-table实现行列转换,感兴趣的可以了解一下
用JS怎样做鼠标经过表格变色的效果?也就是鼠标经过表格的某行时,这行变色显示的效果,这样的好处的就是一目了然看到所选的信息,小编觉得比较有用,因此分享给大家做个参考,感兴趣的朋友就继续往下看吧。
问题:canvas绘制图片,图片变模糊设定一个一定尺寸的canvas,我这里设置的画布大小是400px*400px。当一张图片完全画到画布上的时候,大概率都会出现图片模糊的情况。我拿下面一张图片画到canvas上作为例子,看上去应该比较明显的有模糊的感觉。单方面的去修改图片精度,换成更高清的图片,事实证明确实有一丢丢用
成为群英会员,开启智能安全云计算之旅
立即注册关注或联系群英网络
7x24小时售前:400-678-4567
7x24小时售后:0668-2555666
24小时QQ客服
群英微信公众号
CNNIC域名投诉举报处理平台
服务电话:010-58813000
服务邮箱:service@cnnic.cn
投诉与建议:0668-2555555
Copyright © QY Network Company Ltd. All Rights Reserved. 2003-2020 群英 版权所有
增值电信经营许可证 : B1.B2-20140078 ICP核准(ICP备案)粤ICP备09006778号 域名注册商资质 粤 D3.1-20240008