vue单元格多列合并的实现


Posted in Vue.js onNovember 26, 2020

一.多列合并

1.在el-table中添加:span-method="objectSpanMethod"属性来控制合并单元格,如下图

vue单元格多列合并的实现

2.合并代码,每一列都要设置一个不同的key,这样可以防止合并的时候上下内容一样导致错误的问题

objectSpanMethod({ row, column, rowIndex, columnIndex }) {
   if (columnIndex === 0) {
    if (this.myObj[row.channel_type].start === rowIndex) {
     return {
      rowspan: this.myObj[row.channel_type].step,
      colspan: 1
     };
    } else {
     return {
      rowspan: 0,
      colspan: 0
     };
    }
   }
   if (columnIndex === 1) {
    if (
     this.myObj_two[row.channel_name_chinese + row.channel_type].start ===
     rowIndex
    ) {
     return {
      rowspan: this.myObj_two[row.channel_name_chinese + row.channel_type]
       .step,
      colspan: 1
     };
    } else {
     return {
      rowspan: 0,
      colspan: 0
     };
    }
   }
  },
   // 合并单元格第一列
  resolveData(arr) {
   var obj = {};
   arr.forEach((val, key) => {
    if (!obj[val.channel_type]) {
     obj[val.channel_type] = {
      start: key,
      step: 1
     };
    } else {
     obj[val.channel_type].step++;
    }
   });
   this.myObj = obj;
   console.log(obj);
  },
  // 合并单元格第二列
  resolveData_two(arr) {
   var obj = {};
   arr.forEach((val, key) => {
    if (!obj[val.channel_name_chinese + val.channel_type]) {
     obj[val.channel_name_chinese + val.channel_type] = {
      start: key,
      step: 1
     };
    } else {
     obj[val.channel_name_chinese + val.channel_type].step++;
    }
   });
   this.myObj_two = obj;
   console.log(this.myObj_two, "this.myObj");
  },

3.需要调用一下下面两个函数,data为你所获取的所有数据

this.resolveData_two(data);
     this.resolveData(data);

4.合并结果如下图

vue单元格多列合并的实现

到此这篇关于vue单元格多列合并的实现的文章就介绍到这了,更多相关vue单元格多列合并内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Vue.js 相关文章推荐
vue3.0实现点击切换验证码(组件)及校验
Nov 18 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
基于vue与element实现创建试卷相关功能(实例代码)
Dec 07 Vue.js
Vue如何跨组件传递Slot的实现
Dec 14 Vue.js
vue实现图书管理系统
Dec 29 Vue.js
vue使用过滤器格式化日期
Jan 20 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
Vue详细的入门笔记
May 10 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
vue实现水波涟漪效果的点击反馈指令
May 31 Vue.js
Vue全局事件总线你了解吗
Feb 24 Vue.js
解决vue中provide inject的响应式监听
Apr 19 Vue.js
VUE项目实现主题切换的多种方法
Nov 26 #Vue.js
Vue项目如何引入bootstrap、elementUI、echarts
Nov 26 #Vue.js
vue实现广告栏上下滚动效果
Nov 26 #Vue.js
Vue组件生命周期运行原理解析
Nov 25 #Vue.js
vue element-ul实现展开和收起功能的实例代码
Nov 25 #Vue.js
在Vue中使用mockjs代码实例
Nov 25 #Vue.js
Vue3配置axios跨域实现过程解析
Nov 25 #Vue.js
You might like
在Mac OS上搭建PHP的Yii框架及相关测试环境
2016/02/14 PHP
PHPWind9.0手动屏蔽验证码解决后台关闭验证码但是依然显示的问题
2016/08/12 PHP
visual studio code 调试php方法(图文详解)
2017/09/15 PHP
PHP下载大文件失败并限制下载速度的实例代码
2019/05/10 PHP
表单填写时用回车代替TAB的实现方法
2007/10/09 Javascript
javascript学习笔记(十一) 正则表达式介绍
2012/06/20 Javascript
js禁止页面使用右键(简单示例代码)
2013/11/13 Javascript
获取当前点击按钮的id用this.id实现
2014/03/17 Javascript
JavaScript获得表单target属性的方法
2015/04/02 Javascript
Angularjs手动解析表达式($parse)
2016/10/12 Javascript
用js实现博客打赏功能
2016/10/24 Javascript
Javascript 使用ajax与C#获取文件大小实例详解
2017/01/13 Javascript
解决vue多个路由共用一个页面的问题
2018/03/12 Javascript
解决vue页面刷新或者后退参数丢失的问题
2018/03/13 Javascript
Ant Design的可编辑Tree的实现操作
2020/10/31 Javascript
JavaScript实现切换多张图片
2021/01/27 Javascript
[02:10]探秘浦东源深体育馆 DOTA2 Supermajor不见不散
2018/05/17 DOTA
好用的Python编辑器WingIDE的使用经验总结
2016/08/31 Python
解决PyCharm中光标变粗的问题
2017/08/05 Python
Django实现简单分页功能的方法详解
2017/12/05 Python
Python cookbook(数据结构与算法)找到最大或最小的N个元素实现方法示例
2018/02/13 Python
Tensorflow卷积神经网络实例
2018/05/24 Python
Python使用combinations实现排列组合的方法
2018/11/13 Python
python实现最大子序和(分治+动态规划)
2019/07/05 Python
python使用原始套接字发送二层包(链路层帧)的方法
2019/07/22 Python
Python类反射机制使用实例解析
2019/12/30 Python
pycharm开发一个简单界面和通用mvc模板(操作方法图解)
2020/05/27 Python
pandas数据处理之绘图的实现
2020/06/15 Python
Python Opencv实现单目标检测的示例代码
2020/09/08 Python
商务英语求职自荐信范文
2013/12/24 职场文书
幼儿园三八妇女节活动方案
2014/03/11 职场文书
多媒体教室标语
2014/06/26 职场文书
汽车检测与维修专业求职信
2014/07/04 职场文书
小学毕业感言100字
2015/07/30 职场文书
巧用 -webkit-box-reflect 倒影实现各类动效(小结)
2021/04/22 HTML / CSS
SQL 聚合、分组和排序
2021/11/11 MySQL