// 后端返回的数据
let synthesisSummary = [
{
workTime: 100,//累计工作时间
nullTime: 12,// 累计空转时间
baoyangWorkTime: 8,//累计保养时间
leijiXfTime: 3,//累计修复工作时间
yanyou: 512,//燃油
tianjian: 153,//田间 累计工作量
tianjian2: 2,//田间 油耗
xishu: 78,//负荷系数
time: 90,// 百分比
},
{
workTime: 200,//累计工作时间
nullTime: 12,// 累计空转时间
baoyangWorkTime: 8,//累计保养时间
leijiXfTime: 3,//累计修复工作时间
yanyou: 512,//燃油
tianjian: 153,//田间 累计工作量
tianjian2: 2,//田间 油耗
xishu: 78,//负荷系数
time: 90,// 百分比
}
]
// 侧标表头的对应关系
let labelList = [
{
key: "workTime",
label: "累计工作时间/h"
},
{
key: "nullTime",
label: "累计空转时间/h"
},
{
key: "baoyangWorkTime",
label: "累计保养时间/h"
},
{
key: "leijiXfTime",
label: "累计修复工作时间/h"
},
{
key: "yanyou",
label: "累计耗油量/kg|燃油"
},
{
key: "tianjian",
label: "累计工作量|田间"
},
{
key: "tianjian2",
label: "平均小时燃油耗|田间"
},
{
key: "xishu",
label: "田间作业平均负荷系数"
},
{
key: "time",
label: "田间作业时间占总时间的百分比"
}
]
// 表格需要的数据
let list = []
/**
* 遍历循环 表头对应关系
* 根据后端返回数据的长度进行for in 遍历,得到每一列的数据
* 设置每一列的字段 colItemData加上当前列的索引
* 获取表头需要显示的内容,在 表头对应关系的 label中设置 如果有多个使用 | 进行分开
* 设置每一行的数据, 需要判断 当前这一行是否有值,因为前面遍历了synthesisSummary 会先执行完synthesisSummary的第一项在执行第二项,如果有值就是他本身,如果没有值就是当前行的表头
* 然后对当前行添加数据
*/
labelList.map((item, index) => {
for (let i = 0; i < synthesisSummary.length; i++) {
let keys = 'colItemData' + (i + 1)
let labelList = item.label.split('|')
let header = {
col1: labelList[0],
col2: labelList[1] || '',
}
list[index] = list[index] ? list[index] : header
list[index][keys] = synthesisSummary[i][item['key']]
}
})
console.log(list)
console