elementUI table表格动态合并的示例代码


Posted in Javascript onMay 15, 2019

1.最近在做的erp项目,有一个需求是同一个客户下的同种订单,需要合并展示。使用elementUI table组件的方法 :span-method="objectSpanMethod"。官网上看了一下demo,做的很直白,不过不太符合业务。在网上找了篇文章参考了一下

2.效果图如下:

elementUI table表格动态合并的示例代码

在动态处理从后端拿回来的数据的时候,是需要从数据中找到一个唯一的“标识”去判断是否是相同种类的数据。然后根据这个“标识”去做逻辑判断。

3.代码:

//合并单元格 二维数组-> 根据“标识”去遍历数据
data() {

return {
  spanArr: [], //遍历数据时,根据相同的标识去存储记录
  pos: 0 // 二维数组的索引
}
}
// methods中定义方法
getSpanArr(data) {

let that = this
//页面展示的数据,不一定是全部的数据,所以每次都清空之前存储的 保证遍历的数据是最新的数据。以免造成数据渲染混乱
that.spanArr = []
that.pos = 0
//遍历数据
data.forEach((item, index) => {
  //判断是否是第一项
  if (index === 0) {
    this.spanArr.push(1)
    this.pos = 0
  } else {
    //不是第一项时,就根据标识去存储
    if (data[index].moldName === data[index - 1].moldName) {
      // 查找到符合条件的数据时每次要把之前存储的数据+1
      this.spanArr[this.pos] += 1
      this.spanArr.push(0)
    } else {
      // 没有符合的数据时,要记住当前的index
      this.spanArr.push(1)
      this.pos = index
    }
  }
 })
console.log(this.spanArr, this.pos)
},
// 列表方法
objectSpanMethod({rowIndex, columnIndex}) {

// 页面列表上 表格合并行 -> 第几列(从0开始)
// 需要合并多个单元格时 依次增加判断条件即可
if (columnIndex === 3) {
  // 二维数组存储的数据 取出
  const _row = this.spanArr[rowIndex]
  const _col = _row > 0 ? 1 : 0
  return {
    rowspan: _row,
    colspan: _col
  }
  //不可以return {rowspan:0, colspan: 0} 会造成数据不渲染, 也可以不写else,eslint过不了的话就返回false
} else {
  return false
}
}
created() {

let data = xxxxxxxxx
this.getSpanArr(data)
}

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

Javascript 相关文章推荐
LazyLoad 延迟加载(按需加载)
May 31 Javascript
解决window.opener=null;window.close(),只支持IE6不支持IE7,IE8的问题
Jan 14 Javascript
基于Jquery插件Uploadify实现实时显示进度条上传图片
Mar 26 Javascript
JS中mouseover和mouseout多次触发问题如何解决
Jun 06 Javascript
js入门之Function函数的使用方法【新手必看】
Nov 22 Javascript
js事件冒泡与事件捕获详解
Feb 20 Javascript
基于BootStrap的文本编辑器组件Summernote
Oct 27 Javascript
微信小程序自定义带价格显示日历效果
Dec 29 Javascript
webpack4实现不同的导出类型
Apr 09 Javascript
JS实现移动端双指缩放和旋转方法
Dec 13 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
Mar 07 Javascript
Element Tooltip 文字提示的使用示例
Jul 26 Javascript
详解VUE调用本地json的使用方法
May 15 #Javascript
微信小程序的mpvue框架快速上手指南
May 15 #Javascript
解决微信小程序云开发中获取数据库的内容为空的方法
May 15 #Javascript
JS中使用react-tooltip插件实现鼠标悬浮显示框
May 15 #Javascript
JavaScript面向对象编程小游戏---贪吃蛇代码实例
May 15 #Javascript
小程序绑定用户方案优化小结
May 15 #Javascript
pm2发布node配置文件ecosystem.json详解
May 15 #Javascript
You might like
PHP超牛逼无限极分类生成树方法
2015/05/11 PHP
PHP实现根据数组的值进行分组的方法
2017/04/20 PHP
php+redis实现商城秒杀功能
2020/11/19 PHP
Laravel5.1 框架Request请求操作常见用法实例分析
2020/01/04 PHP
thinkphp框架实现路由重定义简化url访问地址的方法分析
2020/04/04 PHP
javascript模拟的Ping效果代码 (Web Ping)
2011/03/13 Javascript
一个级联菜单代码学习及removeClass与addClass的应用
2013/01/24 Javascript
JQuery onload、ready概念介绍及使用方法
2013/04/27 Javascript
JavaScript 垃圾回收机制分析
2013/10/10 Javascript
JS碰撞运动实现方法详解
2016/12/15 Javascript
angularjs使用directive实现分页组件的示例
2017/02/07 Javascript
js实现做通讯录的索引滑动显示效果和滑动显示锚点效果
2017/02/18 Javascript
JS实现中文汉字按拼音排序的方法
2017/10/09 Javascript
webpack 从指定入口文件中提取公共文件的方法
2018/11/13 Javascript
jQuery实现为table表格动态添加或删除tr功能示例
2019/02/19 jQuery
vue-cli配置全局sass、less变量的方法
2019/06/06 Javascript
layui原生表单验证的实例
2019/09/09 Javascript
基于JS正则表达式实现模板数据动态渲染(实现思路详解)
2020/03/07 Javascript
vue vant中picker组件的使用
2020/11/03 Javascript
[02:47]2018年度DOTA2最佳辅助位选手4号位-完美盛典
2018/12/17 DOTA
python使用arcpy.mapping模块批量出图
2017/03/06 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
2018/02/24 Python
关于Python的一些学习总结
2018/05/25 Python
Vue的el-scrollbar实现自定义滚动
2018/05/29 Python
在python 中实现运行多条shell命令
2019/01/07 Python
Python3.6.2调用ffmpeg的方法
2019/01/10 Python
Django通过dwebsocket实现websocket的例子
2019/11/15 Python
使用Python项目生成所有依赖包的清单方式
2020/07/13 Python
python中添加模块导入路径的方法
2021/02/03 Python
详解CSS3 用border写 空心三角箭头 (两种写法)
2017/09/29 HTML / CSS
CSS3中的@keyframes关键帧动画的选择器绑定
2016/06/13 HTML / CSS
深入研究HTML5实现图片压缩上传功能
2016/03/25 HTML / CSS
2014年收银工作总结
2014/11/13 职场文书
Python编程源码报错解决方法总结经验分享
2021/10/05 Python
muduo TcpServer模块源码分析
2022/04/26 Redis
ubuntu下常用apt命令介绍
2022/06/05 Servers