调用Table Methods里的方法
this.$refs.table.toggleRowExpansion(row)
源码
<template>
<div style="margin: 20px;" class="Box">
<el-table ref="table" stripe fit highlight-current-row :data="tableData" style="width:800px">
<el-table-column label="ID" prop="id" align="center">
</el-table-column>
<el-table-column label="事件" prop="title" align="center">
</el-table-column>
<el-table-column label="思考" prop="thinking" align="center">
</el-table-column>
<el-table-column label="操作" align="center">
<template slot-scope="scope">
<span v-if="scope.row.id==currentIndex">
<el-button
type="text"
@click="toogleExpand(scope.row, '收起')"
>收起</el-button>
</span>
<span v-else>
<el-button
type="text"
@click="toogleExpand(scope.row, '展开')"
>展开</el-button>
</span>
</template>
</el-table-column>
<el-table-column type="expand" width="1">
<template slot-scope="props">
<el-table border :data="props.row.foodsList" style="width: 100%" max-height="250">
<el-table-column prop="name" label="名称" align="center" />
<el-table-column prop="price" label="价格" align="center"/>
<el-table-column prop="number" label="数量" align="center" />
<el-table-column prop="desc" label="味道" align="center" />
</el-table>
</template>
</el-table-column>
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
currentIndex: null,
tableData: [{
id: 1,
title: '早饭',
thinking: '思考思考思考',
foodsList: [{
name: '鸡蛋',
price: 1.5,
number: 1,
desc: '尚可'
},
{
name: '包子',
price: 2.5,
number: 1,
desc: '尚可'
}
]
},
{
id: 2,
title: '午饭饭',
thinking: '思考思考思考',
foodsList: [{
name: '面条',
price: 15,
number: 1,
desc: '尚可'
}]
},
{
id: 3,
title: '晚饭',
thinking: '思考思考思考',
foodsList: [{
name: '水饺',
price: 18,
number: 1,
desc: '尚可'
}]
}
]
};
},
methods: {
toogleExpand(row, text) {
let $table = this.$refs.table;
if (text == "展开") {
this.tableData.map((item) => {
if (row.id != item.id) {
$table.toggleRowExpansion(item, false)
}
})
this.currentIndex = row.id
this.Text = "收起";
} else {
this.currentIndex = null;
this.Text = "展开";
}
$table.toggleRowExpansion(row)
}
}
}
</script>
<style scoped>
.Box .el-table__expand-icon {
display: none;
}
.Box .el-table .row-expand-cover .cell .el-table__expand-icon {
display: none;
}
</style>
已更新