【合并单元格】纵向合并单元格之前对数组处理【针对饿了么element的table的span-method合并行或列的计算方法】

简介: 【合并单元格】纵向合并单元格之前对数组处理【针对饿了么element的table的span-method合并行或列的计算方法】


<template>
  <el-table :span-method="spanMethod">
    <el-table-column label="组号" show-overflow-tooltip>
      <template slot-scope="scope">
        <span>{{ scope.row.group_number }}</span>
      </template>
    </el-table-column>
    <el-table-column label="公司名称" show-overflow-tooltip>
      <template slot-scope="scope">
        <span>{{ scope.row.corporate_name }}</span>
      </template>
    </el-table-column>
  </el-table>
</template>
<script>
export default {
  data() {
    return {
      items: [需要合并单元格的元数据数组],
      //合并单元格用的字段(字段名和列名)
      spanFields: [
        { fieldName: "group_number", label: "组号" },
        { fieldName: "corporate_name", label: "公司名称" }
      ]
    };
  },
  created() {
    this.getSpanItems();
  },
  methods: {
    //【核心代码1】纵向合并单元格之前对数组处理【针对饿了么element的table的span-method合并行或列的计算方法】
    getSpanItems() {
      for (var j = 0, lenj = this.spanFields.length; j < lenj; j++) {
        var fieldName = this.spanFields[j].fieldName;
        var fieldLabel = this.spanFields[j].label;
        var arr = this.items,
          startItem = arr[0],
          rowSpan = 0;
        for (var i = 0, len = arr.length; i < len; i++) {
          var item = arr[i];
          item.rowSpan || (item.rowSpan = {});
          startItem[fieldName] !== item[fieldName] &&
            ((rowSpan = 0), (startItem = item));
          startItem.rowSpan[fieldLabel] = ++rowSpan;
        }
      }
    },
    //【核心代码2】合并单元格(这里只介绍纵向合并方法)
    spanMethod({ row, column, rowIndex, columnIndex }) {
      for (var i = 0, len = this.spanFields.length; i < len; i++) {
        var fieldLabel = this.spanFields[i].label;
        if (fieldLabel === column.label) {
          return [row.rowSpan[fieldLabel] || 0, 1];//这里返回的数组是[rowspan,colspan],例如:[1,3]代表行不合并,列从第一列合并到第三列。
        }
      }
    }
  }
};
</script>


相关文章
|
JavaScript 前端开发 Java
72jqGrid 分组表头 - 有合并列的样式
72jqGrid 分组表头 - 有合并列的样式
58 0
|
6月前
用dragstart、drag、dragend、dragover、drop、dragleave实现针对表格列的顺序进行拖拽排序(附带实现选择某几列数据显示或隐藏)
用dragstart、drag、dragend、dragover、drop、dragleave实现针对表格列的顺序进行拖拽排序(附带实现选择某几列数据显示或隐藏)
Element的el-table行列错位对不齐问题处理
本文目录 1. 问题表现 2. 问题发现 3. 问题处理 4. 另一种处理方案
3832 0
Element的el-table行列错位对不齐问题处理
|
2月前
antd table合并行或者列(动态添加合并行、列)
在Ant Design的Table组件中实现行或列的合并,通过动态计算数据源中的`rowSpan`或`colSpan`属性来控制,支持对特定字段进行行或列合并,包括多选框列的合并处理。
232 3
antd table合并行或者列(动态添加合并行、列)
|
6月前
|
JavaScript 前端开发 索引
Element_Table的单元格合并
Element_Table的单元格合并
|
6月前
|
小程序
06 - table表格标签+ 行合并+列合并
06 - table表格标签+ 行合并+列合并
128 0
|
6月前
|
前端开发 小程序
使用element UI-table表格列宽自适应 【已解决】
使用element UI-table表格列宽自适应 【已解决】
371 0
|
前端开发
bootstrap table表格去掉排序箭头
bootstrap table表格去掉排序箭头
201 2
|
JavaScript 前端开发 Java
71jqGrid 分组表头 - 没有合并列的样式
71jqGrid 分组表头 - 没有合并列的样式
31 0