鍍金池/ 問答/網(wǎng)絡(luò)安全  HTML/ element ui中table組件如何實(shí)現(xiàn)將checkbox 選中后,高亮選中

element ui中table組件如何實(shí)現(xiàn)將checkbox 選中后,高亮選中的行

圖片描述

類似于這種選擇方式,希望將選中的行實(shí)現(xiàn)高亮,最主要的是我想要實(shí)現(xiàn)的是動(dòng)態(tài)的,當(dāng)我選中某一行后實(shí)現(xiàn)高亮

回答
編輯回答
忘了我

clipboard.png
table的row-class-name使用方法,根據(jù)selection計(jì)算選中行的className

監(jiān)聽SelectionChange事件,修改selection數(shù)組,
然后用doLayout重繪圖表,應(yīng)該可行

2018年3月20日 03:56
編輯回答
墨染殤

我的解決方法用到了@selection-change="handleSelectionChange" :row-style="rowClass",在handleSelectionChange中取到所有checkbox選中的內(nèi)容保存在selectData,然后監(jiān)聽selectData 判斷選中行在table列表里面的位置,將所有的index保存在selectRow中,最后在rowClass中給對(duì)應(yīng)的行添加背景色

data(){
    return {
        selectRow:[],
        selectData:[]
    }
},
  methods: {
    // 選中篩選結(jié)果時(shí)候
    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));
        });
      }
    }
}
2017年4月27日 19:42