0


【JSON渲染工具】Element UI动态生成表格,多行表头,自定义表头合并

【JSON渲染工具】Element UI动态生成表格,多行表头,自定义表头合并

一、JSON数据

  • table:中每个对象代表一张表格;
  • table_header:表示表格表头数据; - headerColor:表示表格表头背景颜色;- headerData:表示表格表头内容数据; - prop:值为与table_content中对象属性对应,data_list中的avgMen对应的prop需为"first.avgMen"(这里跟获取对象的点语法相似),如以下例子- label:值为表头文案- width:为列宽度- minWidrh:为列最小宽度- fixed:列左浮动或右浮动(值为left或right)- showOverflowTooltip:表示文案超过列宽度则内容不换行显示…,鼠标悬停显示全部文案弹框- children:表示合并表头
  • table_content:表示表格内容数据;
  • 如若有多张表格则在table中继续添加对象即可;
let table =[{
    table_content:[{
        device_id:"1613",
        device_name:"VIVO",
        device_level:"高",
        data_list:[{
            scene_name:"场景操作1",
            first:{//first对象表示第一轮测试
              a:6,
              b:3.1,
              c:1},
            secend:{//secend对象表示第二轮测试
              a:6,
              b:3.1,
              c:1},

            avg:{//avg对象表示平均数据
              a:6,
              b:3.1,
              c:1}},{
            scene_name:"场景操作2",
            first:{
              a:6,
              b:3.1,
              c:1},
            secend:{
              a:6,
              b:3.1,
              c:1},

            avg:{
              a:0.61,
              b:4444,
              c:1}},//这里的控制用与显示空行{
            scene_name:"",
            first:{
              a:"",
              b:"",
              c:""},
            secend:{
              a:"",
              b:"",
              c:""},

            avg:{
              a:"",
              b:"",
              c:""}},{
            type:"diff",///这里的diff需要加的话都可以加
            scene_name:"场景操作2",
            first:{
              a:6,
              b:3.1,
              c:1},
            secend:{
              a:6,
              b:3.1,
              c:1},

            avg:{
              a:6,
              b:3.1,
              c:1}},{
            scene_name:"场景操作2",
            first:{
              a:6,
              b:3.1,
              c:1},
            secend:{
              a:6,
              b:3.1,
              c:1},

            avg:{
              a:6,
              b:3.1,
              c:1}}]},{
        device_id:"1318",
        device_name:"iPhone SE 2",
        device_level:"中",
        data_list:[{
            scene_name:"场景操作1",
            first:{//first对象表示第一轮测试
              a:6,
              b:3.1,
              c:1},
            secend:{//secend对象表示第二轮测试
              a:6,
              b:3.1,
              c:1},

            avg:{//avg对象表示平均数据
              a:6,
              b:3.1,
              c:1}},{
            scene_name:"场景操作2",
            first:{
              a:6,
              b:3.1,
              c:1},
            secend:{
              a:6,
              b:3.1,
              c:1},

            avg:{
              a:0.61,
              b:4444,
              c:1,
              avgFps:1,
              jank:1,
              bigJank:1,
              drop:1,
              temp:1}},//这里的控制用与显示空行{
            scene_name:"",
            first:{
              a:"",
              b:"",
              c:""},
            secend:{
              a:"",
              b:"",
              c:""},

            avg:{
              a:"",
              b:"",
              c:""}},{
            type:"diff",
            scene_name:"场景操作2",
            first:{
              a:6,
              b:3.1,
              c:1},
            secend:{
              a:6,
              b:3.1,
              c:1},

            avg:{
              a:6,
              b:3.1,
              c:1}},{
            scene_name:"场景操作2",
            first:{
              a:6,
              b:3.1,
              c:1},
            secend:{
              a:6,
              b:3.1,
              c:1},

            avg:{
              a:6,
              b:3.1,
              c:1}}]}],
    table_header:{
      headerColor:"#F5F7FA",
      headerData:[{
          prop:"device_id",
          label:"设备ID",
          index:2,
          minWidth:90,
          fixed:"left"},{
          label:"设备名称",
          index:2,
          prop:"device_name",
          minWidth:100,
          showOverflowTooltip:true},{
          label:"设备档位",
          index:2,
          prop:"device_level",
          minWidth:90},{
          label:"场景操作",
          prop:"scene_name",
          minWidth:250,
          showOverflowTooltip:true},{//第一论测试对应data_list中的first
          label:"第一论测试",
          prop:"first",//这里的prop值需对应data_list中第几轮的属性值即data_list中first对象为第第一轮测试,那么这里prop值就为first,如果上面的data_list中第一轮测试为first1对,这里的prop值就为first1
          children:[{//这里的first.a是指获取data_list中first的内存均值(first.a是对象获取值的方法(点语法))
              prop:"first.a",
              label:"内存均值",
              minWidth:73},{//这里的first.b是指获取data_list中first的内存峰值
              prop:"first.b",
              label:"内存峰值",
              minWidth:73},{
              prop:"first.c",
              label:"CPU均值",
              minWidth:75}]},{//第二论测试对应data_list中的secend
          label:"第二论测试",
          prop:"secend",//这里的prop值需对应data_list中第几轮的属性值即data_list中secend对象为第二轮测试,那么这里prop值就为secend,如果上面的data_list中第二轮测试为secend1对,这里的prop值就为secend1
          children:[{//这里的secend.a是指获取data_list中secend的内存均值(secend.a是对象获取值的方法(点语法))
              prop:"secend.a",
              label:"内存均值",
              minWidth:73},{//这里的secend.b是指获取data_list中secend的内存峰值(secend.b是对象获取值的方法(点语法)),以此类推
              prop:"secend.b",
              label:"内存峰值",
              minWidth:73},{
              prop:"secend.c",
              label:"CPU均值"}]},{
          label:"平均数据",
          prop:"avg",
          children:[{
              prop:"avg.a",
              label:"内存均值",
              minWidth:73},{
              prop:"avg.b",
              label:"内存峰值",
              minWidth:73},{
              prop:"avg.c",
              label:"CPU均值",
              minWidth:75}]}]}}]

二、表格渲染结果

在这里插入图片描述

三、页面代码暂无,仅为el-table的渲染数据格式

标签: json ui

本文转载自: https://blog.csdn.net/m0_61049675/article/details/133794628
版权归原作者 香菜啵子欸 所有, 如有侵权,请联系我们删除。

“【JSON渲染工具】Element UI动态生成表格,多行表头,自定义表头合并”的评论:

还没有评论