首页 >> js开发 >> jsAntd-vue Table组件添加Click事件,实现点击某行数据教程js大全
jsAntd-vue Table组件添加Click事件,实现点击某行数据教程js大全
发布时间: 2021年1月13日 | 浏览:
| 分类:js开发
给Table组件添加Click事件,实现点击某行数据操作
customRow
设置行属性
Function(record, index)
customRow
设置行属性
Function(record, index)
customRow
设置行属性
Function(record, index)
customRow设置行属性Function(record, index)
通过customRow 属性给table添加自定义事件
:columns="columns"
:dataSource="data"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange ,onSelect: handleSelect}"
bordered
:customRow="handleClickRow"
>
:columns="columns"
:dataSource="data"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange ,onSelect: handleSelect}"
bordered
:customRow="handleClickRow"
>
methods: {
handleClickRow(record, index){
return {
on: {
click: () => {
console.log(record, index)
console.log('点击行内容record' + record)
console.log('序号索引index' + index)
}
}
}
}
}
methods: {
handleClickRow(record, index){
return {
on: {
click: () => {
console.log(record, index)
console.log('点击行内容record' + record)
console.log('序号索引index' + index)
}
}
}
}
}控制台输出:补充知识:利用filetr 操作 ant-design table某一行的某一列的数据。点击切换真实数据和加密数据补充知识:补充知识:利用filetr 操作 ant-design table某一行的某一列的数据。点击切换真实数据和加密数据情景描述:情景描述:如果有这样一个需求,在table中的某一列的数据,不能直接展示原始数据,而是使用加密符号代替,只有点击了某行某列之后,才能切换到真实数据,每次点击就是一次切换。这样类似的需求你会怎么实现?这样类似的需求你会怎么实现?这里使用ant-design UI框架中的table组件做为例子来讲。首先,肯定会想到用filter(angular中叫pipe,vue里面叫filter)。上代码:
{{ record |
codeFilter(secret, currentRecordId) }}
{{ record |
codeFilter(secret, currentRecordId) }}
这里,我们使用了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, '*')
}
}
})
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
}
/**
* 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
},
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事件,实现点击某行数据教程就是小编分享给大家的全部内容了,希望能给大家一个参考。
customRow
设置行属性
Function(record, index)
customRow
设置行属性
Function(record, index)
customRow
设置行属性
Function(record, index)
customRow设置行属性Function(record, index)
通过customRow 属性给table添加自定义事件
:columns="columns"
:dataSource="data"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange ,onSelect: handleSelect}"
bordered
:customRow="handleClickRow"
>
:columns="columns"
:dataSource="data"
:rowSelection="{selectedRowKeys: selectedRowKeys, onChange: onSelectChange ,onSelect: handleSelect}"
bordered
:customRow="handleClickRow"
>
methods: {
handleClickRow(record, index){
return {
on: {
click: () => {
console.log(record, index)
console.log('点击行内容record' + record)
console.log('序号索引index' + index)
}
}
}
}
}
methods: {
handleClickRow(record, index){
return {
on: {
click: () => {
console.log(record, index)
console.log('点击行内容record' + record)
console.log('序号索引index' + index)
}
}
}
}
}控制台输出:补充知识:利用filetr 操作 ant-design table某一行的某一列的数据。点击切换真实数据和加密数据补充知识:补充知识:利用filetr 操作 ant-design table某一行的某一列的数据。点击切换真实数据和加密数据情景描述:情景描述:如果有这样一个需求,在table中的某一列的数据,不能直接展示原始数据,而是使用加密符号代替,只有点击了某行某列之后,才能切换到真实数据,每次点击就是一次切换。这样类似的需求你会怎么实现?这样类似的需求你会怎么实现?这里使用ant-design UI框架中的table组件做为例子来讲。首先,肯定会想到用filter(angular中叫pipe,vue里面叫filter)。上代码:
{{ record |
codeFilter(secret, currentRecordId) }}
{{ record |
codeFilter(secret, currentRecordId) }}
这里,我们使用了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, '*')
}
}
})
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
}
/**
* 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
},
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事件,实现点击某行数据教程就是小编分享给大家的全部内容了,希望能给大家一个参考。
相关文章:
- jsJavascript节流函数throttle和防抖函数debouncejs大全
- js代码JavaScript十大取整方法实例教程
- jsVue3+elementui plus创建项目的方法js大全
- jselement-plus一个vue3.xUI框架(element-ui的3.x 版初体验)js大全
- js微信小程序轮播图swiper代码详解js大全
- jselement-ui中el-upload多文件一次性上传的实现js大全
- js详解Vue 的异常处理机制js大全
- js基于vue项目设置resolves.alias: '@'路径并适配webstormjs大全
- jsVue Elenent实现表格相同数据列合并js大全
- js代码为什么JavaScript中0.1 + 0.2 != 0.3