在Element UI的el-table
组件中,可以使用span-method
属性来合并同样的列名或行名。该属性接受一个方法,该方法返回一个包含两个元素的数组,分别决定每个单元格的rowspan和colspan。
以下是一个简单的例子,展示如何使用span-method
来合并具有相同列名的行:
<template>
<el-table
:data="tableData"
border
:span-method="mergeSameRows"
>
<el-table-column
prop="date"
label="日期"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名"
width="180">
</el-table-column>
<el-table-column
prop="address"
label="地址">
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{
date: '2016-05-02',
name: '张三',
address: '上海市普陀区金沙江路 1518 弄'
},
{
date: '2016-05-02', // 注意这里与上面的日期相同
name: '李四',
address: '上海市普陀区金沙江路 1517 弄'
},
{
date: '2016-05-03',
name: '王五',
address: '上海市普陀区金沙江路 1519 弄'
}
]
};
},
methods: {
mergeSameRows({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) { // 假设我们要合并第一列
const rows = this.tableData.filter(item => item.date === row.date);
return [rows.length, 1];
}
}
}
};
</script>
在这个例子中,mergeSameRows
方法检查第一列(日期列)的内容。如果发现相同的值,它会返回一个数组,指示合并的行数和列数。在这种情况下,如果日期相同,它会合并这些行。这样,所有具有相同日期的行将在表格中以合并单元格的形式显示。