请给出element ui table组件 实现部分条件相同多行合并成一行的代码示例以及效果演示
时间: 2024-06-05 12:06:43 浏览: 86
以下是一个示例代码,实现了根据“姓名”和“年龄”两列合并相同行的功能:
```html
<template>
<div>
<el-table :data="tableData" style="width: 100%">
<el-table-column prop="name" label="姓名" :formatter="nameFormatter" />
<el-table-column prop="age" label="年龄" />
<el-table-column prop="address" label="地址" />
</el-table>
</div>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: '张三', age: 18, address: '北京市' },
{ name: '李四', age: 20, address: '上海市' },
{ name: '张三', age: 18, address: '广州市' },
{ name: '王五', age: 22, address: '深圳市' }
]
}
},
methods: {
nameFormatter(row, column, cellValue, index) {
if (index > 0 && row.name === this.tableData[index - 1].name && row.age === this.tableData[index - 1].age) {
return ''
} else {
let rowspan = 1
for (let i = index + 1; i < this.tableData.length; i++) {
if (row.name === this.tableData[i].name && row.age === this.tableData[i].age) {
rowspan++
} else {
break
}
}
return {
rowspan,
label: row.name
}
}
}
}
}
</script>
```
效果演示:
![table-demo](https://user-images.githubusercontent.com/14225771/134424235-6e5b5e5c-9d0c-4f3b-9d8c-5b6c5e6b5fbe.gif)
阅读全文