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 相关文章推荐
ESLint 是如何检查 .vue 文件的
Nov 30 Vue.js
如何实现vue的tree组件
Dec 03 Vue.js
Vue 实现一个简单的鼠标拖拽滚动效果插件
Dec 10 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
Vue 组件注册全解析
Dec 17 Vue.js
Vue实现指令式动态追加小球动画组件的步骤
Dec 18 Vue.js
vue 使用class创建和清除水印的示例代码
Dec 25 Vue.js
Vue SPA 首屏优化方案
Feb 26 Vue.js
vue如何使用模拟的json数据查看效果
Mar 31 Vue.js
vue实现书本翻页动画效果实例详解
Apr 08 Vue.js
vue实现省市区联动 element-china-area-data插件
Apr 22 Vue.js
vue css 相对路径导入问题级踩坑记录
Jun 05 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网页显示各种语法错误
2013/09/23 PHP
php实现删除指定目录下相关文件的方法
2014/10/20 PHP
Laravel推荐使用的十个辅助函数
2019/05/10 PHP
Yii中特殊行为ActionFilter的使用方法示例
2020/10/18 PHP
可以显示单图片,多图片ajax请求的ThickBox3.1类下载
2007/12/23 Javascript
IE8 中使用加速器(Activities)
2010/05/14 Javascript
js 第二代身份证号码的验证机制代码
2011/05/12 Javascript
同一页面多个商品倒计时JS 基于面向对象的javascript
2012/02/16 Javascript
基于JQuery实现鼠标点击文本框显示隐藏提示文本
2012/02/23 Javascript
JS:window.onload的使用介绍
2013/11/13 Javascript
jQuery动态创建html元素的常用方法汇总
2014/09/05 Javascript
javascript制作的简单注册模块表单验证
2015/04/13 Javascript
jquery实现简单的banner轮播效果【实例】
2016/03/30 Javascript
强大的 Angular 表单验证功能详细介绍
2017/05/23 Javascript
用js实现before和after伪类的样式修改的示例代码
2017/09/07 Javascript
vue.js $refs和$emit 父子组件交互的方法
2017/12/20 Javascript
react实现点击选中的li高亮的示例代码
2018/05/24 Javascript
JS实现区分中英文并统计字符个数的方法示例
2018/06/09 Javascript
Vue-router 中hash模式和history模式的区别
2018/07/24 Javascript
微信小程序开发之自定义tabBar的实现
2018/09/06 Javascript
React Native中Mobx的使用方法详解
2018/12/04 Javascript
基于JavaScript实现简单扫雷游戏
2021/01/02 Javascript
详解Python中find()方法的使用
2015/05/18 Python
python logging通过json文件配置的步骤
2020/04/27 Python
完美解决keras保存好的model不能成功加载问题
2020/06/11 Python
英国办公用品商店:Office Outlet
2018/04/04 全球购物
即时搜索数百万张门票:SeatsForEveryone.com
2018/08/26 全球购物
可以在一个PHP文件里面include另外一个PHP文件两次吗
2015/05/22 面试题
劲霸男装广告词改编版
2014/03/21 职场文书
试用期转正工作总结2015
2015/05/28 职场文书
超级礼物观后感
2015/06/15 职场文书
分析Netty直接内存原理及应用
2021/06/14 Java/Android
springboot项目以jar包运行的操作方法
2021/06/30 Java/Android
Python anaconda安装库命令详解
2021/10/16 Python
使用HttpSessionListener监听器实战
2022/03/17 Java/Android
DIY胆机必读:各国电子管评价
2022/04/06 无线电