html
<el-table :data="tableData" @row-click="handleRowClick" :rowClassName="tableRowClassName"
:header-row-style="{color:'#333',fontWeight:'bold',fontSize:'14px'}" style="width: 100%">
<el-table-column
prop="totalPrice"
label="现金总额">
</el-table-column>
<el-table-column
prop="createTime"
label="注册时间">
<template slot-scope="scope">
<div>
<el-switch"
v-model="scope.row.experienceFlag"
>
</el-switch>
</div>
</template>
</el-table-column>
<el-table-column
prop="address"
label="消费签名时间">
<template slot-scope="scope">
<div>
{{ scope.row.dateFlag?'限制':'不限制' }}
</div>
</template>
</el-table-column>
<el-table-column
prop="address"
label="员工">
</el-table-column>
<el-table-column
prop="categoryName"
label="获客渠道">
</el-table-column>
<el-table-column
label="选择">
<template slot-scope="scope">
<div>
<svg-icon iconClass="praise" v-show="scope.$index!=tableRowIndex" class="icons praise verticalMiddle" ></svg-icon>
<span class="el-icon-check checkValTable" v-show="scope.$index==tableRowIndex"></span>
</div>
</template>
</el-table-column>
</el-table>
javascript
<script>
export default{
data(){
return{
tableData:[],
tableRowIndex:'-1'
}
},
methods:{
//选择行
handleRowClick(row,rowIndex){
//获取选择行的下标
console.log(rowIndex);
this.tableRowIndex=this.getArrayIndex(this.tableData,row)
console.log('tableRowIndex');
console.log(this.tableRowIndex);
this.tableRowClassName(row,this.tableRowIndex);
},
//最终与下方获取到的数组下标,与选中的下标对比,若相等则将指定行增加highLight-row类名
tableRowClassName({row,rowIndex}){
if(rowIndex==this.tableRowIndex){
return 'highlight-row'
}
},
getArrayIndex(arr,obj){
var i=arr.length;
//循环获取所选行的数据与表格列表数组的某个下标数据是否相等
//若相等返回下标
while(i--){
if(arr[i]===obj){
return i;
}
}
return -1;
},
}
}
</script>