欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

element實(shí)現(xiàn)合并單元格通用方法

 更新時(shí)間:2019年11月13日 09:37:41   作者:i大俊  
這篇文章主要介紹了element實(shí)現(xiàn)合并單元格通用方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧

主要思路:

  1. 對(duì)數(shù)據(jù)進(jìn)行處理,寫(xiě)了一個(gè)getSpanData通用方法。
  2. 用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)文章

最新評(píng)論