element table选中高亮处理

我的解决方法用到了@selection-change="handleSelectionChange" :row-style="rowClass",
在handleSelectionChange中取到所有checkbox选中的内容保存在selectData,
然后监听selectData 判断选中行在table列表里面的位置,将所有的index保存在selectRow中,
最后在rowClass中给对应的行添加背景色

data(){
    return {
        selectRow:[],
        selectData:[]
    }
},
  methods: {
    // 选中筛选结果时候
    handleSelectionChange(data) {
      this.selectData = data;
    },
    // 多选高亮选中行
    rowClass({row, rowIndex}){
      if(this.selectRow.includes(rowIndex)){
        return { "background-color": "rgba(185, 221, 249, 0.75)" }
      }
    }
  },
watch: {
    selectData(data) {
      this.selectRow = [];
      if (data.length > 0) {  
        data.forEach((item, index) => {
          this.selectRow.push(this.tableData.indexOf(item));
        });
      }
    }
}

ps:如果出现选中隔行高亮的情况,记得把table里的stripe属性删掉

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值