• element 动态合并表格


    前言

      element 官方的例子太简单了,不满足实际的需求

      数据肯定是动态的,合并的行数,列数都是动态的,该如何知道每一行的合并数呢

    需求

      动态合并表格,数据来源于数据库

    正文

      一开始,我的数据源是单独的数组,表格数据合并了几个数据,

      我根据各个数组的长度,来决定每一行的合并数

      结果:有些数据是正常的,但有些又合并出错了。计算的方式不对

      

       

      尝试二 

      

    dataPretreatment() 用这个方法 计算出每一行的行数
    dataPretreatment(){   //表格数据列合并预处理,生成一个与行数相同的数组记录每一行设置的合并数
            // 如果是第一条记录(索引为0),向数组中加入1,并设置索引位置;
            // 如果不是第一条记录,则判断它与前一条记录是否相等,如果相等,
            // 则向mergingRows中添入元素0,并将前一位元素+1,表示合并行数+1,
            // 以此往复,得到所有行的合并数,0即表示该行不显示。
              for(let i = 0; i < this.tableData.length; i ++){ // tabledata 表格数据源
                  if(i === 0){
                      this.mergingRows.push(1)
                      this.mergingPos = 0
                  }else {
                    if(this.tableData[i].name === this.tableData[i - 1].name) { //哪些数据是要合并的 合并的条件是什么
                      
                        this.mergingRows[this.mergingPos] +=1
                        this.mergingRows.push(0)
                    }else {
                        this.mergingRows.push(1)
                        this.mergingPos = i
                    }
                  }
              }
          },

     

       用这个方法 mergeColumn()绑定到官方提供的span-method 方法上面

    mergeColumn({row, column, rowIndex, columnIndex}){
             if (columnIndex === 0) { //第一列
                 const _row = this.mergingRows[rowIndex];
                 const _col = _row>0 ? 1 : 0;
                 return {
                    rowspan: _row,
                    colspan: _col
                 }
             }
            // if(columnIndex === 1){  //第二列 每一行的条件可以不一样 这样就是动态多样合并表格啦
            //     const _row = this.mergingRows[rowIndex];
            //     const _col = _row>0 ? 1 : 0;
            //      return {
            //          rowspan: _row,
            //          colspan: _col
            //      }
            //  }     
         },

      展示结果

      

    注意注意

          1. 第一列 计算出要合并的行数

      

      2.发现鼠标在表格移动  mergeColumn()这个方法一直在调用

    Fannie式总结

      一定要高清每一行的合并行数,按列来区分的

      切记切记哦!不然表格合并出来的 跟你想象的不一样

      

  • 相关阅读:
    升级linux bash
    vim关键字自动补全
    linux bash shell之变量替换::=句法、=句法、:句法、句法、=?句法、?句法、:+句法、+句法
    使用Bash编写Linux Shell脚本7.复合命令
    使用Bash编写Linux Shell脚本5.变量
    使用Bash编写Linux Shell脚本8.调试和版本控制
    Perl之单引号\双引号的字符串直接量
    linux bash shell 中的单引号和双引号
    使用Bash编写Linux Shell脚本6.表达式
    Vim的行号、语法显示等设置,即.vimrc文件的配置
  • 原文地址:https://www.cnblogs.com/ifannie/p/11882428.html
Copyright © 2020-2023  润新知