vue單元格多列合并的實(shí)現(xiàn)
一.多列合并
1.在el-table中添加:span-method='objectSpanMethod'屬性來控制合并單元格,如下圖

2.合并代碼,每一列都要設(shè)置一個(gè)不同的key,這樣可以防止合并的時(shí)候上下內(nèi)容一樣導(dǎo)致錯(cuò)誤的問題
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.需要調(diào)用一下下面兩個(gè)函數(shù),data為你所獲取的所有數(shù)據(jù)
this.resolveData_two(data); this.resolveData(data);
4.合并結(jié)果如下圖

到此這篇關(guān)于vue單元格多列合并的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)vue單元格多列合并內(nèi)容請搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!
相關(guān)文章:
1. 詳解Android studio 動(dòng)態(tài)fragment的用法2. 編程語言PHP在Web開發(fā)領(lǐng)域的優(yōu)勢在哪?3. Spring Boot和Thymeleaf整合結(jié)合JPA實(shí)現(xiàn)分頁效果(實(shí)例代碼)4. Android如何加載Base64編碼格式圖片5. 什么是python的自省6. 解決Android studio xml界面無法預(yù)覽問題7. 基于android studio的layout的xml文件的創(chuàng)建方式8. 圖文詳解vue中proto文件的函數(shù)調(diào)用9. Vuex localStorage的具體使用10. 在IDEA中實(shí)現(xiàn)同時(shí)運(yùn)行2個(gè)相同的java程序

網(wǎng)公網(wǎng)安備