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 相关文章推荐
图像替换新技术 状态域方法
Jan 28 Javascript
jQuery之折叠面板的深入解析
Jun 19 Javascript
21个值得收藏的Javascript技巧
Feb 04 Javascript
javascript仿百度输入框提示自动下拉补全
Jan 07 Javascript
JavaScript 继承详解(五)
Oct 11 Javascript
js以分隔符分隔数组中的元素并转换为字符串的方法
Nov 16 Javascript
js实现适合新闻类图片的轮播效果
Feb 05 Javascript
微信小程序 es6-promise.js封装请求与处理异步进程
Jun 12 Javascript
js经验分享 JavaScript反调试技巧
Mar 10 Javascript
关于vue中 $emit的用法详解
Apr 12 Javascript
浅谈Webpack核心模块tapable解析
Sep 11 Javascript
JS 音频可视化插件Wavesurfer.js的使用教程
Oct 31 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
BBS(php & mysql)完整版(六)
2006/10/09 PHP
DEDE采集大师官方留后门的删除办法
2011/01/08 PHP
CI(CodeIgniter)框架配置
2014/06/10 PHP
ThinkPHP查询中的魔术方法简述
2014/06/25 PHP
ThinkPHP调用百度翻译类实现在线翻译
2014/06/26 PHP
将HTML自动转为JS代码
2006/06/26 Javascript
如何在标题栏显示框架内页面的标题
2007/02/03 Javascript
百度留言本js 大家可以参考下
2009/10/13 Javascript
html dom节点操作(获取/修改/添加或删除)
2014/01/23 Javascript
node.js中的console.dir方法使用说明
2014/12/10 Javascript
JQuery仿小米手机抢购页面倒计时效果
2014/12/16 Javascript
JS定时器使用,定时定点,固定时刻,循环执行详解
2016/05/31 Javascript
Google 地图获取API Key详细教程
2016/08/06 Javascript
bootstrap datetimepicker实现秒钟选择下拉框
2017/01/05 Javascript
js实现倒计时效果(小于10补零)
2017/03/08 Javascript
解决webpack打包速度慢的解决办法汇总
2017/07/06 Javascript
vue init失败简单解决方法(终极版)
2017/12/22 Javascript
实例讲解v-if和v-show的区别
2019/01/31 Javascript
基于Vue2-Calendar改进的日历组件(含中文使用说明)
2019/04/14 Javascript
JavaScript 几种循环方式以及模块化的总结
2020/09/03 Javascript
微信小游戏中three.js离屏画布的示例代码
2020/10/12 Javascript
微信小程序实现下拉加载更多商品
2020/12/29 Javascript
Python反射的用法实例分析
2018/02/11 Python
python实现狄克斯特拉算法
2019/01/17 Python
Python实现多进程的四种方式
2019/02/22 Python
TensorFlow自定义损失函数来预测商品销售量
2020/02/05 Python
python打开文件的方式有哪些
2020/06/29 Python
Python 解析简单的XML数据
2020/07/24 Python
Python更改pip镜像源的方法示例
2020/12/01 Python
html5录音功能实战示例
2019/03/25 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
美体小铺波兰官方网站:The Body Shop波兰
2019/09/03 全球购物
extern是什么意思
2016/03/10 面试题
班长竞选演讲稿
2014/04/24 职场文书
2015企业年终工作总结范文
2015/05/27 职场文书
OpenCV-Python使用cv2实现傅里叶变换
2021/06/09 Python