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 相关文章推荐
EXTJS FORM HIDDEN TEXTFIELD 赋值 使用value不好用的问题
Apr 16 Javascript
JQuery对表格进行操作的常用技巧总结
Apr 23 Javascript
jQuery多项选项卡的实现思路附样式及代码
Jun 03 Javascript
extjs_02_grid显示本地数据、显示跨域数据
Jun 23 Javascript
JS实现超炫网页烟花动画效果的方法
Mar 02 Javascript
jQuery使用animate创建动画用法实例
Aug 07 Javascript
JS中使用apply、bind实现为函数或者类传入动态个数的参数
Apr 26 Javascript
javascript中json对象json数组json字符串互转及取值方法
Apr 19 Javascript
bootstrap的常用组件和栅格式布局详解
May 02 Javascript
基于zepto.js实现登录界面
Oct 09 Javascript
原生javascript AJAX 三级联动的实现代码
May 04 Javascript
nuxt静态部署打包相对路径操作
Nov 06 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
迅雷下载《中学科技》怀旧期刊下载
2021/02/27 无线电
用Php实现链结人气统计
2006/10/09 PHP
php调用自己java程序的方法详解
2016/05/13 PHP
PHP对象相关知识总结
2017/04/09 PHP
PHP获取数组中指定的一列实例
2017/12/27 PHP
PHP判断是否是微信打开还是浏览器打开的方法
2019/02/27 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
JS 统计时间
2021/03/09 Javascript
javascript 冒号 使用说明
2009/06/06 Javascript
发布一个基于javascript的动画类 Fx.js
2010/11/05 Javascript
JavaScript eval() 函数介绍及应用示例
2014/07/29 Javascript
JQuery自适应窗口大小导航菜单附源码下载
2015/09/01 Javascript
通过设置CSS中的position属性来固定层的位置
2015/12/14 Javascript
js自定义select下拉框美化特效
2016/05/12 Javascript
Node.js数据库操作之查询MySQL数据库(二)
2017/03/04 Javascript
Bootstrap fileinput文件上传组件使用详解
2017/06/06 Javascript
使用node.js对音视频文件加密的实例代码
2017/08/30 Javascript
bootstrap模态框嵌套、tabindex属性、去除阴影的示例代码
2017/10/17 Javascript
webpack中使用iconfont字体图标的方法
2018/02/22 Javascript
javascript严格模式详解(含严格模式与非严格模式的区别)
2019/11/12 Javascript
webpack.DefinePlugin与cross-env区别详解
2020/02/23 Javascript
vue之封装多个组件调用同一接口的案例
2020/08/11 Javascript
Python中json格式数据的编码与解码方法详解
2016/07/01 Python
PyTorch快速搭建神经网络及其保存提取方法详解
2018/04/28 Python
Python tkinter常用操作代码实例
2020/01/03 Python
Jupyter Notebook打开任意文件夹操作
2020/04/14 Python
详解基于python的全局与局部序列比对的实现(DNA)
2020/10/07 Python
全球性的在线购物网站:Zapals
2017/03/22 全球购物
施华洛世奇天猫官方旗舰店:SWAROVSKI
2017/04/17 全球购物
Nice Kicks网上商店:ShopNiceKicks.com
2018/12/25 全球购物
什么是GWT的Entry Point
2013/08/16 面试题
就业自荐书
2013/12/05 职场文书
采购求职信
2014/03/17 职场文书
2014年煤矿工作总结
2014/11/24 职场文书
工程部经理岗位职责
2015/02/02 职场文书
仓管员岗位职责范本
2015/04/01 职场文书