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配置axios跨域实现过程解析
Nov 25 Vue.js
vue3.0+vue-router+element-plus初实践
Dec 02 Vue.js
vue表单验证之禁止input输入框输入空格
Dec 03 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
8个非常实用的Vue自定义指令
Dec 15 Vue.js
vue实现简易的双向数据绑定
Dec 29 Vue.js
Vue.extend 登录注册模态框的实现
Dec 29 Vue.js
vue3.0中友好使用antdv示例详解
Jan 05 Vue.js
Vue实现多页签组件
Jan 14 Vue.js
Vue Element UI自定义描述列表组件
May 18 Vue.js
解决vue $http的get和post请求跨域问题
Jun 07 Vue.js
详解gantt甘特图可拖拽、编辑(vue、react都可用 highcharts)
Nov 27 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
PHP循环函数使用介绍之PHP基础入门教程
2013/09/21 PHP
PHP入门教程之字符串处理技巧总结(转换,过滤,解析,查找,截取,替换等)
2016/09/11 PHP
Linux平台PHP5.4设置FPM线程数量的方法
2016/11/09 PHP
使用PHPMailer发送邮件实例
2017/02/15 PHP
浅谈laravel中的关联查询with的问题
2019/10/10 PHP
php 实现简单的登录功能示例【基于thinkPHP框架】
2019/12/02 PHP
脚本吧 - 幻宇工作室用到js,超强推荐share.js
2006/12/23 Javascript
var与Javascript变量隐式声明
2009/09/17 Javascript
JavaScript实现的图像模糊算法代码分享
2014/04/22 Javascript
javascript继承的六大模式小结
2015/04/13 Javascript
跟我学习javascript的for循环和for...in循环
2015/11/18 Javascript
AngularJS基础 ng-mouseenter 指令示例代码
2016/08/02 Javascript
jquery实现网页定位导航
2016/08/23 Javascript
Angular使用ng-messages与PHP进行表单数据验证
2016/12/28 Javascript
微信小程序-小说阅读小程序实例(demo)
2017/01/12 Javascript
JavaScript中双符号的运算详解
2017/03/12 Javascript
JS数组求和的常用方法总结【5种方法】
2019/01/14 Javascript
详解使用Nuxt.js快速搭建服务端渲染(SSR)应用
2019/03/13 Javascript
vue接通后端api以及部署到服务器操作
2020/08/13 Javascript
python实现忽略大小写对字符串列表排序的方法
2014/09/25 Python
Python tkinter事件高级用法实例
2018/01/31 Python
python scrapy爬虫代码及填坑
2019/08/12 Python
python接口调用已训练好的caffe模型测试分类方法
2019/08/26 Python
基于Python共轭梯度法与最速下降法之间的对比
2020/04/02 Python
基于Tensorflow读取MNIST数据集时网络超时的解决方式
2020/06/22 Python
2021年的Python 时间轴和即将推出的功能详解
2020/07/27 Python
利用python3筛选excel中特定的行(行值满足某个条件/行值属于某个集合)
2020/09/04 Python
如何将anaconda安装配置的mmdetection环境离线拷贝到另一台电脑
2020/10/15 Python
Python使用Pygame绘制时钟
2020/11/29 Python
巧克力领导品牌瑞士莲美国官网:Lindt Chocolate美国
2016/08/25 全球购物
西班牙在线宠物商店:zooplus.es
2017/02/24 全球购物
AVI-8手表美国官方商店:AVI-8 USA
2019/04/10 全球购物
优秀老员工获奖感言
2014/02/15 职场文书
劳动竞赛活动方案
2014/02/20 职场文书
乡镇民主生活会发言材料
2014/10/20 职场文书
小学生暑假安全公约
2015/07/14 职场文书