element实现合并单元格通用方法


Posted in Javascript onNovember 13, 2019

主要思路:

  1. 对数据进行处理,写了一个getSpanData通用方法。
  2. 用api中提供的span-method方法。

span-method方法用法:

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

通用实例

demo.vue

<el-table
   v-loading="loading"
   ref="singleTable"
   :data="tableData"
   :span-method="handleObjectSpanMethod"
   highlight-current-row
   border
   style="width: 100%;margin-top:10px;"
   max-height="730"
  >

JavaScript

// 查询列表
 queryTableList() {
  getNeeds().then(res => {
   if (res.code === 0) {
   // 表格数据
    this.tableData = res.data
    // 对表格数据进行处理,找出需要合并的单元格
    this.getSpanData(this.tableData)
   } 
  })
 },
// 计算需要合并的单元格
getSpanData(data) {
 // 存放计算好的合并单元格的规则
 this.spanData = []
 for (var i = 0; i < data.length; i++) {
  if (i === 0) {
   this.spanData.push(1)
   this.pos = 0
  } else {
   // 判断当前元素与上一个元素是否相同
   if (data[i].realOpenDate === data[i - 1].realOpenDate) {
    this.spanData[this.pos] += 1
    this.spanData.push(0)
   } else {
    this.spanData.push(1)
    this.pos = i
   }
  }
 }
}
// 合并单元格
handleObjectSpanMethod({ row, column, rowIndex, columnIndex }) {
 // 需要合并的列
 // [0, 1, 2].includes(columnIndex ), 表示合并前三列
 if (columnIndex === 1) {
  const _row = this.spanData[rowIndex]
  const _col = _row > 0 ? 1 : 0
  return {
   rowspan: _row,
   colspan: _col
  }
 }
}

getSpanData中spanData处理后的结构:

element实现合并单元格通用方法

数组中12的值表示需要合并的地方,很好理解,就是找到每行中columnIndex对应要合并的位置。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
JavaScript获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
IE JS编程需注意的内存释放问题
Jun 23 Javascript
Javascript中Eval函数的使用
Mar 23 Javascript
JS将秒换成时分秒实现代码
Sep 03 Javascript
jQuery编程中的一些核心方法简介
Aug 14 Javascript
jQuery mobile 移动web(6)
Dec 20 Javascript
Boostrap模态窗口的学习小结
Mar 28 Javascript
jQuery页面元素动态添加后绑定事件丢失方法,非 live
Jun 16 Javascript
JS实现汉字与Unicode码相互转换的方法详解
Apr 28 Javascript
详解使用jQuery.i18n.properties实现js国际化
May 04 jQuery
js中console在一行内打印字符串和对象的方法
Sep 10 Javascript
vue项目中微信登录的实现操作
Sep 08 Javascript
vue之debounce属性被移除及处理详解
Nov 13 #Javascript
Vue的click事件防抖和节流处理详解
Nov 13 #Javascript
vue表单数据交互提交演示教程
Nov 13 #Javascript
解决vuex数据异步造成初始化的时候没值报错问题
Nov 13 #Javascript
前端vue-cli项目中使用img图片和background背景图的几种方法
Nov 13 #Javascript
基于vue-cli3和element实现登陆页面
Nov 13 #Javascript
vue data引入本地图片的两种方式小结
Nov 13 #Javascript
You might like
PHP的FTP学习(二)[转自奥索]
2006/10/09 PHP
phpMyAdmin2.11.6安装配置方法
2008/08/24 PHP
php入门学习知识点六 PHP文件的读写操作代码
2011/07/14 PHP
thinkPHP下的widget扩展用法实例分析
2015/12/26 PHP
Laravel中GraphQL接口请求频率实战记录
2020/09/01 PHP
音乐播放用的的几个函数
2006/09/07 Javascript
javascript中巧用“闭包”实现程序的暂停执行功能
2007/04/04 Javascript
JavaScript 模拟用户单击事件
2009/12/31 Javascript
JavaScript实现简单的时钟实例代码
2013/11/23 Javascript
js实现网页倒计时、网站已运行时间功能的代码3例
2014/04/14 Javascript
javascript制作的cookie封装及使用指南
2015/01/02 Javascript
浅谈JavaScript的Polymer框架中的behaviors对象
2015/07/29 Javascript
详解JS获取HTML DOM元素的8种方法
2017/06/17 Javascript
在layui tab控件中载入外部html页面的方法
2019/09/04 Javascript
es6中class类静态方法,静态属性,实例属性,实例方法的理解与应用分析
2020/02/15 Javascript
按日期打印Python的Tornado框架中的日志的方法
2015/05/02 Python
Django框架中数据的连锁查询和限制返回数据的方法
2015/07/17 Python
20个常用Python运维库和模块
2018/02/12 Python
简单实现Python爬取网络图片
2018/04/01 Python
python3 打印输出字典中特定的某个key的方法示例
2019/07/06 Python
基于python实现对文件进行切分行
2020/04/26 Python
Python turtle库的画笔控制说明
2020/06/28 Python
Python如何使用ElementTree解析xml
2020/10/12 Python
关于Python3的import问题(pycharm可以运行命令行import错误)
2020/11/18 Python
Anaconda的安装与虚拟环境建立
2020/11/18 Python
HTML5实现经典坦克大战坦克乱走还能发出一个子弹
2013/09/02 HTML / CSS
在html页面中取得session中的值的方法
2020/08/11 HTML / CSS
业务员岗位职责
2013/11/16 职场文书
农村婚礼证婚词
2014/01/08 职场文书
老人祝寿主持词
2014/03/28 职场文书
干部四风问题整改措施思想汇报
2014/10/13 职场文书
2015年党风廉政建设目标责任书
2015/05/08 职场文书
初中开学典礼新闻稿
2015/07/17 职场文书
2016年感恩节寄语
2015/12/07 职场文书
共青团优秀团员申请书(范文)
2019/08/15 职场文书
JavaScript实现外溢动态爱心的效果的示例代码
2022/03/21 Javascript