###数据结构
实现
const GetTableListValue = async () => {
const { data } = await mathematicsTableListApi({ assessmentPlanId: props.dataId })
listValue.value = FormatHeader(tableHeader.value)
const list = matedeepList(data)
const form = materdeepList(data)
console.log(list);
console.log(form)
这里进行数据比对
tableData.value = list.reduce((pre: any, cur: any) => {
const target = pre.find((ee: any) => ee.code === cur.code)
if (target) {
Object.assign(target, cur)
} else {
pre.push(cur)
}
return pre
}, form)
}
// 只保留多级表头中的末级
const FormatHeader = (val?: any) => {
let result = []
val.map((i: any) => {
if (i.children && i.children.length) {
const res = FormatHeader(i.children)
if (res.length) result = [...result, ...res]
} else {
result.push(i)
}
})
return result
}
//第二种方法
// 指标格式化
const materdeepList = (val: any, header: any) => {
let tableData=[]
let datazu = []
header.forEach(item => {
if(item.prop.includes('fraction')) datazu.push(item.prop.split('fraction')[0])
})
console.log(datazu);
val.forEach(item=>{
let obj={}
obj.name=item.name
item.dataList.forEach(val=>{
if (datazu.includes(val.code)) {
obj[val.code+'fraction']=val.fraction
obj[val.code+'value']=val.value
tableData.push(obj)
}
})
})
}
实现效果