记录Element 表格动态表头及数据

Posted XiNine

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了记录Element 表格动态表头及数据相关的知识,希望对你有一定的参考价值。

实现方式
1、取数据列表中第一条作为表头数据,再遍历删除不是表头的固定属性,结果赋值给一个空对象;
2、把处理好的数据遍历 key 名 puah 进表头配置数组中,事先在写一个 key 名所对应的中文名方法返回中文名。

数据格式

/*表格数据*/
const dataList = [
    {
        name: "李小龙",
        age: 24,
        city: "深圳",
        gender: "男",
        education: "本科",
        hobby: "武术"
    },
    {
        name: "黄飞鸿",
        age: 25,
        city: "深圳",
        gender: "男",
        education: "本科",
        hobby: "武术"
    },
    {
        name: "陈真",
        age: 26,
        city: "深圳",
        gender: "男",
        education: "本科",
        hobby: "武术"
    },
    {
        name: "霍元甲",
        age: 26,
        city: "深圳",
        gender: "男",
        education: "本科",
        hobby: "武术"
    },
]

/*表头配置*/
const headConfig = {
    名字: "name",
    年龄: "age",
    性别: "gender"
}

实现方式1:删除不是表头配置的属性

function extractData(data, config) {
    const formHead = Object.values(config)
    data.forEach((item, index) => {
        Object.keys(item).forEach(item2 => {
            if (!formHead.includes(item2)) delete data[index][item2];
        })
    })
    return data;
}

实现方式2:匹配表头配置的属性 push 进新数组返回

function extractData(data, config) {
    const formHead = Object.values(config)
    const arr = [],obj={};
    data.forEach((item, index) => {
        Object.entries(item).forEach(item2 => {
            if (formHead.includes(item2[0])) obj[item2[0]] = item2[1]
        })
        arr.push(obj)
    })
    return arr;
}

匹配对象中指定属性

function mateData(data,config){
 const arr = []
 for (let [key, value] of Object.entries(config)) {
      if (data[key]) {
        arr.push({
          value: data[key],
          name: value
        });
      }
    }
    return arr;
  }
}

以上是关于记录Element 表格动态表头及数据的主要内容,如果未能解决你的问题,请参考以下文章

element动态表格展示,双层表头

封装element中的table表格,实现可控并动态渲染(动态表头)

element-ui 动态表头渲染表格

vue基于element实现动态表格

vue element-ui动态生成table表头和数据

使用element中el-table动态增减表头列的时候出现抖动闪动的问题