【vxe-table】复杂表头动态渲染

引入插件自己百度查
直接上代码

<vxe-table border :data='tableData' align="center">
        <vxe-table-column title="姓名" field='candidateName' width="80" fixed="left"></vxe-table-column>
        <template>
          <vxe-table-colgroup  v-for='i in xiangmuList' :title="i.title">
            <vxe-table-column v-for="item in i.children" :title="item.title" :field='item.title'></vxe-table-column>
          </vxe-table-colgroup>
        </template>
        
      </vxe-table>

数据结构

[
{
    "1": "-",
    "4": "100",
    "11": "100",
    "12": "100",
    "arr": [
        {
            "infoId": 1,
            "inspectionByname": "0101",
            "inspectionName": "焦红浩",
            "candidateByname": "0102",
            "candidateName": "张小妹",
            "indicatorId": 7,
            "indicatorName": "4",
            "score": 100,
            "planId": 10,
            "planName": "计划10",
            "projectId": 11,
            "projectName": "测试10",
            "valueScope": "",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ]
        },
        {
            "infoId": 2,
            "inspectionByname": "0101",
            "inspectionName": "焦红浩",
            "candidateByname": "0102",
            "candidateName": "张小妹",
            "indicatorId": 8,
            "indicatorName": "11",
            "score": 100,
            "planId": 10,
            "planName": "计划10",
            "projectId": 11,
            "projectName": "测试10",
            "valueScope": "",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ]
        },
        {
            "infoId": 3,
            "inspectionByname": "0101",
            "inspectionName": "焦红浩",
            "candidateByname": "0102",
            "candidateName": "张小妹",
            "indicatorId": 9,
            "indicatorName": "12",
            "score": 100,
            "planId": 10,
            "planName": "计划10",
            "projectId": 11,
            "projectName": "测试10",
            "valueScope": "",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ]
        },
        {
            "projectId": 2,
            "projectName": "测试打分制04-21-14:50",
            "indicatorId": 1,
            "indicatorName": "测试指标1",
            "ruleList": [
                {
                    "id": 5,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 100,
                    "endValue": 90,
                    "markRatio": 10,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 6,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 89,
                    "endValue": 79,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 7,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 78,
                    "endValue": 60,
                    "markRatio": 30,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 8,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 59,
                    "endValue": 0,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                }
            ],
            "score": "-"
        },
        {
            "projectId": 3,
            "projectName": "测试等级制2 0421-15:38",
            "indicatorId": 3,
            "indicatorName": "测试指标333",
            "ruleList": [
                {
                    "id": 15,
                    "projectId": 3,
                    "gradeName": "等级1",
                    "fixationValue": 100,
                    "gradeRatio": 10,
                    "beginValue": 50,
                    "endValue": 41,
                    "markRatio": 10,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 16,
                    "projectId": 3,
                    "gradeName": "等级2",
                    "fixationValue": 90,
                    "gradeRatio": 10,
                    "beginValue": 40,
                    "endValue": 31,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 17,
                    "projectId": 3,
                    "gradeName": "等级3",
                    "fixationValue": 80,
                    "gradeRatio": 20,
                    "beginValue": 30,
                    "endValue": 21,
                    "markRatio": 30,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 18,
                    "projectId": 3,
                    "gradeName": "等级4",
                    "fixationValue": 70,
                    "gradeRatio": 50,
                    "beginValue": 20,
                    "endValue": 11,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 19,
                    "projectId": 3,
                    "gradeName": "等级5",
                    "fixationValue": 60,
                    "gradeRatio": 10,
                    "beginValue": 10,
                    "endValue": 0,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                }
            ],
            "score": "-"
        },
        {
            "projectId": 11,
            "projectName": "测试10",
            "indicatorId": 4,
            "indicatorName": "1",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ],
            "score": "-"
        }
    ],
    "candidateByname": "0102",
    "candidateName": "张小妹",
    "planId": 10,
    "pID": [
        11,
        11,
        11
    ],
    "iID": [
        7,
        8,
        9
    ],
    "测试10": {
        "title": "测试10",
        "children": [
            {
                "title": "4",
                "zhibiaokey": "100"
            },
            {
                "title": "11",
                "zhibiaokey": "100"
            },
            {
                "title": "12",
                "zhibiaokey": "100"
            },
            {
                "title": "1",
                "zhibiaokey": "-"
            }
        ]
    },
    "测试打分制04-21-14:50": {
        "title": "测试打分制04-21-14:50",
        "children": [
            {
                "title": "测试指标1",
                "zhibiaokey": "-"
            }
        ]
    },
    "测试等级制2 0421-15:38": {
        "title": "测试等级制2 0421-15:38",
        "children": [
            {
                "title": "测试指标333",
                "zhibiaokey": "-"
            }
        ]
    },
    "测试指标1": "-",
    "测试指标333": "-",
    "_XID": "row_3"
},
{
    "1": "100",
    "4": "-",
    "11": "-",
    "12": "-",
    "arr": [
        {
            "infoId": 4,
            "inspectionByname": "0101",
            "inspectionName": "焦红浩",
            "candidateByname": "0103",
            "candidateName": "董建军",
            "indicatorId": 1,
            "indicatorName": "测试指标1",
            "score": 20,
            "planId": 10,
            "planName": "计划10",
            "projectId": 2,
            "projectName": "测试打分制04-21-14:50",
            "valueScope": "1-100",
            "ruleList": [
                {
                    "id": 5,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 100,
                    "endValue": 90,
                    "markRatio": 10,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 6,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 89,
                    "endValue": 79,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 7,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 78,
                    "endValue": 60,
                    "markRatio": 30,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 8,
                    "projectId": 2,
                    "gradeName": null,
                    "fixationValue": null,
                    "gradeRatio": null,
                    "beginValue": 59,
                    "endValue": 0,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                }
            ]
        },
        {
            "infoId": 5,
            "inspectionByname": "0101",
            "inspectionName": "焦红浩",
            "candidateByname": "0103",
            "candidateName": "董建军",
            "indicatorId": 3,
            "indicatorName": "测试指标333",
            "score": 90,
            "planId": 10,
            "planName": "计划10",
            "projectId": 3,
            "projectName": "测试等级制2 0421-15:38",
            "valueScope": "",
            "ruleList": [
                {
                    "id": 15,
                    "projectId": 3,
                    "gradeName": "等级1",
                    "fixationValue": 100,
                    "gradeRatio": 10,
                    "beginValue": 50,
                    "endValue": 41,
                    "markRatio": 10,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 16,
                    "projectId": 3,
                    "gradeName": "等级2",
                    "fixationValue": 90,
                    "gradeRatio": 10,
                    "beginValue": 40,
                    "endValue": 31,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 17,
                    "projectId": 3,
                    "gradeName": "等级3",
                    "fixationValue": 80,
                    "gradeRatio": 20,
                    "beginValue": 30,
                    "endValue": 21,
                    "markRatio": 30,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 18,
                    "projectId": 3,
                    "gradeName": "等级4",
                    "fixationValue": 70,
                    "gradeRatio": 50,
                    "beginValue": 20,
                    "endValue": 11,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                },
                {
                    "id": 19,
                    "projectId": 3,
                    "gradeName": "等级5",
                    "fixationValue": 60,
                    "gradeRatio": 10,
                    "beginValue": 10,
                    "endValue": 0,
                    "markRatio": 20,
                    "deleteTime": null,
                    "valueScope": null
                }
            ]
        },
        {
            "infoId": 6,
            "inspectionByname": "0101",
            "inspectionName": "焦红浩",
            "candidateByname": "0103",
            "candidateName": "董建军",
            "indicatorId": 4,
            "indicatorName": "1",
            "score": 100,
            "planId": 10,
            "planName": "计划10",
            "projectId": 11,
            "projectName": "测试10",
            "valueScope": "",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ]
        },
        {
            "projectId": 11,
            "projectName": "测试10",
            "indicatorId": 7,
            "indicatorName": "4",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ],
            "score": "-"
        },
        {
            "projectId": 11,
            "projectName": "测试10",
            "indicatorId": 8,
            "indicatorName": "11",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ],
            "score": "-"
        },
        {
            "projectId": 11,
            "projectName": "测试10",
            "indicatorId": 9,
            "indicatorName": "12",
            "ruleList": [
                {
                    "id": 30,
                    "projectId": 11,
                    "gradeName": "1",
                    "fixationValue": 100,
                    "gradeRatio": null,
                    "beginValue": null,
                    "endValue": null,
                    "markRatio": null,
                    "deleteTime": null,
                    "valueScope": null
                }
            ],
            "score": "-"
        }
    ],
    "candidateByname": "0103",
    "candidateName": "董建军",
    "planId": 10,
    "pID": [
        2,
        3,
        11
    ],
    "iID": [
        1,
        3,
        4
    ],
    "测试10": {
        "title": "测试10",
        "children": [
            {
                "title": "1",
                "zhibiaokey": "100"
            },
            {
                "title": "4",
                "zhibiaokey": "-"
            },
            {
                "title": "11",
                "zhibiaokey": "-"
            },
            {
                "title": "12",
                "zhibiaokey": "-"
            }
        ]
    },
    "测试打分制04-21-14:50": {
        "title": "测试打分制04-21-14:50",
        "children": [
            {
                "title": "测试指标1",
                "zhibiaokey": "20"
            }
        ]
    },
    "测试等级制2 0421-15:38": {
        "title": "测试等级制2 0421-15:38",
        "children": [
            {
                "title": "测试指标333",
                "zhibiaokey": "90"
            }
        ]
    },
    "测试指标1": "20",
    "测试指标333": "90",
    "_XID": "row_4"
}

]

渲染部分的xiangmulist

[
{
    "title": "测试10",
    "children": [
        {
            "title": "4",
            "zhibiaokey": "100"
        },
        {
            "title": "11",
            "zhibiaokey": "100"
        },
        {
            "title": "12",
            "zhibiaokey": "100"
        },
        {
            "title": "1",
            "zhibiaokey": "-"
        }
    ]
},
{
    "title": "测试打分制04-21-14:50",
    "children": [
        {
            "title": "测试指标1",
            "zhibiaokey": "-"
        }
    ]
},
{
    "title": "测试等级制2 0421-15:38",
    "children": [
        {
            "title": "测试指标333",
            "zhibiaokey": "-"
        }
    ]
}
]
vxe-tablevxe-column是基于Vue.js的表格组件,可以实现多级表头。下面是一个示例代码,演示了如何使用vxe-tablevxe-column实现多级表头: ```vue <template> <vxe-table :data="tableData" border show-header> <vxe-column type="index" title="序号"></vxe-column> <vxe-column title="基本信息"> <vxe-column title="姓名" field="name"></vxe-column> <vxe-column title="年龄" field="age"></vxe-column> </vxe-column> <vxe-column title="联系方式"> <vxe-column title="电话" field="phone"></vxe-column> <vxe-column title="邮箱" field="email"></vxe-column> </vxe-column> <vxe-column title="操作"> <vxe-column title="编辑" :render-header="renderEditHeader"></vxe-column> <vxe-column title="删除" :render-header="renderDeleteHeader"></vxe-column> </vxe-column> </vxe-table> </template> <script> import 'vxe-table/lib/style.css'; import { VXETable } from 'vxe-table'; export default { data() { return { tableData: [ { name: '张三', age: 20, phone: '123456789', email: 'zhangsan@example.com' }, { name: '李四', age: 25, phone: '987654321', email: 'lisi@example.com' }, ], }; }, methods: { renderEditHeader({ column }) { return <span>{column.title}(编辑)</span>; }, renderDeleteHeader({ column }) { return <span>{column.title}(删除)</span>; }, }, mounted() { VXETable.setup({ size: 'mini', }); }, }; </script> ``` 在上面的代码中,我们使用了vxe-tablevxe-column组件来创建一个表格。通过嵌套vxe-column组件,我们可以实现多级表头。每个vxe-column组件都代表一个表头列,可以设置title属性来定义列的标题,field属性来指定列对应的数据字段。 在示例中,我们创建了一个基本的表格,包含了基本信息和联系方式两个多级表头。每个表头列都可以自定义渲染,通过render-header属性来指定渲染函数。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值