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 相关文章推荐
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
Feb 07 Javascript
jquery实现不同大小浏览器使用不同的css样式表的方法
Apr 02 Javascript
javascript获取文档坐标和视口坐标
May 26 Javascript
纯js实现悬浮按钮组件
Dec 17 Javascript
BootStrapTable 单选及取值的实现方法
Jan 10 Javascript
layui表格实现代码
May 20 Javascript
vue中echarts3.0自适应的方法
Feb 26 Javascript
在Layui中操作数据表格,给指定单元格添加事件示例
Oct 26 Javascript
微信小程序修改数组长度的问题的解决
Dec 17 Javascript
详解ES6数组方法find()、findIndex()的总结
May 12 Javascript
JavaScript 引用类型实例详解【数组、对象、严格模式等】
May 13 Javascript
javascript Number 与 Math对象的介绍
Nov 17 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汉字转换拼音的类
2013/06/18 PHP
PHP中遇到的时区问题解决方法
2015/07/23 PHP
PHP中常用的数组操作方法笔记整理
2016/05/16 PHP
PHP url的pathinfo模式加载不同控制器的简单实现
2016/08/12 PHP
PHP弱类型语言中类型判断操作实例详解
2017/08/10 PHP
分享XmlHttpRequest调用Webservice的一点心得
2012/07/20 Javascript
自定义jQuery选项卡插件实例
2013/03/27 Javascript
简单方法判断JavaScript对象为null或者属性为空
2014/09/26 Javascript
DOM基础教程之模型中的模型节点
2015/01/19 Javascript
JavaScript运动减速效果实例分析
2015/08/04 Javascript
常常会用到的截取字符串substr()、substring()、slice()方法详解
2015/12/16 Javascript
详解JavaScript数组和字符串中去除重复值的方法
2016/03/07 Javascript
关于JS中的apply,call,bind的深入解析
2016/04/05 Javascript
JQuery中attr属性和jQuery.data()学习笔记【必看】
2016/05/18 Javascript
jQuery 常见小例汇总
2016/12/14 Javascript
微信小程序页面生命周期详解
2018/01/31 Javascript
vue生命周期和react生命周期对比【推荐】
2018/09/19 Javascript
vue限制输入框只能输入8位整数和2位小数的代码
2019/11/06 Javascript
Node.js操作MongoDB数据库实例分析
2020/01/19 Javascript
浅析TypeScript 命名空间
2020/03/19 Javascript
JS中准确判断变量类型的方法
2020/06/01 Javascript
JS实现网站楼层导航效果代码实例
2020/06/16 Javascript
详解js中的原型,原型对象,原型链
2020/07/16 Javascript
Javascript Symbol原理及使用方法解析
2020/10/22 Javascript
python集合类型用法分析
2015/04/08 Python
Python实现将HTML转换成doc格式文件的方法示例
2017/11/20 Python
Python交互式图形编程的实现
2019/07/25 Python
html5 input元素新特性_动力节点Java学院整理
2017/07/06 HTML / CSS
基于HTML5 的人脸识别活体认证的实现方法
2016/06/22 HTML / CSS
英文简历中的自我评价
2013/10/06 职场文书
会计专业大学生职业生涯规划范文
2014/01/11 职场文书
运动会跳远广播稿
2015/08/19 职场文书
家访教师心得体会
2016/01/23 职场文书
小学教代会开幕词
2016/03/04 职场文书
教你用Python写一个植物大战僵尸小游戏
2021/04/25 Python
【海涛教你打dota】体验一超神发条:咱是抢盾专业户
2022/04/01 DOTA