el-table 合併相同資料的列
<template>
<div class="hello1">
<el-table
:data="tableData"
border
:span-method="spanMethod"
:cell-style="cellStyle"
:header-cell-style="titleHeader"
>
<el-table-column v-for="(item,i) in titleData" :key='i' :prop="item.name" :label='item.label'></el-table-column>
</el-table>
</div>
</template>
<script>
export default {
name: 'HelloWorld',
data () {
return {
// 所有要合併的數量(一行一行的開始)
spanAll:[],
titleData:[
{
name:'col1',
label:'AAA'
},
{
name:'col2',
label:'BBB'
},
{
name:'col3',
label:'CCC'
},
{
name:'col4',
label:'DDD'
}
],
tableData:[
{
col1:1,
col2:2,
col3:3,
col4:4
},
{
col1:2,
col2:2,
col3:4,
col4:4
},
{
col1:6,
col2:2,
col3:7,
col4:5
},
{
col1:5,
col2:4,
col3:7,
col4:9
},
]
}
},
created() {
this.titleData.forEach(val => {
this.getSpanNum(val.name)
})
},
methods:{
// 單元格樣式
cellStyle({row, column, rowIndex, columnIndex}) {
return 'text-align:center'
},
// 表頭樣式
titleHeader({row, column, rowIndex, columnIndex}){
return 'text-align:center'
},
spanMethod({row, column, rowIndex, columnIndex}) {
// 得到行合併的資料
const rowNum= this.spanAll[columnIndex][rowIndex]
// 列合併
const colNum = rowNum > 0 ? 1 : 0
console.log(colNum, '44', rowNum)
// 當前位置的行合併和列合併資料
return {
rowspan: rowNum,
colspan: colNum
}
},
getSpanNum(curName) {
const data = this.tableData
const spanArry = []
let pos = 0
data.forEach((val,i) => {
if(i===0){
spanArry.push(1)
pos = 0
} else {
// 判斷當前列資料與下一行的該列資料是否相同
if (data[i][curName] === data[i-1][curName]) {
// 每一列每一行的合併數量
spanArry[pos] += 1
spanArry.push(0)
} else {
spanArry.push(1)
pos = i
}
}
})
// 把合併資料放入spanAll裡面
this.spanAll.push(spanArry)
}
}
}
</script>
<style>
</style>
執行結果:
相關文章
- el-table合併相同資料的行
- GridView列相同合併View
- el-table 自動合併所有列
- 合併陣列物件中相同的屬性值陣列物件
- js陣列物件相同項合併處理JS陣列物件
- java List中相同的資料合併到一起Java
- pandas 兩列資料合併
- js實現table合併相同列單元格JS
- js合併相同內容表格行JS
- PowerBuilder---合併相同單元格UI
- 【MySQL】MySQL如何合併多行資料,行轉列,group_concat 多行合併MySql
- Excel查詢兩列資料相同的元素Excel
- Bootstrap-table 合併相同單元格boot
- elementui——表格的相同內容單元格合併UI
- 合併陣列陣列
- JavaScript合併表格中的內容相同的單元格JavaScript
- merge into合併資料
- FLEX合併陣列Flex陣列
- python合併相同行只保留一行Python
- 命令列中的拆分與合併命令列
- Mac 上檔名相同、大小寫不同的資料夾會合併成一個所導致的問題Mac
- excel相同名稱數量相加彙總 excel相同名稱自動合併求和Excel
- el-table自定義合併單元格後,單元格錯亂的問題
- element-ui el-table 表格合併後,滑鼠經過的高亮顯示問題UI
- 兩個歷史表的資料合併
- 使用jquery合併表格中相同文字的相鄰單元格jQuery
- php合併陣列的幾種方式PHP陣列
- 合併JavaScript陣列的N種方法JavaScript陣列
- 資料檔案合併與拆分
- JS--陣列物件合併JS陣列物件
- 合併兩個有序陣列陣列
- Hive列合併與元素蒐集Hive
- JavaScript concat()合併陣列JavaScript陣列
- mysql-列合併成行方式MySql
- 藍橋杯-合併數列
- mysql資料庫多表同結構合併資料MySql資料庫
- Excel合併單元格資料的方法教程Excel
- mysql將多行資料合併或按組合並MySql