实现el-table表格动态合并
在Vue.js中使用Element UI库时,可以通过rowspan
和colspan
属性来实现表格的动态合并单元格。以下是一个简单的例子,展示了如何根据数据动态合并表格中的行和列。
<template>
<el-table :data="tableData" border style="width: 100%">
<el-table-column prop="date" label="日期" width="150">
</el-table-column>
<el-table-column prop="name" label="姓名" width="150">
</el-table-column>
<el-table-column prop="address" label="地址">
<template slot-scope="scope">
<el-table :data="scope.row.address" :span-method="mergeAddress">
<el-table-column prop="detail" label="详细地址">
</el-table-column>
</el-table>
</template>
</el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{
date: '2016-05-02',
name: '张三',
address: [
{ detail: '上海市普陀区金沙江路 1518 弄' },
{ detail: '上海市普陀区金沙江路 1517 弄' },
],
},
// ... 更多数据
],
};
},
methods: {
mergeAddress({ row, column, rowIndex, columnIndex }) {
if (columnIndex === 0) {
const rows = this.tableData[rowIndex].address;
return {
rowspan: rows.length,
colspan: 1,
};
}
},
},
};
</script>
在这个例子中,我们定义了一个带有嵌套表格的el-table
,用于展示地址信息。mergeAddress
方法负责根据数据决定地址列应该合并的行数。如果当前行是地址数组的第一个元素,它会合并行,使得上面的rowspan
属性生效。这样,表格中的地址信息就会根据数据动态合并单元格。
评论已关闭