vue 中 elment-ui table合并上下两行相同数据单元格

html :

 <el-table
              :header-cell-style="{background:'#6d7f93',color:'white'}"
              :data="ptableDate"
              align="center"
              border
              v-loading="loading"
              :height="tableHeight"
              :span-method="objectOneMethod"
            >
              <el-table-column align="center" show-overflow-tooltip prop="projName" ></el-table-column>
              <el-table-column align="center" show-overflow-tooltip prop="dirtySection" ></el-table-column>
              <el-table-column align="center" show-overflow-tooltip prop="towerNumber" ></el-table-column>
              <el-table-column align="center" show-overflow-tooltip prop="inclination" ></el-table-column>
            </el-table>

 

method:

objectOneMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0) {
        const _row = this.setTable(this.ptableDate).one[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col
        };
      }
      if (columnIndex === 1 ) {
        const _row = this.setTable(this.ptableDate).two[rowIndex];
        const _col = _row > 0 ? 1 : 0;
        return {
          rowspan: _row,
          colspan: _col
        };
      }
   },
  setTable(tableData) {
      let spanOneArr = [],
        spanTwoArr = [],
        concatOne = 0,
        concatTwo = 0;
      tableData.forEach((item, index) => {
        if (index === 0) {
          spanOneArr.push(1);
          spanTwoArr.push(1);
        } else {
          if (item.projName === tableData[index - 1].projName) {
            //第一列需合并相同内容的判断条件
            spanOneArr[concatOne] += 1;
            spanOneArr.push(0);
          } else {
            spanOneArr.push(1);
            concatOne = index;
          }
          if (item.dirtySection === tableData[index - 1].dirtySection) {
            //第二列和需合并相同内容的判断条件
            spanTwoArr[concatTwo] += 1;
            spanTwoArr.push(0);
          } else {
            spanTwoArr.push(1);
            concatTwo = index;
          }
        }
      });
      return {
        one: spanOneArr,
        two: spanTwoArr
      };
    },

 

 

记录一下,当做笔记。方便自己用。

致敬原作者。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值