当返回的数据类型如下:

  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. Hugging News #0106

    每一周,我们的同事都会向社区的成员们发布一些关于 Hugging Face 相关的更新,包括我们的产品和平台更新.社区活动.学习资源和内容更新.开源库和模型更新等,我们将其称之为「Hugging Ne ...

  2. 安装部署Java项目

    开头:之前做了个文档转换的小项目,想部署在安卓手机上,自己可以随时看看,所以才有了下面这篇文章,内容或有瑕疵,望请批正.文末放我自己部署文档转换网址,仅供大家参考,谢谢! 选择:Termux 还是 L ...

  3. 一文搞懂工作流审批(Java+activiti)快速开发+自定义工作流配置

    前言 activiti工作流引擎项目,企业erp.oa.hr.crm等企事业办公系统轻松落地,一套完整并且实际运用在多套项目中的案例,满足日常业务流程审批需求. 一.项目形式 springboot+v ...

  4. Selenium中的option用法实例

    Selenium中的option用法实例 在上一篇文章Selenium中免登录的实现方法一option中我们用到了option,而option的用法是很多的,本文举几个例子 关于无头浏览器,也属于op ...

  5. springboot跨域解决

    package com.xf.config; import java.io.IOException; import javax.servlet.Filter; import javax.servlet ...

  6. Dijkstra求最短路 I(朴素算法)

    这道题目又是一个新算法,名叫Dijkstra 主要思路是:输入+dist和vis初始化(都初始化为0x3f)+输入g(邻接矩阵)+Dijkstra函数       Dijkstra函数:先将dist[ ...

  7. configurable 神图

    自己做的

  8. 学习ASP.NET Core Blazor编程系列二十五——登录(4)

    学习ASP.NET Core Blazor编程系列文章之目录 学习ASP.NET Core Blazor编程系列一--综述 学习ASP.NET Core Blazor编程系列二--第一个Blazor应 ...

  9. ElasticSearch使用教程

    一.ElasticSearch使用说明 1. 索引 index,相当于数据库表Table 1.1 查看所有索引 GET _cat/indices?v 1.2 创建索引字段映射关系 PUT /test ...

  10. 【KAWAKO】audiotsm-使用python对音频进行变速不变调处理

    目录 安装库 导入相关库 定义reader 定义writer 定义WSLOA算法,并运行 官方手册 源码 安装库 pip install audiotsm 导入相关库 import audiotsm ...