element 动态合并表格的步骤


Posted in Javascript onDecember 31, 2020

前言

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 方法上面

element 动态合并表格的步骤

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
    //   }
    // }   
   },

展示结果

element 动态合并表格的步骤

注意注意

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

element 动态合并表格的步骤

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

Fannie式总结

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

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

以上就是element 动态合并表格的步骤的详细内容,更多关于element 动态合并表格的资料请关注三水点靠木其它相关文章!

Javascript 相关文章推荐
JS实现可拖曳、可关闭的弹窗效果
Sep 26 Javascript
JavaScript中创建对象的模式汇总
Apr 19 Javascript
bootstrap datepicker限定可选时间范围实现方法
Sep 28 Javascript
Yarn的安装与使用详细介绍
Oct 25 Javascript
JS实现动态修改table及合并单元格的方法示例
Feb 20 Javascript
原JS实现banner图的常用功能
Jun 12 Javascript
让div运动起来 js实现缓动效果
Jul 06 Javascript
Easyui 关闭jquery-easui tab标签页前触发事件的解决方法
Apr 28 jQuery
vue设置一开始进入的页面教程
Oct 28 Javascript
vue弹出框组件封装实例代码
Oct 31 Javascript
vue实现自定义多选按钮
Jul 16 Javascript
写一个Vue loading 插件
Nov 09 Javascript
vue导入.md文件的步骤(markdown转HTML)
Dec 31 #Vue.js
Selenium执行JavaScript脚本的方法示例
Dec 31 #Javascript
javascript实现随机抽奖功能
Dec 30 #Javascript
JS+JQuery实现无缝连接轮播图
Dec 30 #jQuery
微信小程序弹窗禁止页面滚动的实现代码
Dec 30 #Javascript
vue-cli4.0多环境配置变量与模式详解
Dec 30 #Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 #Vue.js
You might like
PHP面向对象——访问修饰符介绍
2012/11/08 PHP
php实现文件下载(支持中文文名)
2013/12/04 PHP
ThinkPHP令牌验证实例
2014/06/18 PHP
php+ajax无刷新分页实例详解
2015/12/07 PHP
PHP基于phpqrcode类生成二维码的方法详解
2018/03/14 PHP
JavaScript 创建对象和构造类实现代码
2009/07/30 Javascript
基于jquery的direction图片渐变动画效果
2010/05/24 Javascript
javascript中字符串替换函数replace()方法与c# 、vb 替换有一点不同
2010/06/25 Javascript
jQuery Study Notes学习笔记 (二)
2010/08/04 Javascript
JavaScript获取FCK编辑器信息的具体方法
2013/07/12 Javascript
JavaScript实现的日期控件具体代码
2013/11/18 Javascript
js动态调用css属性的小规律及实例说明
2013/12/28 Javascript
表单提交前触发函数返回true表单才会提交
2014/03/11 Javascript
浅谈javascript中执行环境(作用域)与作用域链
2016/12/08 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
浅谈node中的exports与module.exports的关系
2017/08/01 Javascript
jQuery实现使用sort方法对json数据排序的方法
2018/04/17 jQuery
JavaScript面向对象程序设计创建对象的方法分析
2018/08/13 Javascript
react 父子组件之间通讯props
2018/09/08 Javascript
React如何实现浏览器打印部分内容详析
2019/05/19 Javascript
Vue.js组件props数据验证实现详解
2019/10/19 Javascript
Node.js API详解之 querystring用法实例分析
2020/04/29 Javascript
vue动态设置页面title的方法实例
2020/08/23 Javascript
js实现简单抽奖功能
2020/11/24 Javascript
[02:03]DOTA2亚洲邀请赛 HGT战队出场宣传片
2015/02/07 DOTA
[43:18]NB vs Infamous 2019国际邀请赛淘汰赛 败者组 BO3 第一场 8.22
2019/09/05 DOTA
python实现每次处理一个字符的三种方法
2014/10/09 Python
Flask入门教程实例:搭建一个静态博客
2015/03/27 Python
在Docker上开始部署Python应用的教程
2015/04/17 Python
python实现搜索本地文件信息写入文件的方法
2016/02/22 Python
python+mongodb数据抓取详细介绍
2017/10/25 Python
Python之指数与E记法的区别详解
2019/11/21 Python
详解torch.Tensor的4种乘法
2020/09/03 Python
运动会通讯稿150字
2014/02/15 职场文书
预备党员自我批评思想汇报
2014/10/10 职场文书
Python Django项目和应用的创建详解
2021/11/27 Python