看大家写的都是必须展开一行,选中行再次点击无法关闭,在此做个记录
代码如下:
<el-table :data="tableData"
:tree-props="{childern:'children'}"
:row-key="getRowKey"
:expand-row-keys="expands"
:@expand-change="expandChange">
</el-table>
//数据
data(){
return{
getRowKey(row){
return row.id
},
expands:[],
rowId:''
}
},
// 方法
methode(){
expandChange(row,expandedRows){
this.expands=[]
if(row.id!==this.rowId){
this.expands.push(row.id)
this.rowId=row.id
}else{
this.rowId = ''
}
}
}
1.必要的两个参数和一个方法,expand-row-keys通过该属性设置table目前的展开行,需要设置row-key属性才能使用,该属性为展开行的keys数组。
2.row-key,该行的唯一标识,我这里示例写的id,这个要自行修改接
3.方法expand-change对某一行展开或者关闭的时候触发该事件
总结:重点就是这个方法,该方法可实现点击同一行时可关闭打开。额外定义一个rowId,当旧的id与新的id相等的时候置空expands数组,且重置旧id,实现点击同一行可关闭,在此点击时旧id与新id不再相同,可再次打开