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 相关文章推荐
JavaScript 放大镜 移动镜片效果代码
May 09 Javascript
页面只能打开一次Cooike如何实现
Dec 04 Javascript
Jquery 动态循环输出表格具体方法
Nov 23 Javascript
jQuery获取动态生成的元素示例
Jun 15 Javascript
js实现的页面矩阵图形变换特效
Jan 26 Javascript
JavaScript的this关键字的理解
Jun 18 Javascript
vue.js初学入门教程(2)
Nov 07 Javascript
vue引入swiper插件的使用实例
Jul 19 Javascript
详解Koa中更方便简单发送响应的方式
Jul 20 Javascript
angular多语言配置详解
May 16 Javascript
JS实现音量控制拖动
Jan 15 Javascript
js闭包的9个使用场景
Dec 29 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
全国FM电台频率大全 - 1 北京市
2020/03/11 无线电
构建简单的Webmail系统
2006/10/09 PHP
php+mysql开源XNA 聚合程序发布 下载
2007/07/13 PHP
PHP实现批量重命名某个文件夹下所有文件的方法
2017/09/04 PHP
Javascript的一种模块模式
2008/03/22 Javascript
javascript 对表格的行和列都能加亮显示
2008/12/26 Javascript
让iframe子窗体取父窗体地址栏参数(querystring)
2009/10/13 Javascript
javascript倒计时功能实现代码
2012/06/07 Javascript
你必须知道的JavaScript 变量命名规则详解
2013/05/07 Javascript
JS保存、读取、换行、转Json报错处理方法
2013/06/14 Javascript
Javascript MVC框架Backbone.js详解
2014/09/18 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
JavaScript里四舍五入函数round用法实例
2015/04/06 Javascript
jQuery ajax调用后台aspx后台文件的两种常见方法(不是ashx)
2016/06/28 Javascript
jQuery加载及解析XML文件的方法实例分析
2017/01/22 Javascript
nodejs制作爬虫实现批量下载图片
2017/05/19 NodeJs
Three.js利用orbit controls插件(轨道控制)控制模型交互动作详解
2017/09/25 Javascript
简单实现jQuery弹窗效果
2017/10/30 jQuery
详解vue添加删除元素的方法
2018/06/30 Javascript
浅谈Vue组件及组件的注册方法
2018/08/24 Javascript
vue中typescript装饰器的使用方法超实用教程
2019/06/17 Javascript
vue+koa2搭建mock数据环境的详细教程
2020/05/18 Javascript
vue祖孙组件之间的数据传递案例
2020/12/07 Vue.js
[01:00:30]完美世界DOTA2联赛循环赛 Inki vs Matador BO2第二场 10.31
2020/11/02 DOTA
python进行TCP端口扫描的实现
2018/12/21 Python
Python操作MySQL数据库的两种方式实例分析【pymysql和pandas】
2019/03/18 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
python之pygame模块实现飞机大战完整代码
2020/11/29 Python
使用phonegap创建联系人的实现方法
2017/03/30 HTML / CSS
消防先进事迹材料
2014/02/10 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
放假通知怎么写
2015/08/18 职场文书
公司岗位说明书
2015/10/08 职场文书
SQL Server表分区删除详情
2021/10/16 SQL Server
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL
Java 获取Word中所有的插入和删除修订的方法
2022/04/06 Java/Android