使用vue和element-ui开发,如何实现一个看起来像不规则表格的效果

实现方式:

方法一:

  1. 在 Vue 组件中,使用 Element UI 的表格组件 <el-table> 作为整个表格的容器。
  2. 创建一个数据源(例如数组或对象数组),用于存储表格的内容和结构。
  3. 根据数据源的结构,动态生成表格的列 <el-table-column>,并设置对应的表头和内容。
  4. 使用 v-for 指令循环遍历数据源,生成每一行的内容。
  5. 根据每一行的结构,动态设置对应的列合并属性 :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> 组件进行开发。

猜你喜欢

转载自blog.csdn.net/coinisi_li/article/details/131449729