• 使用Element的table合并单元格(按相同项) 多列


    效果图:

    代码:

    <div class="table">
                            <el-table ref="table_8" :data="saCountAvg" border style=" 99%;" :height=winHeight :header-cell-style="tableHeaderColor" :cell-style="cellStyle" :span-method="objectSpanMethod8">
                                <el-table-column prop="name" label="SA" align="center"></el-table-column>
                                <el-table-column prop="getTime" label="产值达均值线以上次数" align="center"></el-table-column>
                                <el-table-column prop="timeIndex" label="月份" align="center"></el-table-column>
                                <el-table-column prop="monthlyIntervalValue" label="月度产值" align="center"></el-table-column>
                                <el-table-column prop="avgValue" label="月度均值" align="center"></el-table-column>
                            </el-table>
                        </div>
    methods: {
        tableHeaderColor({ row, column, rowIndex, columnIndex }) {
            if (rowIndex === 0) {
              return "color: #4f81bd;font-weight: bold ;";
            }
         },
    
    objectSpanMethod8({ row, column, rowIndex, columnIndex }) {
            if (columnIndex === 0) {
              const _row = (this.flitterData(this.saCountAvg ).one)[rowIndex];
              const _col = _row > 0 ? 1 : 0;
              return {
                rowspan: _row,
                colspan: _col
              };
            }
            if (columnIndex === 1) {
              const _row = (this.flitterData(this.saCountAvg ).two)[rowIndex];
              const _col = _row > 0 ? 1 : 0;
              return {
                rowspan: _row,
                colspan: _col
              };
            }
          },
    
    
          flitterData(arr) {
            let spanOneArr = [],
              spanTwoArr = [],
              concatOne = 0,
              concatTwo = 0;
            arr.forEach((item, index) => {
              if (index === 0) {
                spanOneArr.push(1);
                spanTwoArr.push(1);
              } else {
                if (item.userId === arr[index - 1].userId) { //第一列需合并相同内容的判断条件
                  spanOneArr[concatOne] += 1;
                  spanOneArr.push(0);
                } else {
                  spanOneArr.push(1);
                  concatOne = index;
                }
                if (item.getTime === arr[index - 1].getTime && item.userId === arr[index - 1].userId) {//第二列需合并相同内容的判断条件
                  spanTwoArr[concatTwo] += 1;
                  spanTwoArr.push(0);
                } else {
                  spanTwoArr.push(1);
                  concatTwo = index;
                }
              }
            })
            return {
              one: spanOneArr,
              two: spanTwoArr,
            }
          },
    
    
    
    }

    大功告成了

  • 相关阅读:
    红蓝对抗之Windows内网渗透
    [框架漏洞]Thinkphp系列漏洞【截至2020-07-20】
    xss
    OWASP TOP 10 详解
    关于URL编码/javascript/js url 编码/url的三个js编码函数escape(),encodeURI(),encodeURIComponent()
    用C#实现的几种常用数据校验方法整理(CRC校验;LRC校验;BCC校验;累加和校验)
    批处理(.bat)简单应用实例
    线状地物图斑化全流程作业(使用ArcMap软件)
    VS Code Remote配置
    二分查找
  • 原文地址:https://www.cnblogs.com/weiweiyeyu/p/15525198.html
Copyright © 2020-2023  润新知