element ui 表格多级表头无限嵌套

MyTable.vue

<template>
  <div class="my-table">
    <el-table :data="data">
      <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>
<style scoped>
</style>

MyColumn.vue

<template>

  <el-table-column :prop="col.prop"
    :label="col.label"
    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>
<style scoped>
</style>

使用

<template>
  <div>
    <my-table :col="col"
      :data="data">
    </my-table>
  </div>
</template>

<script>
import MyTable from './MyTable'
export default {
  components: {
    MyTable
  },
  data() {
    return {
      col: [
        {
          prop: 'date',
          label: '日期'
        },
        {
          label: '配送信息',
          children: [
            {
              prop: 'name',
              label: '姓名'
            },
            {
              label: '地址',
              children: [
                {
                  prop: 'province',
                  label: '省份'
                },
                {
                  prop: 'city',
                  label: '市区'
                },
                {
                  prop: 'address',
                  label: '地址'
                }
              ]
            }
          ]
        }
      ],
      data: [
        {
          date: '2016-05-03',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        },
        {
          date: '2016-05-02',
          name: '王小虎',
          province: '上海',
          city: '普陀区',
          address: '上海市普陀区金沙江路 1518 弄',
          zip: 200333
        }
      ]
    }
  }
}
</script>
<style>
</style>

预览地址:https://jsfiddle.net/mmx38qxw/2808/

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前端知识体系http://www.cnblogs.com/sb19871023/p/3894452.html 前端...
    秋风喵阅读 12,565评论 7 163
  • 作为一个前端程序猿,下面这些站会让你眼前一亮。 amazeui框架组建丰富 http://amazeui.org...
    欧巴冰冰阅读 8,919评论 18 303
  • 盖有非常之功,必待非常之人。语出司马相如。何谓非常之功?何谓非常之人?非常之人行非常之事建非常之功的前提,应该是先...
    草上的微光阅读 210评论 0 2
  • 原创 文 夏瑜斐 你这个罪魁祸首,我终于找到你了, 眼镜。熊孩子一把抓住我衣领,把我拽了一个趔趄。我扭头,审视:模...
    夏瑜斐的小木屋阅读 418评论 0 0
  • 今天我们画一个美女,是的,又是外国的。也许我对外国美女情有独钟吧哈哈。 先初略画一个轮廓。接着画五官: 然后用彩铅...
    kekepolo阅读 425评论 4 1