el-table多级表头,合并表头,设置样式

使用框架 vue3 element-plus

 html代码。多级表头请阅读官网

地址:element-plus

<el-table :data="tableData" style="width: 100%" :header-cell-style="handerMethod" :span-method="arraySpanMethod">
      <el-table-column prop="manufactureCode" >
        <template #header>
          <p>工程代码:{{tableHead.epcCode}}</p>
          <p>工程名称:{{tableHead.epcName}}</p>
          <p>生产指示日期:{{tableHead.indicateTime}}</p>
          <p> 最大生产能力:{{tableHead.capacity}}</p>
        </template>
      </el-table-column>
      <el-table-column prop="manufactureName" label=""></el-table-column>
      <el-table-column label="便次">
        <el-table-column prop="manufactureNumber" label="生产开始时间"></el-table-column>
      </el-table-column>
      <el-table-column :label="tableHeadNum[index]" v-for="(item,index) in tableHeadTime">
        <el-table-column :prop="item" :label="tableHeadTime[index]"></el-table-column>
      </el-table-column>    
    </el-table>

js代码。vue3 setup 

// 合并单元格
const arraySpanMethod = ( row:any)=>{
  // console.log(row)
  if(row.rowIndex == 0 && row.columnIndex == 0){
  }
}

//隐藏表头,合并表头
const handerMethod = (row:any)=>{
  console.log(row)
  // 第一级表头
  if (row.row[0].level == 1) {
    // 合并第一列,第二列(第一列的列宽是2,第二列的列宽是0)
    row.row[0].colSpan = 2
    row.row[1].colSpan = 0
    // 隐藏第二列的表头
    if (row.columnIndex === 1) {
      return { display: 'none' }
    }
    // 设置第一列表头的样式
    if(row.columnIndex === 0){
      return { backgroundColor: '#1f5fa0',color:"#fff" }
    }
    // 设置其他列表头的样式
    if(row.columnIndex !== 0){
      return { backgroundColor: '#143f6a',color:"#fff" }
    }
  }else{
    // 其他级别表头样式
    return { backgroundColor: '#143f6a',color:"#fff" }
  }
}

用来记录

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
对于 el-table 组件,可以通过设置表头的 column 对象的 span 属性来合并单元格。span 属性可以设置为一个对象,包含两个属性:row 和 col,分别表示纵向和横向的合并单元格数量。 以下是一个示例代码,演示了如何在 el-table 中实现多级表头的单元格合并: ```html <template> <el-table :data="tableData" style="width: 100%"> <el-table-column label="一级表头" prop="name" :span="{ row: 2, col: 1 }"></el-table-column> <el-table-column label="二级表头" :span="{ row: 1, col: 2 }"></el-table-column> <el-table-column label="三级表头" prop="age" :span="{ row: 1, col: 2 }"></el-table-column> <el-table-column label="四级表头" prop="address" :span="{ row: 1, col: 2 }"></el-table-column> <el-table-column label="姓名" prop="name"></el-table-column> <el-table-column label="年龄" prop="age"></el-table-column> <el-table-column label="地址" prop="address"></el-table-column> </el-table> </template> <script> export default { data() { return { tableData: [ { name: 'John', age: 20, address: 'New York' }, { name: 'Jane', age: 25, address: 'London' } ] }; } }; </script> ``` 在这个示例中,我们使用了 el-table 组件,并设置了四个表头,分别是"一级表头"、"二级表头"、"三级表头"和"四级表头"。通过设置每个表头的 span 属性,指定了单元格的合并方式。 注意,设置 span 属性的时候,row 和 col 的值分别代表纵向和横向的合并单元格数量。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值