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 相关文章推荐
浅析VUE防抖与节流
Nov 24 Vue.js
vue基于Echarts的拖拽数据可视化功能实现
Dec 04 Vue.js
vue图片裁剪插件vue-cropper使用方法详解
Dec 16 Vue.js
vue监听滚动事件的方法
Dec 21 Vue.js
vue 动态创建组件的两种方法
Dec 31 Vue.js
vue 实现图片懒加载功能
Dec 31 Vue.js
如何在vue中使用video.js播放m3u8格式的视频
Feb 01 Vue.js
学习 Vue.js 遇到的那些坑
Feb 02 Vue.js
vue使用refs获取嵌套组件中的值过程
Mar 31 Vue.js
如何优化vue打包文件过大
Apr 13 Vue.js
vue.js 使用原生js实现轮播图
Apr 26 Vue.js
Vue2项目中对百度地图的封装使用详解
Jun 16 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学习之php4与php5之间会穿梭一点点感悟
2007/05/03 PHP
PHP使用DirectoryIterator显示下拉文件列表的方法
2015/03/13 PHP
列举PHP的Yii 2框架的开发优势
2015/07/03 PHP
解决PHP程序运行时:Fatal error: Maximum execution time of 30 seconds exceeded in的错误提示
2016/11/25 PHP
PHP 根据key 给二维数组分组
2016/12/09 PHP
使Ext的Template可以解析二层的json数据的方法
2007/12/22 Javascript
JavaScript中的继承方式详解
2015/02/11 Javascript
JavaScript中reduce()方法的使用详解
2015/06/09 Javascript
js显示当前日期时间和星期几
2015/10/22 Javascript
javascript实现获取浏览器版本、浏览器类型
2015/12/02 Javascript
深入理解JavaScript函数参数(推荐)
2016/07/26 Javascript
ES6通过babel转码使用webpack使用import关键字
2016/12/13 Javascript
详解Js中的模块化是如何实现的
2017/10/18 Javascript
Vue-Router2.X多种路由实现方式总结
2018/02/09 Javascript
vue引用js文件的多种方式(推荐)
2018/05/17 Javascript
Vue自定义属性实例分析
2019/02/23 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
express如何解决ajax跨域访问session失效问题详解
2019/06/20 Javascript
详解JS深拷贝与浅拷贝
2020/08/04 Javascript
Linux下使用python自动修改本机网关代码分享
2015/05/21 Python
Python中关键字nonlocal和global的声明与解析
2017/03/12 Python
Python基础教程之浅拷贝和深拷贝实例详解
2017/07/15 Python
Python机器学习之scikit-learn库中KNN算法的封装与使用方法
2018/12/14 Python
Pytorch之Variable的用法
2019/12/31 Python
python如何获取apk的packagename和activity
2020/01/10 Python
python与pycharm有何区别
2020/07/01 Python
CSS3 filter(滤镜)实现网页灰色或者黑色模式的示例代码
2021/02/24 HTML / CSS
HTML5 canvas标签实现刮刮卡效果
2015/04/24 HTML / CSS
UGG美国官网:购买UGG雪地靴、拖鞋和鞋子
2017/12/31 全球购物
英国美术用品购物网站:Cass Art
2019/10/08 全球购物
德国最大的婴儿用品网上商店:Kidsroom.de(支持中文)
2020/09/02 全球购物
优秀党员推荐材料
2014/12/18 职场文书
2014年度考核工作总结
2014/12/24 职场文书
幼儿园家长工作总结2015
2015/04/25 职场文书
追悼词范文大全
2015/06/23 职场文书
用Python爬取英雄联盟的皮肤详细示例
2021/12/06 Python