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 面向对象编程 万物皆对象
Sep 17 Javascript
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
Sep 16 Javascript
js获取Html元素的实际宽度高度的方法
May 19 Javascript
Bootstrap的基本应用要点浅析
Dec 19 Javascript
详解Jquery EasyUI tree 的异步加载(遍历指定文件夹,根据文件夹内的文件生成tree)
Feb 11 Javascript
underscore之Chaining_动力节点Java学院整理
Jul 10 Javascript
es6+angular1.X+webpack 实现按路由功能打包项目的示例
Aug 16 Javascript
express如何使用session与cookie的方法
Jan 30 Javascript
微信小程序获取位置展示地图并标注信息的实例代码
Sep 01 Javascript
javascript实现动态时钟的启动和停止
Jul 29 Javascript
js 使用ajax设置和获取自定义header信息的方法小结
Mar 12 Javascript
Vue2.0 $set()的正确使用详解
Jul 28 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即时捕捉PHP中的错误并发送email通知的实现代码
2013/01/19 PHP
解析file_get_contents模仿浏览器头(user_agent)获取数据
2013/06/27 PHP
非常全面的php日期时间运算汇总
2015/11/04 PHP
变量在 PHP7 内部的实现(二)
2015/12/21 PHP
php 使用expat方式解析xml文件操作示例
2019/11/26 PHP
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
JQuery的$命名冲突详细解析
2013/12/28 Javascript
javascript中数组的多种定义方法和常用函数简介
2014/05/09 Javascript
JavaScript实现数字数组按照倒序排列的方法
2015/04/06 Javascript
ichart.js绘制虚线、平均分虚线效果的实现代码
2016/05/05 Javascript
浅谈JavaScript前端开发的MVC结构与MVVM结构
2016/06/03 Javascript
Vue实现双向绑定的方法
2016/12/22 Javascript
jQuery中hover方法搭配css的hover选择器,实现选中元素突出显示方法
2017/05/08 jQuery
vue实现购物车抛物线小球动画效果的方法详解
2019/02/13 Javascript
Vue 组件注册实例详解
2019/02/23 Javascript
vue 点击其他区域关闭自定义div操作
2020/07/17 Javascript
Vue+Element自定义纵向表格表头教程
2020/10/26 Javascript
echarts浮动显示单位的实现方法示例
2020/12/04 Javascript
用Python编程实现语音控制电脑
2014/04/01 Python
低版本中Python除法运算小技巧
2015/04/05 Python
Python实现带参数与不带参数的多重继承示例
2018/01/30 Python
Python中psutil的介绍与用法
2019/05/02 Python
python实现贪吃蛇双人大战
2020/04/18 Python
pycharm 快速解决python代码冲突的问题
2021/01/15 Python
详解Html5原生拖拽操作
2018/01/12 HTML / CSS
老海军美国官网:Old Navy
2016/09/05 全球购物
美国农场鲜花速递:The Bouqs
2018/07/13 全球购物
护理职业生涯规划书
2014/01/24 职场文书
乡镇党的群众路线对照检查材料
2014/09/24 职场文书
建筑工地文明标语
2014/10/09 职场文书
2014年个人工作总结范文
2014/11/07 职场文书
2015年环境整治工作总结
2015/05/22 职场文书
小学安全教育主题班会
2015/08/12 职场文书
2016年社区“我们的节日·中秋节”活动总结
2016/04/05 职场文书
详解如何在Canvas中添加事件的方法
2021/04/17 Javascript
mysql下的max_allowed_packet参数设置详解
2022/02/12 MySQL