Element Plus el-table 自定義合并行和列

原文鏈接:Element Plus el-table 自定義合并行和列

前言

目標(biāo)效果是將表格行數(shù)據(jù)中某個屬性值相同的項(xiàng)合并到一起饥瓷,效果如下:

image.png
<el-table :data="tableData" :span-method="spanMethod" style="width: 100%">
    <el-table-column prop="StoAlias" label="節(jié)點(diǎn)名稱" />
    <el-table-column prop="Name" label="存儲池名稱" />
    <el-table-column prop="Type" label="存儲池類型" />
    <el-table-column prop="Capacity" label="總?cè)萘? />
    <el-table-column prop="Available" label="可用容量" />
    <el-table-column prop="Used" label="已使用容量" />
    <el-table-column prop="Status" label="狀態(tài)" />
</el-table>
import type { TableColumnCtx } from 'element-plus'

const tableData = [
  { "Available": 0, "Capacity": 0, "Name": "test05", "Status": 0, "StoAlias": "test", "Type": 0, "Used": 0 },
  { "Available": 0, "Capacity": 0, "Name": "test01", "Status": 0, "StoAlias": "169.254.218", "Type": 0, "Used": 0 },
  { "Available": 0, "Capacity": 0, "Name": "tset03", "Status": 0, "StoAlias": "test", "Type": 1, "Used": 0 },
  { "Available": 0, "Capacity": 0, "Name": "test02", "Status": 0, "StoAlias": "test03", "Type": 0, "Used": 0 },
  { "Available": 0, "Capacity": 0, "Name": "test06", "Status": 0, "StoAlias": "test03", "Type": 0, "Used": 0 },
  { "Available": 0, "Capacity": 0, "Name": "test04", "Status": 0, "StoAlias": "169.254.218", "Type": 0, "Used": 0 },
  { "Available": 0, "Capacity": 0, "Name": "test07", "Status": 0, "StoAlias": "169.254.218", "Type": 1, "Used": 0 }
]

let cellList: any[] = [] // 單元格數(shù)組
let count: number = 0 // 計數(shù)

const computeCell = (tableList: any[]) => {
  cellList = []
  count = 0
  for (let i = 0; i < tableList.length; i++) {
    if (i === 0) {
      // 先設(shè)置第一項(xiàng)
      cellList.push(1); // 初為1斋扰,若下一項(xiàng)和此項(xiàng)相同东且,就往cellList數(shù)組中追加0
      count = 0; // 初始計數(shù)為0
    } else {
      if (tableList[i].StoAlias == tableList[i - 1].StoAlias) {
        cellList[count] += 1; // 增加計數(shù)
        cellList.push(0); // 相等就往cellList數(shù)組中追加0
      } else {
        cellList.push(1); // 不等就往cellList數(shù)組中追加1
        count = i; // 將索引賦值為計數(shù)
      }
    }
  }
}

const sortArray = (x: any, y: any) => {
  if (x.StoAlias < y.StoAlias) { return -1 }
  else if (x.StoAlias > y.StoAlias) { return 1 }
  else { return 0 }
}

interface SpanMethodProps {
  row: StoragePoolItem
  column: TableColumnCtx<StoragePoolItem>
  rowIndex: number
  columnIndex: number
}

const spanMethod = ({
  rowIndex,
  columnIndex,
}: SpanMethodProps) => {
    computeCell(tableData.sort(sortArray))
    if (columnIndex === 0) {
      const fRow = cellList[rowIndex]
      const fCol = fRow > 0 ? 1 : 0
      return {
        rowspan: fRow, // 合并的行數(shù)
        colspan: fCol // 合并的列數(shù)截珍,為0表示不顯示
      }
    }
}

sortArray()此方法根據(jù)目標(biāo)屬性值(StoAlias)排序了。

點(diǎn)擊 傳送門 查看更多關(guān)于【el-table 合并行或列】的信息嗜侮。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末稽犁,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子陨帆,更是在濱河造成了極大的恐慌曲秉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,372評論 6 498
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件疲牵,死亡現(xiàn)場離奇詭異承二,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)纲爸,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,368評論 3 392
  • 文/潘曉璐 我一進(jìn)店門亥鸠,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人识啦,你說我怎么就攤上這事负蚊。” “怎么了颓哮?”我有些...
    開封第一講書人閱讀 162,415評論 0 353
  • 文/不壞的土叔 我叫張陵家妆,是天一觀的道長。 經(jīng)常有香客問我冕茅,道長伤极,這世上最難降的妖魔是什么蛹找? 我笑而不...
    開封第一講書人閱讀 58,157評論 1 292
  • 正文 為了忘掉前任,我火速辦了婚禮塑荒,結(jié)果婚禮上熄赡,老公的妹妹穿的比我還像新娘。我一直安慰自己齿税,他們只是感情好彼硫,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,171評論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著凌箕,像睡著了一般拧篮。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上牵舱,一...
    開封第一講書人閱讀 51,125評論 1 297
  • 那天串绩,我揣著相機(jī)與錄音,去河邊找鬼芜壁。 笑死礁凡,一個胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的慧妄。 我是一名探鬼主播顷牌,決...
    沈念sama閱讀 40,028評論 3 417
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼塞淹!你這毒婦竟也來了窟蓝?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,887評論 0 274
  • 序言:老撾萬榮一對情侶失蹤饱普,失蹤者是張志新(化名)和其女友劉穎运挫,沒想到半個月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體套耕,經(jīng)...
    沈念sama閱讀 45,310評論 1 310
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡谁帕,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,533評論 2 332
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了箍铲。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片雇卷。...
    茶點(diǎn)故事閱讀 39,690評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖颠猴,靈堂內(nèi)的尸體忽然破棺而出关划,到底是詐尸還是另有隱情,我是刑警寧澤翘瓮,帶...
    沈念sama閱讀 35,411評論 5 343
  • 正文 年R本政府宣布贮折,位于F島的核電站,受9級特大地震影響资盅,放射性物質(zhì)發(fā)生泄漏调榄。R本人自食惡果不足惜踊赠,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,004評論 3 325
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望每庆。 院中可真熱鬧筐带,春花似錦、人聲如沸缤灵。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,659評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽腮出。三九已至帖鸦,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間胚嘲,已是汗流浹背作儿。 一陣腳步聲響...
    開封第一講書人閱讀 32,812評論 1 268
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留馋劈,地道東北人攻锰。 一個月前我還...
    沈念sama閱讀 47,693評論 2 368
  • 正文 我出身青樓,卻偏偏與公主長得像妓雾,于是被迫代替她去往敵國和親口注。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,577評論 2 353

推薦閱讀更多精彩內(nèi)容