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入门学习资料收集整理篇
Jul 06 Javascript
js 跨域和ajax 跨域问题小结
Jul 01 Javascript
[原创]js获取数组任意个不重复的随机数组元素
Mar 15 Javascript
jquery向.ashx文件post中文乱码问题的解决方法
Mar 28 Javascript
jQuery登陆判断简单实现代码
Apr 21 Javascript
使用GruntJS构建Web程序之Tasks(任务)篇
Jun 06 Javascript
javascript实现图片循环渐显播放的方法
Feb 24 Javascript
批量下载对路网图片并生成html的实现方法
Jun 07 Javascript
Angular 4依赖注入学习教程之ClassProvider的使用(三)
Jun 04 Javascript
使用Node.js实现ORM的一种思路详解(图文)
Oct 24 Javascript
微信小程序 腾讯地图SDK 获取当前地址实现解析
Aug 12 Javascript
vscode中eslint插件的配置(prettier配置无效)
Sep 10 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 处理上百万条的数据库如何提高处理查询速度
2010/02/08 PHP
PHP时间和日期函数详解
2015/05/08 PHP
PHP实现支付宝即时到账功能
2016/12/21 PHP
PHP实现简单登录界面
2019/10/23 PHP
datePicker——日期选择控件(with jquery)
2007/02/20 Javascript
js实现的网站首页随机公告随机公告
2007/03/14 Javascript
游览器中javascript的执行过程(图文)
2012/05/20 Javascript
js中top/parent/frame概述及案例应用
2013/02/06 Javascript
javascript去掉前后空格的实例
2013/11/07 Javascript
Node.js node-schedule定时任务隔多少分钟执行一次的方法
2015/02/10 Javascript
jQuery on()方法使用技巧详解
2015/04/16 Javascript
nodejs实现获取当前url地址及url各种参数值
2015/06/25 NodeJs
JavaScript控制浏览器全屏及各种浏览器全屏模式的方法、属性和事件
2015/12/20 Javascript
CSS或者JS实现鼠标悬停显示另一元素
2016/01/22 Javascript
React入门教程之Hello World以及环境搭建详解
2017/07/11 Javascript
JavaScript体验异步更好的解决办法
2018/01/08 Javascript
微信小程序授权登录解决方案的代码实例(含未通过授权解决方案)
2019/05/10 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
JSONP解决JS跨域问题的实现
2020/05/25 Javascript
[01:07:41]IG vs VGJ.T 2018国际邀请赛小组赛BO2 第一场 8.18
2018/08/19 DOTA
深入解析Python中的descriptor描述器的作用及用法
2016/06/27 Python
浅谈python numpy中nonzero()的用法
2018/04/02 Python
Python pyinotify模块实现对文档的实时监控功能方法
2018/10/13 Python
Python求离散序列导数的示例
2019/07/10 Python
如何在Cloud Studio上执行Python代码?
2019/08/09 Python
python读写Excel表格的实例代码(简单实用)
2019/12/19 Python
python正则表达式匹配IP代码实例
2019/12/28 Python
一文了解python 3 字符串格式化 F-string 用法
2020/03/04 Python
CSS超出文本指定宽度用省略号代替和文本不换行
2016/05/05 HTML / CSS
会计自荐书
2013/12/02 职场文书
旷课检讨书2000字
2014/01/14 职场文书
家长给学校的建议书
2014/05/15 职场文书
人力资源管理系自荐信
2014/05/31 职场文书
主持稿开场白
2015/06/01 职场文书
2015小学师德工作总结
2015/07/21 职场文书
公司客户答谢酒会祝酒词
2015/08/11 职场文书