element實(shí)現(xiàn)合并單元格通用方法
主要思路:
- 對(duì)數(shù)據(jù)進(jìn)行處理,寫(xiě)了一個(gè)getSpanData通用方法。
- 用api中提供的span-method方法。
span-method方法用法:
通過(guò)給table傳入span-method方法可以實(shí)現(xiàn)合并行或列,方法的參數(shù)是一個(gè)對(duì)象,里面包含當(dāng)前行row、當(dāng)前列column、當(dāng)前行號(hào)rowIndex、當(dāng)前列號(hào)columnIndex四個(gè)屬性。該函數(shù)可以返回一個(gè)包含兩個(gè)元素的數(shù)組,第一個(gè)元素代表rowspan,第二個(gè)元素代表colspan。 也可以返回一個(gè)鍵名為rowspan和colspan的對(duì)象。
通用實(shí)例
demo.vue
<el-table v-loading="loading" ref="singleTable" :data="tableData" :span-method="handleObjectSpanMethod" highlight-current-row border style="width: 100%;margin-top:10px;" max-height="730" >
JavaScript
// 查詢(xún)列表 queryTableList() { getNeeds().then(res => { if (res.code === 0) { // 表格數(shù)據(jù) this.tableData = res.data // 對(duì)表格數(shù)據(jù)進(jìn)行處理,找出需要合并的單元格 this.getSpanData(this.tableData) } }) }, // 計(jì)算需要合并的單元格 getSpanData(data) { // 存放計(jì)算好的合并單元格的規(guī)則 this.spanData = [] for (var i = 0; i < data.length; i++) { if (i === 0) { this.spanData.push(1) this.pos = 0 } else { // 判斷當(dāng)前元素與上一個(gè)元素是否相同 if (data[i].realOpenDate === data[i - 1].realOpenDate) { this.spanData[this.pos] += 1 this.spanData.push(0) } else { this.spanData.push(1) this.pos = i } } } } // 合并單元格 handleObjectSpanMethod({ row, column, rowIndex, columnIndex }) { // 需要合并的列 // [0, 1, 2].includes(columnIndex ), 表示合并前三列 if (columnIndex === 1) { const _row = this.spanData[rowIndex] const _col = _row > 0 ? 1 : 0 return { rowspan: _row, colspan: _col } } }
getSpanData中spanData處理后的結(jié)構(gòu):
數(shù)組中12的值表示需要合并的地方,很好理解,就是找到每行中columnIndex對(duì)應(yīng)要合并的位置。
以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
vue3中各種類(lèi)型文件進(jìn)行預(yù)覽功能實(shí)例
在vue移動(dòng)端項(xiàng)目中經(jīng)常遇到這樣的需求,對(duì)一些上傳的附件可以點(diǎn)擊之后在線(xiàn)預(yù)覽,所以下面這篇文章主要給大家介紹了關(guān)于vue3中各種類(lèi)型文件進(jìn)行預(yù)覽功能的相關(guān)資料,需要的朋友可以參考下2021-09-09Vue實(shí)現(xiàn)購(gòu)物車(chē)功能
本篇文章主要分享了Vue實(shí)現(xiàn)購(gòu)物車(chē)功能的實(shí)例代碼。具有很好的參考價(jià)值。下面跟著小編一起來(lái)看下吧2017-04-04vue+echarts實(shí)現(xiàn)中國(guó)地圖流動(dòng)效果(步驟詳解)
這篇文章主要介紹了vue+echarts實(shí)現(xiàn)中國(guó)地圖流動(dòng)效果(步驟詳解),本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2021-01-01Vue保持用戶(hù)登錄狀態(tài)(各種token存儲(chǔ)方式)
本文主要介紹了Vue保持用戶(hù)登錄狀態(tài)(各種token存儲(chǔ)方式),文中通過(guò)示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2021-09-09vue?如何綁定disabled屬性讓其不能被點(diǎn)擊
這篇文章主要介紹了vue?如何綁定disabled屬性讓其不能被點(diǎn)擊,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2022-04-04手寫(xiě)實(shí)現(xiàn)vue2下拉菜單dropdown組件實(shí)例
這篇文章主要為大家介紹了手寫(xiě)vue2下拉菜單dropdown組件實(shí)例,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪2022-08-08vue組件(全局,局部,動(dòng)態(tài)加載組件)
組件是Vue.js最強(qiáng)大的功能之一。組件可以擴(kuò)展HTML元素,封裝可重用的代碼。這篇文章主要介紹了vue組件(全局,局部,動(dòng)態(tài)加載組件),需要的朋友可以參考下2018-09-09安裝VUE-CLI一直失敗的排錯(cuò)過(guò)程及解決方案
這篇文章主要介紹了安裝VUE-CLI一直失敗的排錯(cuò)過(guò)程及解決方案,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-10-10解決VUE框架 導(dǎo)致綁定事件的阻止冒泡失效問(wèn)題
下面小編就為大家分享一篇vue監(jiān)聽(tīng)滾動(dòng)事件 實(shí)現(xiàn)某元素吸頂或者固定位置顯示方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02