<el-table :data="tableDataFormat" border :header-cell-style="{background:'#FAFAFA'}" :span-method="arraySpanMethod" :row-class-name="rowClassName" @cell-mouse-enter="handleMouseEnter" @cell-mouse-leave="handleMouseLeave">
 
 
data(){
    return {
      spanArr:[],
      tableData:[], //元数据
      tableDataFormat:[],//format后的数据
      cellIndex: -1,
    }
  },
 
 
// 鼠标进入单元格
    handleMouseEnter(row, column, cell, event) {
      this.tableDataFormat.forEach((item) => {
        // console.log(row.order,item.order)
        if (row.order === item.order) {
          this.cellIndex = row.order;
        }
      })
    },
    // 给相应的rowIndex添加类名
    rowClassName({ row, rowIndex }) {
        let r = -1;
        this.tableDataFormat.forEach((item) => {
          if (this.cellIndex === row.order) {
            r = rowIndex;
          }
        });
        if (rowIndex === r) {
          return 'hover-row';
        }
      },
      // 鼠标离开
    handleMouseLeave(row, column, cell, event) {
      this.cellIndex = -1;
    },
    arraySpanMethod({ row, column, rowIndex, columnIndex }) {
      if (columnIndex === 0 || columnIndex === 1 || columnIndex === 2 || columnIndex === 3 || columnIndex === 4  || columnIndex === 9) {
          const _row = this.spanArr[rowIndex];
          const _col = _row > 0 ? 1 : 0;
          // console.log(`rowspan:${_row} colspan:${_col}`)
          return { // [0,0] 表示这一行不显示, [2,1]表示行的合并数
                rowspan: _row,
                colspan: _col
          }
        }
      },
    getSpanArr(data) { 
        for (var i = 0; i < data.length; i++) {
          if (i === 0) {
            this.spanArr.push(1);
            this.pos = 0
          } else {
            // 判断当前元素与上一个元素是否相同
          if (data[i].strategy_id === data[i - 1].strategy_id) {
              this.spanArr[this.pos] += 1;
              this.spanArr.push(0);
            } else {
              this.spanArr.push(1);
              this.pos = i;
            }
          }
          // console.log(this.spanArr)
      }
    },

elementUI合并单元格的更多相关文章

  1. element-ui 合并单元格的方法

    arraySpanMethod({ row, column, rowIndex, columnIndex }) { // 只合并区域位置          //columnIndex 横的第一列    ...

  2. element-ui + vue ,ant-design + vue , Angular + ZORRO 实现表格自动横纵向合并单元格,并自动根据单元格数据进行添加样式

    element-ui + vue ,ant-design + vue , Angular + ZORRO 实现表格自动横纵向合并单元格,并自动根据单元格数据进行添加样式 本文重点写 element-u ...

  3. elementUI el-table合并单元格

    合并单元格,如果id列值一致,则合并. <el-table :data="tableData6" :span-method="objectSpanMethod&qu ...

  4. vue-element-table-js去重合并单元格解析【实战需求】

    有数据如下: { '2019-01-23': [ { 'channel': 'zp', 'listScanListNum': 24, 'listParseOkNum': 0, 'listPersonM ...

  5. C# 获取Excel中的合并单元格

    C# 获取Excel中的合并单元格 我们在制作表格时,有时经常需要合并及取消合并一些单元格.在取消合并单元格时需要逐个查找及取消,比较麻烦.这里分享一个简单的方法来识别Excel中的合并单元格,识别这 ...

  6. jquery操作表格 合并单元格

    jquery操作table,合并单元格,合并相同的行 合并的方法 $("#tableid").mergeCell({ cols:[X,X] ///参数为要合并的列}) /** * ...

  7. NPOI操作EXCEL(五)——含合并单元格复杂表头的EXCEL解析

    我们在第三篇文章中谈到了那些非常反人类的excel模板,博主为了养家糊口,也玩命做出了相应的解析方法... 我们先来看看第一类复杂表头: ...... 博主称这类excel模板为略复杂表头模板(蓝色部 ...

  8. poi获取合并单元格内的第一行第一列的值

    当读取如图所示的excel时,显示为第1行 第1列 的内容是:合并单元格 其它在合并单元格区域内的单元格不显示 示例代码如下: import java.io.FileInputStream; impo ...

  9. Repeater多列分别合并单元格

    GridView.Repeater合并单元格可以参考http://www.cnblogs.com/zhmore/archive/2009/04/22/1440979.html,但是原文例子是合并一列的 ...

  10. Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行

    Aspose.Cells 首次使用,用到模版填充数据,合并单元格,换行 模版格式,图格式是最简单的格式,但实际效果不是这种,实际效果图如图2 图2 ,注意看红色部分,一对一是正常的,但是有一对多的订单 ...

随机推荐

  1. HashMap存储自定义类型键值-Linked Hash集合

    HashMap存储自定义类型键值 练习∶每位学生(姓名,年龄)都有自己的家庭住址.那么,既然有对应关系,则将学生对象和家庭住址存储到map集合中.学生作为键,家庭住址作为值.注意,学生姓名相同并且年龄 ...

  2. Array list练习

    Array list练习 数据添加到集合 生成6个1~33之间的随机整数,添加到集合,并遍历 public class Test01ArrayList { public static void mai ...

  3. HashMap简要介绍

    https://www.cnblogs.com/vitasyuan/p/9220773.html 1.HashMap-1.8介绍 HashMap为Map接口的一个实现类,实现了所有Map的操作.Has ...

  4. ROS多机通讯

    1.主机: sudo /etc/hosts 写入从机的地址和用户名: 192.168.31.14    raspi2 2.从机 sudo /etc/hosts 写入主机的地址和用户名 192.168. ...

  5. Spring框架-AOP核心

    Spring AOP AOP (Aspect Oriented Programming) 面向切面编程 OOP(Object Oriented Programming)面向对象编程,用对象的思想来完善 ...

  6. sqlmap 简单使用

    sqlmap 简单使用 环境:phpstudy:MySQL5.4.7 介绍 sqlmap是一个开源的渗透测试工具,它可以自动化检测和利用SQL注入缺陷以及接管数据库服务器的过程.它有一个强大的检测引擎 ...

  7. LG P2839 [国家集训队]middle

    \(\text{Solution}\) 不考虑起点区间和终点区间的限制,求区间中位数 可以二分中位数,大于等于中位数的位置赋为 \(1\),小于的位置赋 \(-1\) 当区间和大于等于 \(0\) 时 ...

  8. LG P4449 & JZOJ 于神之怒

    \(\text{Problem}\) JZOJ上,求 \[\sum_{i=1}^n \sum_{j=1}^m \gcd(i,j)^k \] 对 \(10^9+7\) 取模 \(n,m,k \le 5 ...

  9. Vulhub 漏洞学习之:Redis

    Vulhub 漏洞学习之:Redis 1 Redis简介 Redis 是完全开源的,遵守 BSD 协议,是一个高性能的 key-value 数据库.Redis 与其他 key - value 缓存产品 ...

  10. Vulhub 漏洞学习之:Dubbo

    Vulhub 漏洞学习之:Dubbo 目录 Vulhub 漏洞学习之:Dubbo 1 Aapche Dubbo Java反序列化漏洞(CVE-2019-17564) 1.1 环境安装 1.2 漏洞利用 ...