ElementUI-table高亮问题

第一类:初始化或刷新界面默认第一行高亮

//1.0 加入:row-class-name="tableRowClassName"
<el-table  :data="tableData" style="width: 100%" :row-class-name="tableRowClassName">

//2.0 methods中写入方法
methods: {
  tableRowClassName({row, rowIndex}) {
     if (rowIndex === 0) {
       return 'youClassName';
     } 
     return '';
   }
 },
 //3.0 自定义默认高亮样式
 <style>
  .el-table .youClassName {
    background: 'red';
    color:'white'
  }
</style>

!!!注意:以上可以解决默认首行(任意行)高亮问题,但是–但是-但是,现在点击任意行让其显示也显示高亮时,问题来了,第一行和当前选中行均高亮,咱不看其他高亮方法,直接顺着刚才的已有代码下行继续实现功能

解决思路
1.不受高亮首行影响,继续写当前行高亮样式及写法且写成与高亮一样的样式;
2.在点击当前行的时候取掉首行不高亮;
直接上代码
1. <el-table 添加@row-click="onLink" :highlight-current-row="true"写成如下
<el-table  @row-click="onLink" :highlight-current-row="true" :row-class-name="tableRowClassName">
2.定义一个变量(个人想的办法,非官方推荐),当点击时候变化,取消第一行高亮
data() {
      return {
        isHigh: 0  //个人定义变量
      }
    },
//methods中方法改成这种
    tableRowClassName({
        row,
        rowIndex
      }) {
        if (this.isHigh === 0) {
          if (rowIndex === 0) {
            return 'success-row';
          }
        }
        return '';
      },
     onLink(row, cloumn, event) {
        this.isHigh =1;
        //xxxx其他操作
      },

css中样式添加hover效果及当前行高亮自定义样式

.el-table--enable-row-hover .el-table__body tr:hover>td {
      background-color: rgb(24, 144, 255);
      color: white;
    }

.el-table--striped .el-table__body tr.el-table__row--striped.current-row td,
   .el-table__body tr.current-row>td {
      color: white;
      background-color: rgb(24, 144, 255) !important;
    }

最后来一份完整代码

//css ---<style lang="scss">
.el-table .success-row {
      background: rgb(24, 144, 255);
      color: white;
    }

    .el-table--enable-row-hover .el-table__body tr:hover>td {
      background-color: rgb(24, 144, 255);
      color: white;
    }

    .el-table--striped .el-table__body tr.el-table__row--striped.current-row td,
    .el-table__body tr.current-row>td {
      color: white;
      background-color: rgb(24, 144, 255) !important;
    }
//templete代码

<el-table :data="deviceList" border @row-click="onLink" :highlight-current-row="true" :row-class-name="tableRowClassName">

//js代码
export default {
    data() {
      return {
        isHigh: 0
      }
    },
    methods: {
      onLink(row, cloumn, event) {
        this.isHigh =1;
      },
      tableRowClassName({
        row,
        rowIndex
      }) {
        if (this.isHigh === 0) {
          if (rowIndex === 0) {
            return 'success-row';
          }
        }
        return '';
      }
    }
  }

等下次遇到同类需求,就研究其他更好的办法,然后记录下来–2021-03-19 @gdr

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值