我们在做后台管理系统的时候经常需要操作表格,这里我们要实现的一个功能就是,勾选复选框,高亮显示当前行,也就是当前行样式改变。这是一个非常常见的使用场景,官网给我们提供了一个带Checkbox的table表格,但是并没有给出上述使用案例,解决办法有很多,我简单总结下我自己的实现过程,希望能帮助到有同样需求的小伙伴。
勾选表格中当前项时会触发selection-change事件,在<el-table>中绑定handleSelectionChange方法。
<el-table @selection-change="handleSelectionChange" >
编写handleSelectionChange方法,实现思路就是根据勾选当前行的下标,改变当前样式。但是element table表格中没有获取勾选后当前行index的方法,这里主要通过两个forEach遍历实现。
在data中定义tableData的时候一定要设置id属性,因为这里我们是通过id的对比来获取当前行的下标。
tableData: [{ id:0, date: '2016-05-03', name: '王小虎', address: '上海市普陀区金沙江路 1518 弄' }
下列方法打印出来的i就是你要获取的勾选行的索引值,我们在data中定义一个空数组,专门用来存储选中项的下标,方便使用。
handleSelectionChange(val) { var arr = []; val.forEach((val, index) => { this.tableData.forEach((v, i) => { // id 是每一行的数据id if(val.id == v.id){ // console.log(i); arr.push(i) } }) }) this.multipleSelection = arr; }
获取到下标之后就需要改变样式,给<el-table>标签绑定修改当前行样式的方法rowStyle
<el-table @selection-change="handleSelectionChange" :row-class-name="rowStyle" >
编写rowStyle方法,思路是循环便利multipleSelection数组,取出存储的下标,与当前行下标做对比,如果相同则返回rowStyle,改变当前行的样式。
这里需要注意一个问题:
forEach中return无效!我们希望达到某一条件时,跳出循环,代码终止,使用forEach进行遍历是无法实现的。
原因:forEach()无法在所有元素都传递给调用的函数之前终止遍历!
this.multipleSelection.forEach((v)=>{ if(rowIndex === v){ return 'rowStyle' } })
解决方法:使用for替换forEach
rowStyle({row, rowIndex}){ let arr = this.multipleSelection; for(let i = 0; i < arr.length; i++){ if(rowIndex === arr[i]){ return 'rowStyle' } } }
在style中定义选中行的样式
</style> .rowStyle{ background-color:red!important; } </style>
另外如果想更改鼠标移入的hover样式,要注意需要在td上修改,因为事件是添加在td身上的,在tr上修改无效。
.el-table{ width: 1163px; margin: 0 auto; .el-table__body{ tr:hover>td{ background-color:rgba(238,250,249,1)!important; } } }
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
更新日志
- 炉石传说40血卡组代码一览 2024最新全职业40血卡组代码大全
- 《如龙:极》NS实体版确认!35美元 25年3月发货
- 日本离谱忍者游戏将登NS:手柄插进屁股进行对决
- 《神之天平外传》NS版今日发售 可独立于本体运行
- 群星《24K德国HD金碟红色经典》2CD[WAV+CUE]
- 妙音唱片群星《红色经典DSD1-2》2CD[低速原抓WAV+CUE]
- 群星《网络最红艺人-花季雨季》2CD[WAV+CUE]
- 雷同二友《自游生物》[320K/MP3][84.64MB]
- 雷同二友《自游生物》[FLAC/分轨][417.32MB]
- shake9《悲伤剧情》[320K/MP3][79.3MB]
- 张国荣.1989-FINAL.ENCOUNTER(2024环球MQA-UHQCD限量版)【环球】【WAV+CUE】
- 阿桑.2003-受了点伤(星外星引进版)【华研国际】【WAV+CUE】
- 张舒娟.1996-昨日之歌VOL.1【荣机构】【WAV+CUE】
- 《暗喻幻想》评测:于后偏铝酸钠时代升起的新星
- 《琥珀岛》评测:采集、经营和建造的多拼套餐