当返回的数据类型如下:

  tableData: [
{
name: '张三',
occupation: '经理',
experiences: [
{ id: '123456', project: '香蕉', score: '90' },
{ id: '223456', project: '菠萝', score: '91' },
{ id: '323456', project: '西瓜', score: '95' } ],
gender: '男'
},
{
name: '李四',
occupation: '技术总监',
experiences: [
{ id: '123456', project: '香蕉', score: '92' },
{ id: '423456', project: '橘子', score: '93' } ],
gender: '男'
},
{
name: '王二',
occupation: '技术总监',
experiences: [
{ id: '123456', project: '香蕉', score: '90' },
{ id: '223456', project: '菠萝', score: '91' },
{ id: '323456', project: '西瓜', score: '95' },
{ id: '423456', project: '橘子', score: '87' } ],
gender: '男'
}
],

展示效果如下

代码如下

<template>
<div class="home">
<el-table :data="tableData" stripe style="width: 100%">
<el-table-column width="180"
v-for="(item,idx) in finalColumns" :key='idx' :label='item.label' :prop='item.prop'>
</el-table-column> </el-table>
</div>
</template> <script>
export default {
name: 'Home',
components: {},
data () {
return {
tableData: [
{
name: '张三',
occupation: '经理',
experiences: [
{ id: '123456', project: '香蕉', score: '90' },
{ id: '223456', project: '菠萝', score: '91' },
{ id: '323456', project: '西瓜', score: '95' } ],
gender: '男'
},
{
name: '李四',
occupation: '技术总监',
experiences: [
{ id: '123456', project: '香蕉', score: '92' },
{ id: '423456', project: '橘子', score: '93' } ],
gender: '男'
},
{
name: '王二',
occupation: '技术总监',
experiences: [
{ id: '123456', project: '香蕉', score: '90' },
{ id: '223456', project: '菠萝', score: '91' },
{ id: '323456', project: '西瓜', score: '95' },
{ id: '423456', project: '橘子', score: '87' } ],
gender: '男'
}
],
data: [],
columns: [
{ label: '姓名', prop: 'name' },
{ label: '应聘职务', prop: 'occupation' },
{ label: '', prop: 'experiences', children: [] },
{ label: '性别', prop: 'gender' }
],
finalColumns: []
}
},
created () {
let max = 0
let arr = []
this.tableData.forEach((ele) => {
if (max < ele.experiences.length) {
arr = []
}
ele.experiences.forEach((item, idx) => {
ele[item.id] = item.score ? item.score : '-'
if (max < ele.experiences.length) {
const obj = {}
obj.label = item.project
obj.prop = item.id
arr.push(obj)
}
})
if (max < ele.experiences.length) {
max = ele.experiences.length
}
})
console.log(this.tableData)
this.columns.forEach(ele => {
if (ele.prop === 'experiences') {
ele.children = arr
}
})
this.finalColumns = this.columns.reduce((sum, col) => {
if (col.children && col.children.length) {
sum.splice(sum.length, 0, ...col.children.map(v => v))
} else {
sum.splice(sum.length, 0, col)
}
return sum
}, [])
console.log(this.finalColumns, 'columns')
}
}
</script>

el-table 处理表格数据中存在属性值为数组的情况的更多相关文章

  1. ajax取到数据后如何拿到data.data中的属性值

    今天遇到的ajax取到数据后如何拿到data.data中的属性值的问题 比如拿到了数据 我要取出data中的name 题外话:当然取名最好别取什么奇怪的xiaobi

  2. jsp页面使用el 按key获取map中的对应值

    jsp页面使用el 按key获取map中的对应值 转自:<jsp页面使用el 按key获取map中的对应值>地址:http://blog.csdn.net/baple/article/de ...

  3. <s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中的属性值

    <s:property="a"  value=""/>取的<s:debug></s:debug>中的value stack中 ...

  4. 将source类中的属性值赋给target类中对应的属性

    /** * 对象的属性值拷贝 * <p> * 将source对象中的属性值赋值到target对象中的属性,属性名一样,类型一样 * <p> * example: * <p ...

  5. Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项

    本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...

  6. 【Python】获取翻页之后的各页面中的属性值。

    如何获取翻页之后的页面中的html标签中的属性值? # coding=utf-8 from selenium import webdriver if __name__=="__main__& ...

  7. Implement Property Value Validation in the Application Model 在应用程序模型中实现属性值验证

    In this lesson, you will learn how to check whether or not a property value satisfies a particular r ...

  8. params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render

    params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render

  9. table(表格)中的标签和属性

    1.表格由 <table> 标签来定义.行( <tr> ),单元格(<td> ) 字母 td 指表格数据(table data),即数据单元格的内容.数据单元格可以 ...

  10. iview table 实现在数据中自定义标识

    做了一个商旅订票的项目,在详情中有一个因公超标在表格中用一个“超”字显示的需求.后台框架用的iview+vue,也就是在iview Table中改变.在iview的框架中改变东西首先要想到的是ivie ...

随机推荐

  1. Java学习笔记:2022年1月6日

    Java学习笔记:2022年1月6日 摘要:不可变字符串为什么不可变?StringBuffer类与StringBuilder类,字符串操作拾遗,记事本原理,进制转化问题. 目录 Java学习笔记:20 ...

  2. 基于 VScode 搭建 STM32 运行环境

    所需软件 vscode: 是我们的代码编辑器 STM32CubeMX: 是我们配置和初始化的软件 OpenOCD: 是开源片上调试器, 他下载完是一个压缩包, 需要配置环境 arm-none-eabi ...

  3. angular小练习--手写弹出窗口以及文件上传或者复制粘贴,后读取打印文件内容

    实现代码如下 <page-header> <ng-template> </ng-template> </page-header> <div> ...

  4. Redis缓存的主要异常及解决方案

    作者:京东物流 陈昌浩 1 导读 Redis 是当前最流行的 NoSQL数据库.Redis主要用来做缓存使用,在提高数据查询效率.保护数据库等方面起到了关键性的作用,很大程度上提高系统的性能.当然在使 ...

  5. 静态代码块-数组工具类Arrays

    静态代码块 静态代码块: 定义在成员位置,使用static修饰的代码块{}. 位置:类中方法外. 执行:随着类的加载而执行且执行一次,优先于main方法和构造方法的执行 格式: public clas ...

  6. Solon2 开发之容器,八、动态代理的本质

    在 Java 里动态代理,主要分:接口动态代理 和 类动态代理.因为它的代理类都是动态创建的,所以名字里会带上"动态". 官网的有些地方叫"代理",也有些地方叫 ...

  7. [Windows] 微信超级管家,自动好友回复、计数、自动同意、群发、好友导出、消息日志、无限多开

    [Windows] 微信超级管家,自动好友回复.计数.自动同意.群发.好友导出.消息日志.无限多开 微信超级管家是一款大神针对微信制作的工具,它的主要功能包括了自动回复.好友计数.自动同意.群发.好友 ...

  8. 4.12 疫情数据可视化 毕设(初稿版 crud+可视化echarts

    4.22 完成地图 数据可视化~~~  599x150 解决不显示图片的问题 参考文档 https://blog.csdn.net/qq_51917985/article/details/121380 ...

  9. 关于opencv3.2的parallel_for_函数不支持bind function的处理(基于ch8代码)

    1.换opencv4 2.修改程序 改程序针对slambook2/ch8/direct_method.cpp #include <opencv2/opencv.hpp> #include ...

  10. Ubuntu18.04中用CMake-gui安装OpenCV3.2.0和OpenCV_contrib-3.2.0

    下载和添加依赖包1.首先更新 apt-get,在安装前最好先更新一下系统,不然有可能会安装失败.在终端输入:    sudo apt-get update    sudo apt-get upgrad ...