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

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
      };
    },
    
发布了26 篇原创文章 · 获赞 55 · 访问量 5087

猜你喜欢

转载自blog.csdn.net/jinglianglove/article/details/103702505