效果如下:
添加 row-key 和 expand-row-keys 两个属性
<el-table
:row-class-name="getRowClass"
:row-key="getRowKeys"
:expand-row-keys="expands"
v-loading="loading"
:data="assetList"
style="width: 98%; margin: 0 auto; border: 1px solid #ccc"
ref="shake"
>
expand 保存的是每行的num值(this.assetList[i].num)
data() {
return {
// 要展开子数据的行,数值的元素是row的key值
expands: [],
// 每一行的key值
getRowKeys(row) {
return row.num;
},
}
}
this.expands.push(item.num); 把符合条件的行的key值 (此处为:num) 添加到数组expands
methods: {
// 添加默认展开行
expandRows() {
// 换页时置空数组
this.expands = []
// 给每行添加key值(num)
for (let i = 0; i < this.assetList.length; i++) {
this.assetList[i].num = i;
}
// 添加默认展开行
this.assetList.forEach((item) => {
if (item.asset.是否有子设备) {
this.expands.push(item.num);
}
});
},
}
在获取数据时就调用此函数(created)