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>
執行結果:
相關文章
- javascript中的資料型別
- Python+selenium實現Drcom校園網自動檢測網路以及自動登入
- SQL Server 批量生成資料庫內多個表的表結構
- excel:如何批量加符號
- node 整合sequelize ORM 框架學習
- React學習筆記之雙向資料繫結
- Java網路程式設計--UDP傳送接收資料
- stm32DMA+訊息佇列實現串列埠資料接收不丟包
- telnet連線socket server
- 關於element ui input標籤的改造樣式
- Elementary OS 使用fcitx安裝搜狗詞庫、搜狗輸入法(Ubuntu通用)
- ClickHouse資料庫資料定義手記之資料型別
- laravel schedule run 任務排程在 Windows下的另一種啟動方式
- 六、Alibaba sentinel之限流原理分析
- ehcarts擴充套件優秀的資料表
- 23 大資料之hive(第四部 hive基礎)
- Intellij idea 不能識別 @Slf4j,@Getter ,@Setter註解,安裝Lombok
- xshell 複製、貼上、快捷鍵修改 & 中斷目前命令配置
- C語言練習——資料加密
- 2020網站/APP/Webshell線上查毒 電腦軟體查毒大全