el-table中合并表头的同时,合并列固定(解决办法)+表头合并受fixed的影响合并不成功(解决办法)

甘骞尧
2023-12-01

问题描述:

使用下面的方法对固定列的表头进行合并,结果发现表头并没有合并,
把fixed去掉后,表头又合并了,
说明:该合并方法受fixed的影响

//表格代码
<el-table>
	<el-table-column type="index" align="center" label="序号" width="70px" fixed ></el-table-column>
	。。。。
</el-table>
//下面是会受fixed影响的合并方法
mounted() {
    this.$nextTick(function(){         
      this.setheaderColSpan();
    })
},
methods(){
//合并表头---会受fixed影响,不再使用
   setheaderColSpan(){
        let n=document.getElementsByClassName("el-table__header")[0].rows[0].cells;
        n[1].colSpan=3;//3为合并的列数
        n[2].style.display='none'
        n[3].style.display='none'
    },
}

解决方法:使用el-table的header-cell-style来解决合并问题
(该方法不受fixed影响)

//表格代码
<el-table
:header-cell-style="setHeader">
	<el-table-column type="index" align="center" label="序号" width="70px" fixed ></el-table-column>
</el-table>
methods(){
// 合并表头
   setHeader({ row, column, rowIndex, columnIndex }){
        if (row[0].level == 1) {
            row[1].colSpan = 3
            row[2].colSpan = 0
            row[3].colSpan = 0
            if (columnIndex === 2 || columnIndex === 3) {
                return { display: 'none' }
            }
        }
    },
}
 类似资料: