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中setTimeout的几种使用方法小结
Apr 07 Javascript
jquery和ajax的关系详细介绍
Nov 29 Javascript
JS 数字转换研究总结
Dec 26 Javascript
JS判断文本框内容改变事件的简单实例
Mar 07 Javascript
JS实现统计复选框选中个数并提示确定与取消的方法
Jul 01 Javascript
关于angularJs指令的Scope(作用域)介绍
Oct 25 Javascript
利用Javascript裁剪图片并存储的简单实现
Mar 13 Javascript
JQuery事件委托原理与用法实例分析
May 13 jQuery
layerui代码控制tab选项卡,添加,关闭的实例
Sep 04 Javascript
微信小程序激励式视频广告组件使用详解
Dec 06 Javascript
vue将文件/图片批量打包下载zip的教程
Oct 21 Javascript
vue el-table实现递归嵌套的示例代码
Aug 14 Vue.js
详解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
ftp类(myftp.php)
2006/10/09 PHP
ASP知识讲座四
2006/10/09 PHP
使用php重新实现PHP脚本引擎内置函数
2007/03/06 PHP
dedecms系统常用术语汇总
2007/04/03 PHP
php fsockopen解决办法 php实现多线程
2014/01/20 PHP
PHPMailer发送邮件
2016/12/28 PHP
使用PHPStorm+XDebug搭建单步调试环境
2017/11/19 PHP
弹出层之1:JQuery.Boxy (一) 使用介绍
2011/10/06 Javascript
通过javascript把图片转化为字符画
2013/10/24 Javascript
jquery控制display属性为none或block
2014/03/31 Javascript
一个JavaScript的求爱小特效
2014/05/09 Javascript
Javascript基础教程之函数对象和属性
2015/01/18 Javascript
再谈Javascript中的基本类型和引用类型(推荐)
2016/07/01 Javascript
关于Javascript中defer和async的区别总结
2016/09/20 Javascript
使用ionic切换页面卡顿的解决方法
2016/12/16 Javascript
详解Nodejs的timers模块
2016/12/22 NodeJs
AngularJS 实现购物车全选反选功能
2017/10/24 Javascript
JavaScript中的高级函数
2018/01/04 Javascript
浅谈MUI框架中加载外部网页或服务器数据的方法
2018/01/31 Javascript
JS实现520 表白简单代码
2018/05/21 Javascript
Javascript 之封装(Package)
2018/09/14 Javascript
后台使用freeMarker和前端使用vue的方法及遇到的问题
2019/06/13 Javascript
使用Python编写一个模仿CPU工作的程序
2015/04/16 Python
小白如何入门Python? 制作一个网站为例
2018/03/06 Python
python3 pandas 读取MySQL数据和插入的实例
2018/04/20 Python
Python获取指定字符前面的所有字符方法
2018/05/02 Python
python super的使用方法及实例详解
2019/09/25 Python
python下载卫星云图合成gif的方法示例
2020/02/18 Python
Python Django form 组件动态从数据库取choices数据实例
2020/05/19 Python
纯CSS3实现鼠标滑过按钮动画第二节
2020/07/16 HTML / CSS
高职助产应届生自荐信
2013/09/24 职场文书
公积金转移接收函
2014/01/11 职场文书
留学顾问岗位职责
2014/04/14 职场文书
文明礼仪主题班会
2015/08/13 职场文书
mysql如何配置白名单访问
2021/06/30 MySQL
python 判断字符串当中是否包含字符(str.contain)
2022/06/01 Python