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实现表格合并功能
Dec 01 Vue.js
VUE中鼠标滚轮使div左右滚动的方法详解
Dec 14 Vue.js
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
Dec 30 Vue.js
vue中父子组件的参数传递和应用示例
Jan 04 Vue.js
vue3自定义dialog、modal组件的方法
Jan 04 Vue.js
vue实现防抖的实例代码
Jan 11 Vue.js
Vue仿Bibibili首页的问题
Jan 21 Vue.js
如何在 Vue 中使用 JSX
Feb 14 Vue.js
vue+django实现下载文件的示例
Mar 24 Vue.js
Vue详细的入门笔记
May 10 Vue.js
Vue实现tab导航栏并支持左右滑动功能
Jun 28 Vue.js
Vue的生命周期一起来看看
Feb 24 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
基于mysql的bbs设计(四)
2006/10/09 PHP
php中Array2xml类实现数组转化成XML实例
2014/12/08 PHP
PHP正则表达式函数preg_replace用法实例分析
2020/06/04 PHP
JS 两个字符串时间的天数差计算
2013/08/25 Javascript
javascript使用smipleChart实现简单图表
2015/01/02 Javascript
javascript中对Date类型的常用操作小结
2016/05/19 Javascript
js前端面试题及答案整理(一)
2016/08/26 Javascript
扩展jquery easyui tree的搜索树节点方法(推荐)
2016/10/28 Javascript
jQuery 移动端拖拽(模块化开发,触摸事件,webpack)
2016/10/28 Javascript
JS实现数组去重方法总结(六种方法)
2017/07/14 Javascript
jQuery实现上传图片前预览效果功能
2017/08/03 jQuery
jquery实现回车键触发事件(实例讲解)
2017/11/21 jQuery
原生JS实现的碰撞检测功能示例
2018/05/18 Javascript
Vue在页面数据渲染完成之后的调用方法
2018/09/11 Javascript
通过angular CDK实现页面元素拖放的步骤详解
2020/07/01 Javascript
Vue-cli assets SubDirectory及PublicPath区别详解
2020/08/18 Javascript
[59:08]Ti4 冒泡赛第二天 NEWBEE vs Titan 2
2014/07/15 DOTA
Python中生成器和yield语句的用法详解
2015/04/17 Python
python从入门到精通 windows安装python图文教程
2019/05/18 Python
python3用PIL把图片转换为RGB图片的实例
2019/07/04 Python
利用python实现汉字转拼音的2种方法
2019/08/12 Python
python集合常见运算案例解析
2019/10/17 Python
python 实现简单的FTP程序
2019/12/27 Python
python scatter函数用法实例详解
2020/02/11 Python
改变 Python 中线程执行顺序的方法
2020/09/24 Python
澳洲女装时尚在线:Blue Bungalow
2018/05/05 全球购物
世界上最大的高分辨率在线图片库:Alamy
2018/07/07 全球购物
美国在线购买空气净化器、除湿器、加湿器网站:AllergyBuyersClub
2021/03/16 全球购物
回门宴答谢词
2014/01/13 职场文书
公司聘任书模板
2014/03/29 职场文书
2014年党风建设工作总结
2014/11/19 职场文书
2015年国庆节演讲稿范文
2015/07/30 职场文书
表扬信范文
2019/04/22 职场文书
南阳市白酒市场的调查报告
2019/11/08 职场文书
Win11筛选键导致键盘失灵怎么解决? Win11关闭筛选键的技巧
2022/04/08 数码科技
Windows Server 2016服务器用户管理及远程授权图文教程
2022/08/14 Servers