您的位置:首頁技術文章
文章詳情頁

vue單元格多列合并的實現

瀏覽:59日期:2022-10-23 11:26:14

一.多列合并

1.在el-table中添加:span-method='objectSpanMethod'屬性來控制合并單元格,如下圖

vue單元格多列合并的實現

2.合并代碼,每一列都要設置一個不同的key,這樣可以防止合并的時候上下內容一樣導致錯誤的問題

objectSpanMethod({ row, column, rowIndex, columnIndex }) { if (columnIndex === 0) { if (this.myObj[row.channel_type].start === rowIndex) { return { rowspan: this.myObj[row.channel_type].step, colspan: 1 }; } else { return { rowspan: 0, colspan: 0 }; } } if (columnIndex === 1) { if ( this.myObj_two[row.channel_name_chinese + row.channel_type].start === rowIndex ) { return { rowspan: this.myObj_two[row.channel_name_chinese + row.channel_type] .step, colspan: 1 }; } else { return { rowspan: 0, colspan: 0 }; } } }, // 合并單元格第一列 resolveData(arr) { var obj = {}; arr.forEach((val, key) => { if (!obj[val.channel_type]) { obj[val.channel_type] = { start: key, step: 1 }; } else { obj[val.channel_type].step++; } }); this.myObj = obj; console.log(obj); }, // 合并單元格第二列 resolveData_two(arr) { var obj = {}; arr.forEach((val, key) => { if (!obj[val.channel_name_chinese + val.channel_type]) { obj[val.channel_name_chinese + val.channel_type] = { start: key, step: 1 }; } else { obj[val.channel_name_chinese + val.channel_type].step++; } }); this.myObj_two = obj; console.log(this.myObj_two, 'this.myObj'); },

3.需要調用一下下面兩個函數,data為你所獲取的所有數據

this.resolveData_two(data); this.resolveData(data);

4.合并結果如下圖

vue單元格多列合并的實現

到此這篇關于vue單元格多列合并的實現的文章就介紹到這了,更多相關vue單元格多列合并內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Vue
相關文章:
国产综合久久一区二区三区