资讯专栏INFORMATION COLUMN

element-ui table表格动态列合并

isLishude / 2378人阅读

摘要:前言的时候没有表格合并的方法,这当时做表格合并的功能时候,非常头疼。开始官方已经支持表格合并的方法,那怎么做到表格动态合并呢,还是直接看代码吧。该函数可以返回一个包含两个元素的数组,第一个元素代表,第二个元素代表。

前言

element-ui 1.0的时候没有表格合并的方法,这当时做表格合并的功能时候,非常头疼。2.0开始官方已经支持表格合并的方法,那怎么做到表格动态合并呢,还是直接看代码吧。

官方例子

通过给table传入span-method方法可以实现合并行或列,方法的参数是一个对象,里面包含当前行row、当前列column、当前行号rowIndex、当前列号columnIndex四个属性。该函数可以返回一个包含两个元素的数组,第一个元素代表rowspan,第二个元素代表colspan。 也可以返回一个键名为rowspan和colspan的对象。



https://jsfiddle.net/ve4sy51x/1/

合并方法

https://jsfiddle.net/ve4sy51x...
通过一层一层往下找,

 objectSpanMethod({ row, column, rowIndex, columnIndex }) {
         if(cacheData.length<=0){
           return false
         }
          let colNum = cacheData[rowIndex][columnIndex];
          if (colNum < 2) {
            return {
              rowspan: colNum,
              colspan: colNum
            }
          } else {
          return {
            rowspan: colNum,
            colspan: 1
          }
        }
      },
      combine(){
        this.tableData.forEach((res,i)=> {
          cacheData[i] = [];
          colData.forEach((item, j) => {
            if (i === 0) {
              cacheData[0][j] = 1;
              cache = JSON.parse(JSON.stringify(res));
              cacheIndex[j] = 0;
            } else {
              if(res[item.prop] === cache[item.prop] && item.prop !=="index"){
                cacheData[cacheIndex[j]][j]++;
                cacheData[i][j] = 0
              }else{
                cache[item.prop] = res[item.prop];
                cacheIndex[j] = i;
                cacheData[i][j] = 1;
              }
            }
          })
        })    
      }

预处理生成一个二维数组,然后在放在objectSpanMethod方法里面。

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96494.html

相关文章

  • vue element-ui table组件动态生成表头和数据并修改单元格格式 父子组件通信

    摘要:父组件定义表头和表内容表格数据表头数据引入并注册子组件注册子组件获取表头和表内容数据。 父组件 定义表头和表内容 data(){ return{ // 表格数据 tableColumns: [], // 表头数据 titleData:[], } } 引入并注册子组件 import TableComponents from ../../compon...

    supernavy 评论0 收藏0
  • 步步向前之Element-UI

    摘要:无效方案根据交易所小时成交量占比和实时价格加权计算得到渲染结果是一个包含了文字,同时有名为的,并无小图标,后边中括号结构里只能有一个有待考证。 Table 固定表头 只要在el-table元素中定义了height属性,即可实现固定表头的表格,而不需要额外的代码。例如: ... 这里文档只给了一种固定高度250px的解决方案,实际应用大多数是需要自适应占满父元素,超出滚动固定表头的...

    Imfan 评论0 收藏0
  • 步步向前之Element-UI

    摘要:无效方案根据交易所小时成交量占比和实时价格加权计算得到渲染结果是一个包含了文字,同时有名为的,并无小图标,后边中括号结构里只能有一个有待考证。 Table 固定表头 只要在el-table元素中定义了height属性,即可实现固定表头的表格,而不需要额外的代码。例如: ... 这里文档只给了一种固定高度250px的解决方案,实际应用大多数是需要自适应占满父元素,超出滚动固定表头的...

    ZoomQuiet 评论0 收藏0
  • vue封装element-uitable组件,灵活配置表头实现表格内编辑,按钮,链接等功能。

    摘要:一封装的组件定义表格高度全屏增加前台分页功能。表格内编辑后,自动选中该行。单元格内数据样式单元格内按钮,可多个。触发组件绑定函数,参数按钮名称,按钮样式,按钮事件标识。单元格是否可点击的判断函数,可进行复杂的函数判断。 vue-bxz-table 一、封装element-ui的table组件: 定义表格高度全屏 增加前台分页功能。 自定义表头,循环输出整体表结构。 表格内编辑(输入框...

    henry14 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<