实现方式:
方法一:
- 在 Vue 组件中,使用 Element UI 的表格组件
<el-table>
作为整个表格的容器。 - 创建一个数据源(例如数组或对象数组),用于存储表格的内容和结构。
- 根据数据源的结构,动态生成表格的列
<el-table-column>
,并设置对应的表头和内容。 - 使用
v-for
指令循环遍历数据源,生成每一行的内容。 - 根据每一行的结构,动态设置对应的列合并属性
:colspan
和:rowspan
,实现不规则表格的效果。
<template>
<el-table :data="tableData" border>
<el-table-column
v-for="column in columns"
:key="column.prop"
:prop="column.prop"
:label="column.label"
:colspan="column.colspan"
:rowspan="column.rowspan"
></el-table-column>
</el-table>
</template>
<script>
export default {
data() {
return {
tableData: [
{ name: 'John', age: 25, gender: 'Male', address: '123 Main St', company: 'ABC Corp', phone: '123-456-7890' },
{ address: '456 Elm St' },
{ company: 'XYZ Inc', phone: '987-654-3210' },
],
columns: [
{ label: 'Name', prop: 'name', colspan: 1, rowspan: 1 },
{ label: 'Age', prop: 'age', colspan: 1, rowspan: 1 },
{ label: 'Gender', prop: 'gender', colspan: 1, rowspan: 1 },
{ label: 'Address', prop: 'address', colspan: 1, rowspan: 1 },
{ label: 'Company', prop: 'company', colspan: 1, rowspan: 1 },
{ label: 'Phone', prop: 'phone', colspan: 1, rowspan: 1 },
],
};
},
};
</script>
方法二:
可以使用 <el-descriptions>
组件和 <el-descriptions-item>
组件来实现一个类似不规则表格的效果。每个 <el-descriptions-item>
标签代表表格中的一行,并且通过设置 :span
属性来控制每个项目所占的列数。
但需要注意的是,<el-descriptions>
组件是用来展示描述性的信息,而不是传统意义上的表格。它更适合于展示一些简单的键值对或者描述性的文本。
如果需求是展示真正的表格数据,并且需要更多的表格功能,例如排序、分页、编辑等,那么使用 <el-table>
组件是更好的选择。
如果数据结构是固定的、简单的键值对,或者你只是想展示描述性的信息,那么使用 <el-descriptions>
组件可能是可行的。但如果你的数据结构比较复杂,或者需要更多的表格功能,那么还是建议使用 <el-table>
组件进行开发。