el-table合并单元格

该篇博客详细介绍了如何在Vue.js应用中实现表格数据的动态合并。通过监听数据变化,利用`mounted`和`methods`中的`getSpanArr`方法处理数据,确保在分页时也能正确合并单元格。主要涉及到`objectSpanMethod`方法用于合并单元格的逻辑,以及`getList`方法获取并更新表格数据。
摘要由CSDN通过智能技术生成
<el-table
v-if="tableData.length>0"
id="myTable"
:data="tableData"
style="width: 100%;"
:span-method="objectSpanMethod"

>

mounted() {
    this.getList()
    this.getSpanArr(this.tableData)
  },
method: {
// 获取列表
getList() {
      let query = {
        ...this.formKey,
        page:this.paginationConfig.currentPage,
        rows:this.paginationConfig.currentSize,
      }
      这里是列表接口(query).then(res => {
        this.tableData = res.list
        this.paginationConfig.total = res.total
        this.getSpanArr(this.tableData)
      })
    },
// 合并单元格
objectSpanMethod({ rowIndex, columnIndex }){
    if(columnIndex === 1){ // 要合并的是第二列 
        if(this.spanArr[rowIndex]){
            return {
                rowspan:this.spanArr[rowIndex],
                colspan:1
            }
    }else{
            return {
                rowspan: 0,
                colspan: 0
            }
        }
    }
},
merageInit() { // 对数据进行初始化  不然分页的时候会出错
      this.spanArr = [];
      this.position = 0;
    },
getSpanArr(data) {
      this.merageInit()
      data.forEach((item, index) => {
        if (index === 0) {
          this.spanArr.push(1)
          this.position = 0
        } else if (data[index].enterpriseLevel === data[index - 1].enterpriseLevel) { // 合并当前列的属性
          this.spanArr[this.position] += 1
          this.spanArr.push(0)
        } else {
          this.spanArr.push(1)
          this.position = index
        }
      })
    },
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值