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获取GridView中用户点击控件的行号,列号
Apr 14 Javascript
ie下jquery.getJSON的缓存问题的处理方法
Mar 29 Javascript
js几秒以后倒计时跳转示例
Dec 26 Javascript
jquery.validate.js插件使用经验记录
Jul 02 Javascript
js实现的tab标签切换效果代码分享
Aug 25 Javascript
防止重复发送 Ajax 请求
Feb 15 Javascript
JavaScript实现带有子菜单和控件的slider轮播图效果
Nov 01 Javascript
浅谈webpack打包之后的文件过大的解决方法
Mar 07 Javascript
详解Vue2 添加对scss的支持
Jan 02 Javascript
jsonp格式前端发送和后台接受写法的代码详解
Nov 07 Javascript
CocosCreator入门教程之网络通信
Apr 16 Javascript
JavaScript异步操作中串行和并行
Nov 20 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编写大型网站问题集
2007/03/06 PHP
php 从数据库提取二进制图片的处理代码
2009/09/09 PHP
PHP CKEditor 上传图片实现代码
2009/11/06 PHP
PHP中多线程的两个实现方法
2016/10/14 PHP
php实现基于pdo的事务处理方法示例
2017/07/21 PHP
PHP实现的折半查找算法示例
2017/12/19 PHP
爆炸式的JS圆形浮动菜单特效代码
2010/03/03 Javascript
JS中的数组的sort方法使用示例
2014/01/22 Javascript
js获取ajax返回值代码
2014/04/30 Javascript
js实现checkbox全选和反选示例
2014/05/01 Javascript
使用jQuery实现input数值增量和减量的方法
2015/01/24 Javascript
AngularJS定时器的使用与移除操作方法【interval与timeout】
2016/12/14 Javascript
BootStrap表单验证 FormValidation 调整反馈图标位置的实例代码
2017/05/17 Javascript
JS实现瀑布流布局
2017/10/21 Javascript
vue如何引入sass全局变量
2018/06/28 Javascript
Vue.js图片预览插件使用详解
2018/08/27 Javascript
bootstrap table列和表头对不齐的解决方法
2019/07/19 Javascript
解决layer.open后laydate失效的问题
2019/09/06 Javascript
[50:22]完美盛典-2018年度红毯走秀
2018/12/16 DOTA
[02:58]魔廷新尊——痛苦女王至宝语音台词节选
2020/06/14 DOTA
[39:46]完美世界DOTA2联赛PWL S2 LBZS vs Rebirth 第二场 11.25
2020/11/25 DOTA
python入门教程之识别验证码
2017/03/04 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
基于python-opencv3的图像显示和保存操作
2019/06/27 Python
python TK库简单应用(实时显示子进程输出)
2019/10/29 Python
python 创建一维的0向量实例
2019/12/02 Python
Python Numpy库常见用法入门教程
2020/01/16 Python
python如何查看安装了的模块
2020/06/23 Python
用python批量下载apk
2020/12/29 Python
Canvas制作旋转的太极的示例
2018/03/09 HTML / CSS
毕业生求职简历中的自我评价
2013/10/18 职场文书
2014年老干部工作总结
2014/11/21 职场文书
2014年优秀党员材料
2014/12/18 职场文书
nginx限制并发连接请求数的方法
2021/04/01 Servers
python3 hdf5文件 遍历代码
2021/05/19 Python
ECharts transform数据转换和dataZoom在项目中使用
2022/12/24 Javascript