element UI动态生成多级表头的表格

公司项目中展示的表格要求是多级表头的,张这样👇
在这里插入图片描述

我看了下 element UI 中的表格里面的多级表头张这样👇
在这里插入图片描述
接下来说下怎么实现的:
1、首先封装两个组件 MyTable.vueMyColumn.vue

MyTable.vue是对表格的封装

<template>
  <div class="my-table">
    <el-table :data="data" height="500">
      <my-column v-for="(item,index) in col" :key="index" :col="item"></my-column>
    </el-table>
  </div>
</template>

<script>
import MyColumn from './MyColumn'
export default {
  components: {
    MyColumn
  },
  props: {
    col: {
      type: Array
    },
    data: {
      type: Array
    }
  }
}
</script>

MyColumn.vue是对表头的封装

<template>
  <el-table-column :prop="col.prop" :label="col.name" align="left">
    <template v-if="col.children">
      <my-column v-for="(item, index) in col.children" :key="index" :col="item"></my-column>
    </template>
  </el-table-column>
</template>

<script>
export default {
  name: "MyColumn",
  props: {
    col: {
      type: Object
    }
  }
};
</script>

2、在项目中引用 MyTable.vue 组件

<template>
  <!---->
  <my-table :col="col" :data="data"></my-table>
<template/>
<script>
import MyTable from "@/components/MyTable";
export default {
  components: {
    MyTable
  },
  data() {
    return {
    col: [
        {
          name: "指标",
          children: [
            {
              name: "进出口类型",
              children: [{ name: "(时间)/(measures)", prop: "time" }]
            }
          ]
        },
        {
          name: "总体",
          children: [
            {
              name: "进口",
              children: [
                { name: "初值", prop: "istarter" },
                { name: "终值", prop: "iinal" }
              ]
            },
            {
              name: "出口",
              children: [
                { name: "初值", prop: "estarter" },
                { name: "终值", prop: "einal" }
              ]
            }
          ]
        }
      ],
      data:[{
        einal: "148.07",
        estarter: "148.07",
        iinal: "117.95",
        istarter: "117.95",
        time: "2020年06月"
      }]
    }
}
</script>
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值