el-table 处理表格数据中存在属性值为数组的情况
当返回的数据类型如下:
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 处理表格数据中存在属性值为数组的情况的更多相关文章
- ajax取到数据后如何拿到data.data中的属性值
今天遇到的ajax取到数据后如何拿到data.data中的属性值的问题 比如拿到了数据 我要取出data中的name 题外话:当然取名最好别取什么奇怪的xiaobi
- jsp页面使用el 按key获取map中的对应值
jsp页面使用el 按key获取map中的对应值 转自:<jsp页面使用el 按key获取map中的对应值>地址:http://blog.csdn.net/baple/article/de ...
- <s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中的属性值
<s:property="a" value=""/>取的<s:debug></s:debug>中的value stack中 ...
- 将source类中的属性值赋给target类中对应的属性
/** * 对象的属性值拷贝 * <p> * 将source对象中的属性值赋值到target对象中的属性,属性名一样,类型一样 * <p> * example: * <p ...
- Spring中使用@Value读取porperties文件中的属性值方法总结及注意事项
本文为博主原创,转载请注明出处. 此前曾总结过使用工具类读取properties文件中的属性值,有兴趣的可以看一下. 如何快速获取properties中的配置属性值:https://www.cnblo ...
- 【Python】获取翻页之后的各页面中的属性值。
如何获取翻页之后的页面中的html标签中的属性值? # coding=utf-8 from selenium import webdriver if __name__=="__main__& ...
- 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 ...
- params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
params.row[params.column.key] vue h函数 当前单元格 h函数 div 属性 值或数组 render
- table(表格)中的标签和属性
1.表格由 <table> 标签来定义.行( <tr> ),单元格(<td> ) 字母 td 指表格数据(table data),即数据单元格的内容.数据单元格可以 ...
- iview table 实现在数据中自定义标识
做了一个商旅订票的项目,在详情中有一个因公超标在表格中用一个“超”字显示的需求.后台框架用的iview+vue,也就是在iview Table中改变.在iview的框架中改变东西首先要想到的是ivie ...
随机推荐
- 51NOD5213A 【提高组/高分-省选预科 第一场【M】】序列
小 Y 酷爱的接龙游戏正是这样.玩腻了成语接龙之后,小 Y 决定尝试无平方因子二元合数接龙,规则如下: 现有 \(n\) 个不超过 \(K\) 的合数,每个合数 \(a\) 均可表示为 \(a=pq( ...
- group by 语句怎么优化?
一.一个简单使用示例 我这里创建一张订单表 CREATE TABLE `order_info` ( `id` int NOT NULL AUTO_INCREMENT COMMENT '主键', `or ...
- 使用阿里云产品搭建PHPWIND
2.4 安装PhpWind论坛网站 1. 本小节主要是在ECS云主机中快速安装PhpWind论坛网站的基础环境. 2. 远程登录到 PhpWind 主机服务器 ECS实例.请使用本实验 ...
- day06-Spring管理Bean-IOC-04
Spring管理Bean-IOC-04 3.基于注解配置bean 3.1基本使用 3.1.1说明 基本说明:基于注解的方式配置bean,主要是项目开发中的组件,比如Controller,Service ...
- Unity - 自定义Log
嗨,崽崽们大家好.实在是不知道写个啥了,最近总是恍惚,今儿偷个懒吧,给大家推荐一个小黑自己写的小型日志工具,在一些小项目中管够使用了. 那有人会问了,Unity不是自带日志么,为什么还要自己做个小工具 ...
- Hive删除分区名称中含有特殊字符
先说方案:通过show partitions和hdfs url看到的都不是真正的分区名称,都是经过URI重新编码的,访问这些分区应该使用分区名称的原始字符串. 场景描述 当我们在SQL语句中使用变量时 ...
- Vue 3项目如何设置全局变量
- 基于二叉树的高效IP检索格式MMDB
一.MMDB简介 MMDB(MaxMind Database) 是MaxMind推出的一个数据存储和检索的数据库格式,用于旗下针对IP检索和存储的Geo产品. IP格式由二进制比特数组组成,很容易想到 ...
- 构建api gateway之 openresty 中如何使用 wasm
openresty 中如何使用 wasm WASM 是什么? WebAssembly是一种运行在现代网络浏览器中的新型代码,并且提供新的性能特性和效果.它设计的目的不是为了手写代码而是为诸如C.C++ ...
- Dapr v1.10.0 版本已发布
Dapr是一套开源.可移植的事件驱动型运行时,允许开发人员轻松立足云端与边缘位置运行弹性.微服务.无状态以及有状态等应用程序类型.Dapr能够确保开发人员专注于编写业务逻辑,而不必分神于解决分布式系统 ...