接口拿到一个数组,需要根据该数组生成复杂表格的表头。
数组举例:
// 第一个上中下为一月份 第二个上中下为二月份,以此类推
const dimensions = ['年份', '上', '中', '下', '上', '中', '下']
const cols =
[
{
label: '年份',
field: '0',// dimensions 中年份的下标为 0
rowspan: 2,
},
{
label: '一月',
colspan: 3,
},
{
label: '二月',
colspan: 3,
},
],
[
{
label: '上',
field: '1', // dimensions 中年份的一月份的上旬“上”的下标为 1
rowspan: 1, // 默认的跨行
colspan: 1, // 默认的跨列
},
{
label: '中',
field: '2', // dimensions 中年份的一月份的上旬“中”的下标为 2
},
{
label: '下',
field: '3',
},
{
label: '上',
field: '4',
},
{
label: '中',
field: '5',
},
{
label: '下',
field: '6',
},
],
]
最后表头的标头的样式:
会把 cols 传入组件,生成表头。
希望写一个函数,输入 dimensions,返回 cols。
刚好是月份,才按照上中下合并单元格,如果不是上中下,也可能需要合并。重要的不是按照上中下合并,而是 dimensions 第 i 和 i + n 元素跨列合并,或者 跨行。
['年份', '上', '中', '下', '上', '中', '下']
比如,希望 “年上”跨行,“中下上”跨列,“中下”跨行,就不是按照上中下是月份的规则合并。
js
新手,试答一下输入
输出
代码