const formatTable = (dataArr) => {
let newTable = []
let reqIdList = []
dataArr.forEach((item) => {
reqIdList.push(item.reqId)
if (item.dataList && item.dataList.length) {
item.dataList.forEach((itemTwo, indexTwo) => {
if ( indexTwo === 0 ) {
newTable.push({ ...itemTwo, reqId: item.reqId, billNo: item.billNo, rowspan: item.dataList.length })
} else {
newTable.push({ ...itemTwo, reqId: item.reqId, billNo: item.billNo })
}
})
}
})
data.reqIdList = reqIdList
return newTable
}
const objectSpanMethod = ({columnIndex, row}) => {
let mergeCol = [ 1 ]
if (mergeCol.includes(columnIndex) && data.isMore) {
if (row.rowspan) {
return {
rowspan: row.rowspan || 1,
colspan: 1
};
} else {
return {
rowspan: 0,
colspan: 0
};
}
}
}
如果是有多级合并需要嵌套遍历
ormatTable(dataArr) {
console.log('dataArrdataArr',dataArr)
let newTable = []
dataArr.forEach((item, itemIndex) => {
if (item.hospitalAreaExpertDTOList && item.hospitalAreaExpertDTOList.length) {
item.hospitalAreaExpertDTOList.forEach((itemTwo, indexTwo) => {
if (itemTwo.expertInfoDTOList && itemTwo.expertInfoDTOList.length) {
itemTwo.expertInfoDTOList.forEach((itemThree, indexThree) => {
if (indexThree === 0 && indexTwo === 0) {
newTable.push({
rowspan: item.clinicSize,
rowspan1: itemTwo.expertInfoDTOList.length,
...itemThree,
hospitalAreaExpertDTOList:item.hospitalAreaExpertDTOList,
doctorName: item.doctorName,
introduce:item.introduce,
titleName:item.titleName,
recommendFlag:item.recommendFlag,
imgPath:item.imgPath,
index:itemIndex + ((this.searchData.page - 1) * (this.searchData.pageSize) + 1)
})
} else if (indexThree === 0) {
newTable.push({
rowspan1: itemTwo.expertInfoDTOList.length,
...itemThree,
introduce:item.introduce,
hospitalAreaExpertDTOList:item.hospitalAreaExpertDTOList,
doctorName: item.doctorName,
titleName:item.titleName,
recommendFlag:item.recommendFlag,
imgPath:item.imgPath,
index:itemIndex + ((this.searchData.page - 1) * (this.searchData.pageSize) + 1)
})
} else {
newTable.push({
...itemThree,
introduce:item.introduce,
hospitalAreaExpertDTOList:item.hospitalAreaExpertDTOList,
doctorName: item.doctorName,
titleName:item.titleName,
recommendFlag:item.recommendFlag,
imgPath:item.imgPath,
index:itemIndex + ((this.searchData.page - 1) * (this.searchData.pageSize) + 1)
})
}
})
}
})
}
})
console.log('newTable',newTable) return newTable
},
如果是已经有了正常的数据格式 但是想要将某个字段(sourceName)合并起来 可以用以下