element表格实现单元格合并功能

element表格实现单元格合并功能

参考链接:https://www.cnblogs.com/fmixue/p/9469296.html

直接看参考链接的案例吧,那位博主写的比较清楚
实现效果:
在这里插入图片描述

数据格式:
在这里插入图片描述

html内容:建议直接看官网格式
<el-table
                  :data="faultList"
                  :row-class-name="tableRowClassName"
                  :span-method="objectSpanMethod"
                  :row-style="objectRowStyle"
                  :header-row-style="headerStyle"
                  height="95%"
                  max-height="95%"
                  border
                  style="width: 100%; margin-top: 20px;border:1px solid red;">
                  <el-table-column
                    prop="report_date"
                    label="时间"
                    width="140">
                  </el-table-column>
    </<el-table>
data里定义变量:
 data(){
    return {
        faultList:[],//表格数据 
        spanArr1: [],//表格中日期合并处理
        spanArr2: [],//表格中部件合并处理
    }
  },
  methods:{

let data= res.data.data//后台返回的数据体,看上面的图
          //参考代码:https://www.cnblogs.com/fmixue/p/9469296.html
          if(data.faultList.length > 0){
              this.faultList = data.faultList
          
              let contactDot1 = 0,//表格中日期合并处理
                  contactDot2 = 0//表格中部件合并处理

              this.faultList.forEach( (item,index) => {
                
                if(index == 0){
                    this.spanArr1.push(1)
                    this.spanArr2.push(1)
                }else{
                  //日期相同
                    if(item.report_date == this.faultList[index-1].report_date){
                        this.spanArr1[contactDot1] += 1
                        this.spanArr1.push(0)
                    }else{
                        contactDot1 = index
                        this.spanArr1.push(1)
                    }
                    //部件名相同
                    if(item.componentName == this.faultList[index-1].componentName){
                        this.spanArr2[contactDot2] += 1
                        this.spanArr2.push(0)
                    }else{
                        contactDot2 = index
                        this.spanArr2.push(1)
                    }
                }
            })
                     
         }else{

         }
           },
          objectSpanMethod({ row, column, rowIndex, columnIndex }) {//对表格合并方法
      
        if (columnIndex == 0) {//第一列的数据合并
           if(this.spanArr1[rowIndex]){
                return {
                    rowspan:this.spanArr1[rowIndex],
                    colspan:1
                }
            }else{
                return {
                    rowspan: 0,
                    colspan: 0
                }
            }
        }
        if(columnIndex == 1){//第二列的数据处理
            if(this.spanArr2[rowIndex]){
                return {
                    rowspan:this.spanArr2[rowIndex],
                    colspan:1
                }
            }else{
                return {
                    rowspan: 0,
                    colspan: 0
                }
            }
        }
      },
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值