element 表格只展开一行(点击下一行上一行关闭)
要实现Element UI表格只展开一行,并且点击另一行时上一行关闭,可以使用row-key
属性来为每行设置唯一标识,并使用:expand-row-keys
属性来控制展开的行。你需要维护一个数组来记录当前展开的行的row-key
。
以下是实现这个功能的示例代码:
<template>
<el-table
:data="tableData"
style="width: 100%"
:row-key="getRowKey"
:expand-row-keys="expandedRowKeys"
@expand-change="handleExpandChange"
>
<!-- 其他列定义 -->
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
// 数据源
],
expandedRowKeys: [] // 当前展开行的row-key数组
};
},
methods: {
getRowKey(row) {
// 返回行的唯一标识,确保是唯一的值,如使用id
return row.id;
},
handleExpandChange(row, expandedRows) {
if (expandedRows.length) {
// 如果有展开的行,则把它的row-key添加到expandedRowKeys数组中
this.expandedRowKeys = [row.id];
} else {
// 如果没有展开的行,清空expandedRowKeys数组
this.expandedRowKeys = [];
}
}
}
};
</script>
在这个示例中,getRowKey
方法用于为表格的每行设置唯一标识,handleExpandChange
方法用于处理展开行的变化,并更新expandedRowKeys
数组。这样就可以确保只有一行会在任何时候展开。
评论已关闭