el-table 多级表头

1.结构

复制代码
<el-table
        :data="tableData"
        border
        :height="700"
        style="width: 100% !important; overflow: auto"
        :header-cell-style="{ background: '#becee1', color: '#333' }"
        :cell-style="{ padding: '5px' }"
      >
        <template v-for="item in tableHeader">
          <template v-if="item.children && item.children.length > 0">
            <el-table-column
              :key="item.id"
              :label="item.label"
              :prop="item.label"
              align="center"
            >
              <span v-for="subItem in item.children" :key="subItem.id">
                <el-table-column
                  :label="subItem.label"
                  :prop="subItem.prop"
                  align="center"
                ></el-table-column>
              </span>
            </el-table-column>
          </template>
          <el-table-column
            v-else
            :key="item.id"
            :label="item.label"
            :prop="item.prop"
            align="center"
          ></el-table-column>
        </template>
      </el-table>

2.数据

复制代码
tableData: [
        {
          fenju: "杨浦分局",
          tianxie: "已填写",
          prop11: "11",
          prop12: "12",
          prop21: "21",
          prop22: "22",
          prop31: "31",
          prop32: "32"
        },
        {
          fenju: "长宁分局",
          tianxie: "未填写",
          prop11: "11",
          prop12: "12",
          prop21: "21",
          prop22: "22",
          prop31: "31",
          prop32: "32"
        }
      ],
      tableHeader: [
        {
          label: "分局",
          prop: "fenju"
        },
        {
          label: "填写情况",
          prop: "tianxie"
        },
        {
          id: 1,
          label: "考核组1",
          prop: "",
          children: [
            {
              id: 11,
              label: "考核项1",
              prop: "prop11"
            },
            {
              id: 12,
              label: "考核项2",
              prop: "prop12"
            }
          ]
        },
        {
          id: 2,
          label: "考核组2",
          prop: "",
          children: [
            {
              id: 21,
              label: "考核项1",
              prop: "prop21"
            },
            {
              id: 22,
              label: "考核项2",
              prop: "prop22"
            }
          ]
        },
        {
          id: 3,
          label: "考核组3",
          prop: "",
          children: [
            {
              id: 11,
              label: "考核项1",
              prop: "prop31"
            },
            {
              id: 12,
              label: "考核项2",
              prop: "prop32"
            }
          ]
        }
      ]
相关推荐
usdoc文档预览4 小时前
USDOC系列之PPT文件在线编辑-VUE前端实现在线浏览器在线编辑PPT文档
前端·vue.js·编辑器·office365·ppt在线编辑·office文件在线编辑·文件在线编辑
Java小卷4 小时前
面向 schema 编程,轻松搞定 Element 虚拟化表格复杂应用场景
vue.js·低代码·element
仨孩子的爹5 小时前
Lodop、hiprint 与 vue-print-designer:打印控件选型对比
vue.js
程序员大阳7 小时前
HTML+CSS+JS对话式实战(3)-活动管理页实现查询、新增、删除API后端接口
javascript·css·html·实战·删除·查询·新增
炫酷的大高个8 小时前
6 亿播放的闪身步,我用前端算出 15 倍重心差
前端·javascript
林小帅8 小时前
【笔记】Prisma v7 + SQLite TS2305 及连锁 TS7006 问题
前端·javascript·后端
ruanno_top8 小时前
四个 canvas 组件,在 2 倍屏上一直是糊的
vue.js
Dumbness8 小时前
订阅消息弹窗必须在用户点击里调:联调实验室里 timing 和 Mock 支付通知踩的坑
javascript·uni-app
ruanno_top9 小时前
一个脏数据能让整条折线消失:图表组件的四种数据契约
vue.js
黄连木笛9 小时前
不改一行 Postman 源码,把它汉化了:Electron preload 注入 + fetch 拦截实战
javascript·electron