Antd-vueTable组件添加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)" >{{ record |
codeFilter(secret, currentRecordId) }}</span>
</span>
这⾥,我们使⽤了codeFilter这个filter,它有三个参数。
所以,我们先要创建这个filter,
Vue.filter('permisssionCodeFilter', function (data, secret, id) {
// 初始状态,所有code都以保密符号显⽰
if (!id) {
if (secret) {
return de, '*')
} else {
de
}
} else { // 如果是点击了某⾏,则只响应该⾏code是保密显⽰还是直接显⽰,其他⾮点击⾏都以保密符号显⽰
if (id === data.id) {
if (secret) {
return de, '*')
} else {
de
}
} else {
htmlradio添加切换事件return de, '*')
}
}
})
初始状态下,我们没有点击任何⼀⾏,所以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 = place(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事件,实现点击某⾏数据教程就是⼩编分享给⼤家的全部内容了,希望能给⼤家⼀个参考,也希望⼤家多多⽀持。

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。