vue3 element-plus 实现 table表格合并单元格 和 多级表头
在Vue 3和Element Plus中实现表格的合并单元格和多级表头,可以使用Element Plus的<el-table>
组件的span-method
属性来合并单元格,以及使用<el-table-column>
的children
属性来创建多级表头。
以下是一个简单的示例代码:
<template>
<el-table :data="tableData" border style="width: 100%" :span-method="mergeCells">
<el-table-column prop="date" label="日期" width="150">
</el-table-column>
<el-table-column label="配送信息">
<el-table-column prop="name" label="姓名" width="150">
</el-table-column>
<el-table-column label="地址">
<el-table-column prop="province" label="省份" width="150">
</el-table-column>
<el-table-column prop="city" label="市区" width="150">
</el-table-column>
<el-table-column prop="address" label="详细地址" width="300">
</el-table-column>
</el-table-column>
</el-table-column>
</el-table>
</template>
<script setup>
import { ref } from 'vue';
const tableData = ref([
{
date: '2016-05-02',
name: '张三',
province: '广东省',
city: '广州市',
address: '天河区',
zip: '510000'
},
// ...更多数据
]);
const mergeCells = ({ row, column, rowIndex, columnIndex }) => {
if (rowIndex === 0 && columnIndex === 0) {
return [1, 2]; // 合并第一行的前两个单元格
}
};
</script>
在这个例子中,mergeCells
函数负责决定哪些单元格需要被合并,并返回一个数组,指定合并的行数和列数。第一个数字是行的起始位置,第二个数字是跨越的行数。
对于多级表头,你可以通过嵌套<el-table-column>
组件来实现,每个嵌套的列都可以有自己的属性和合并规则。
评论已关闭