【ElementUI】el-table值相同时合并行
在Element UI的el-table
组件中,要合并行,可以使用row-key
属性来为每行数据赋予唯一的key,并使用span-method
属性来返回一个包含两个元素的数组,第一个元素表示rowspan,第二个元素表示当前行应该被合并的列的索引。
以下是一个简单的例子,假设我们有一个数组tableData
,其中的对象有一个共同的属性type
,我们想要合并类型相同的行:
<template>
<el-table :data="tableData" border style="width: 100%" row-key="id" span-method="mergeRows">
<el-table-column prop="id" label="ID"></el-table-column>
<el-table-column prop="type" label="Type"></el-table-column>
<el-table-column prop="detail" label="Detail"></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ id: 1, type: 'A', detail: 'Detail A' },
{ id: 2, type: 'B', detail: 'Detail B' },
{ id: 3, type: 'A', detail: 'Detail A2' },
{ id: 4, type: 'C', detail: 'Detail C' }
]
};
},
methods: {
mergeRows({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const prevRow = this.tableData[rowIndex - 1];
if (prevRow && row.type === prevRow.type) {
return [0, 0];
}
}
}
}
};
</script>
在这个例子中,我们使用row-key="id"
来指定唯一key,并且定义了一个mergeRows
方法来决定如何合并行。如果当前行的type
属性与上一行相同,并且我们正在检查第一列(columnIndex === 0
),那么我们返回[0, 0]
,表示当前行应该被合并,并且合并开始于上一行。其他列的合并默认情况下不会被合并。
评论已关闭