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 17 Vue.js
vue实现滚动鼠标滚轮切换页面
Dec 13 Vue.js
vue 实现基础组件的自动化全局注册
Dec 25 Vue.js
梳理一下vue中的生命周期
Dec 30 Vue.js
如何在vue中使用HTML 5 拖放API
Jan 14 Vue.js
vue 实现click同时传入事件对象和自定义参数
Jan 29 Vue.js
原生JS封装vue Tab切换效果
Apr 28 Vue.js
vue实现无缝轮播效果(跑马灯)
May 14 Vue.js
Vue项目打包、合并及压缩优化网页响应速度
Jul 07 Vue.js
Vue Element-ui表单校验规则实现
Jul 09 Vue.js
vue 实现弹窗关闭后刷新效果
Apr 08 Vue.js
vue判断按钮是否可以点击
Apr 09 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用Socket上传图片)
2013/10/30 PHP
ThinkPHP学习笔记(一)ThinkPHP部署
2014/06/22 PHP
搭建Vim为自定义的PHP开发工具的一些技巧
2015/12/11 PHP
Yii中Model(模型)的创建及使用方法
2015/12/28 PHP
DWZ+ThinkPHP开发时遇到的问题分析
2016/12/12 PHP
Extjs列表详细信息窗口新建后自动加载解决方法
2010/04/02 Javascript
jQuery powerFloat万能浮动层下拉层插件使用介绍
2010/12/27 Javascript
js中各浏览器中鼠标按键值的差异
2011/04/07 Javascript
页面加载完后自动执行一个方法的js代码
2014/09/06 Javascript
浅析JS操作DOM的一些常用方法
2016/05/13 Javascript
JS中Json数据的处理和解析JSON数据的方法详解
2016/06/29 Javascript
jQuery实现判断控件是否显示的方法
2017/01/11 Javascript
angular2系列之路由转场动画的示例代码
2017/11/09 Javascript
vue-cli webpack2项目打包优化分享
2018/02/07 Javascript
微信小程序中实现手指缩放图片的示例代码
2018/03/13 Javascript
JQuery Ajax动态加载Table数据的实例讲解
2018/08/09 jQuery
vue+Element-ui前端实现分页效果
2020/11/15 Javascript
js实现扫雷源代码
2020/11/27 Javascript
Vue 组件注册全解析
2020/12/17 Vue.js
django 在原有表格添加或删除字段的实例
2018/05/27 Python
Python图像处理之简单画板实现方法示例
2018/08/30 Python
Python使用Opencv实现图像特征检测与匹配的方法
2019/10/30 Python
详解Python 循环嵌套
2020/07/09 Python
python opencv角点检测连线功能的实现代码
2020/11/24 Python
CSS3 3D制作实战案例分析
2016/09/18 HTML / CSS
Html5调用手机摄像头并实现人脸识别的实现
2018/12/21 HTML / CSS
英国标准协会商店:BSI Shop
2019/02/25 全球购物
Noon埃及:埃及在线购物
2019/11/26 全球购物
阿迪达斯中国官网:Adidas中国
2020/12/14 全球购物
什么是Smart Navigation?
2016/07/03 面试题
中软国际Java程序员笔试题
2014/07/19 面试题
生物医学工程专业学生求职信范文分享
2013/12/14 职场文书
银行青年文明号事迹材料
2014/05/31 职场文书
动漫设计与制作专业推荐信
2014/07/07 职场文书
2015年度房地产工作总结
2015/04/09 职场文书
python基于tkinter实现gif录屏功能
2021/05/19 Python