element ui中table组件如何实现将checkbox 选中后,高亮选中的行

图片描述

类似于这种选择方式,希望将选中的行实现高亮,最主要的是我想要实现的是动态的,当我选中某一行后实现高亮

阅读 9.9k
2 个回答

我的解决方法用到了@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));
        });
      }
    }
}

clipboard.png
table的row-class-name使用方法,根据selection计算选中行的className

监听SelectionChange事件,修改selection数组,
然后用doLayout重绘图表,应该可行

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题
宣传栏