vue單元格多列合并的實現(xiàn)
一.多列合并
1.在el-table中添加:span-method="objectSpanMethod"
屬性來控制合并單元格,如下圖
2.合并代碼,每一列都要設置一個不同的key,這樣可以防止合并的時候上下內(nèi)容一樣導致錯誤的問題
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)用一下下面兩個函數(shù),data為你所獲取的所有數(shù)據(jù)
this.resolveData_two(data); this.resolveData(data);
4.合并結果如下圖
到此這篇關于vue單元格多列合并的實現(xiàn)的文章就介紹到這了,更多相關vue單元格多列合并內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
VUE搭建分布式醫(yī)療掛號系統(tǒng)的前臺預約掛號步驟詳情
這篇文章主要介紹了VUE搭建分布式醫(yī)療掛號系統(tǒng)的前臺預約掛號步驟詳情,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2022-04-04Vue插槽_特殊特性slot,slot-scope與指令v-slot說明
這篇文章主要介紹了Vue插槽_特殊特性slot,slot-scope與指令v-slot說明,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-09-09如何使用vuejs實現(xiàn)更好的Form validation?
如何使用vuejs實現(xiàn)更好的Form validation?這篇文章主要介紹了vue-form插件的使用方法,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-04-04在vue中使用express-mock搭建mock服務的方法
這篇文章主要介紹了在vue中使用express-mock搭建mock服務的方法,文中給大家提到了在vue-test-utils 中 mock 全局對象的相關知識 ,需要的朋友可以參考下2018-11-11