el-table表头布局的一些小思路(表头合并)

在这里插入图片描述
第一个红框表头单元格的合并 header-cell-class-name

    // 通过el-table的header-cell-class-name的方法给对应节点添加class
    headerCellClassName: function ({row, column, rowIndex, columnIndex}) {
      if(rowIndex === 0 && (columnIndex == 6 || columnIndex == 7 || columnIndex == 8 || columnIndex == 12 || columnIndex == 13)){
        return 'aaa'
      }else if(rowIndex === 1 && (columnIndex == 5 || columnIndex == 6 || columnIndex == 7 || columnIndex == 18 || columnIndex == 19)){
        return 'bbb'
      }
    },
  	// 在 mounted 里进行通过dom进行合并。
    this.$nextTick(() => {
      var doms0 = document.querySelectorAll('.aaa')
      // doms1是doms0下的二级空白节点用来占位的
      var doms1 = document.querySelectorAll('.bbb')
      doms1.forEach(function (item) {
          item.rowSpan = 0
          item.colSpan = 0
          item.style.display = 'none'
      })
      doms0.forEach(function (item,index) {
        // 添加aaa的时候有一个隐藏元素也被加上了,所以这里过滤了一下。根据实际可能有不同 
        if(index !== 0){
          item.rowSpan = 2
        }
      })
    })

第二红框,边线的调整 header-cell-style

    // 表头样式 
    headerCellStyle: function ({row, column, rowIndex, columnIndex}) {
      if(rowIndex === 0 && (columnIndex == 6 || columnIndex == 7 || columnIndex == 8 || columnIndex == 12 || columnIndex == 13)){
        return 'border-bottom: none;'
      }else if(rowIndex === 1){
        return 'border-bottom: none;padding: 0px'
      }else if(rowIndex === 2 && columnIndex != 19 && columnIndex != 24){
        return 'border-top: 1px solid rgb(57, 57, 57);padding: 0px'
      }else if (rowIndex !== 0){
        return 'padding: 0px'
      }
    },
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值