合并单元格行或列

table中加入

:span-method="objectSpanMethod"
 
return data加入
OrderIndexArr: []
 
给表格赋值后调用方法   
this.tableData = res.data;
this.getOrderNumber();
 
//根据nurseId归类的,具体实际修改
getOrderNumber() {
      let OrderObj = {};
      this.tableData.forEach((element, index) => {
        element.rowIndex = index;
        if (OrderObj[element.nurseId]) {
          OrderObj[element.nurseId].push(index);
        } else {
          OrderObj[element.nurseId] = [];
          OrderObj[element.nurseId].push(index);
        }
      });
      // 将数组长度大于1的值 存储到this.OrderIndexArr(也就是需要合并的项)
      for (let k in OrderObj) {
        if (OrderObj[k].length > 1) {
          this.OrderIndexArr.push(OrderObj[k]);
        }
      }
    }
 
// 合并单元格
    objectSpanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0 || columnIndex === 1 || columnIndex === 2) {
        for (let i = 0; i < this.OrderIndexArr.length; i++) {
          let element = this.OrderIndexArr[i];
          for (let j = 0; j < element.length; j++) {
            let item = element[j];
            if (rowIndex == item) {
              if (j == 0) {
                return {
                  rowspan: element.length,
                  colspan: 1
                };
              } else if (j != 0) {
                return {
                  rowspan: 0,
                  colspan: 0
                };
              }
            }
          }
        }
      }
    }
 
 
posted @ 2020-01-17 10:20  limexee  阅读(187)  评论(0编辑  收藏  举报