elementUI 表格之合并同类项(包括行和列)

mergeSpan(tableData, arr) { //["areName","indexCode"]
    let spanArr = new Array(tableData.length);
    for (let m = 0; m < spanArr.length; m++) {
        spanArr[m] = new Array(arr.length);
    }
    arr.forEach((ele, ind) = > {
        let pos = null;
        tableData.forEach((item, index, self) = > {
            if (index == 0) {
                spanArr[index][ind] = {
                    rowspan: 1,
                    colspan: 1
                }
                pos = 0;
            } else {
                if (item[ele] === self[index - 1][ele]) {
                    spanArr[pos][ind].rowspan += 1;
                    spanArr[index][ind] = {
                        rowspan: 0,
                        colspan: 0
                    }
                } else {
                    pos = index;
                    spanArr[index][ind] = {
                        rowspan: 1,
                        colspan: 1
                    }
                }
            }
        })
    })

    tableData.forEach((item, index) = > {
        let pos = null;
        arr.forEach((ele, ind, self) = > {
            if (ind == 0 && spanArr[index][ind].rowspan == 1) {
                spanArr[index][ind].colspan = 1;
                pos = 0;
            } else {
                if (item[ele] == item[self[ind - 1]] && spanArr[index][pos].rowspan == 1) {
                    spanArr[index][pos].colspan += 1;
                    spanArr[index][ind] = {
                        rowspan: 0,
                        colspan: 0
                    }
                } else {
                    pos = ind;
                }
            }
        })
    })
    return spanArr
}

 

posted @ 2020-11-25 17:15  上官兰雨  阅读(438)  评论(0编辑  收藏  举报