const listSpanMethod = ({ row, columnIndex }) => {
if ([0, 5, 6].includes(columnIndex)) {
return {
rowspan: row.chapterRowspan,
colspan: 1,
};
} else if ([1, 4].includes(columnIndex)) {
return {
rowspan: row.sectionRowspan,
colspan: 1,
};
}
};
const setRowspans = (data) => {
data.forEach((item) => {
item.chapterRowspan = 1;
item.sectionRowspan = 1;
});
// 设置章合并数
for (let i = 0; i < data.length; i++) {
for (let j = i + 1; j < data.length; j++) {
if (data[i].firstTargetName === data[j].firstTargetName) {
data[i].chapterRowspan++;
data[j].chapterRowspan--;
}
}
i = i + data[i].chapterRowspan - 1;
}
// 设置节合并数
for (let i = 0; i < data.length; i++) {
for (let j = i + 1; j < data.length; j++) {
if (
data[i].firstTargetName === data[j].firstTargetName &&
data[i].secondTargetName === data[j].secondTargetName
) {
data[i].sectionRowspan++;
data[j].sectionRowspan--;
}
}
i = i + data[i].sectionRowspan - 1;
}
return data;
};
firstTargetName 为第0列字段名称,5,6列根据0列合并,
secondTargetName 为第1列字段名称,4列根据1列合并,