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 30 Vue.js
vue $router和$route的区别详解
Dec 02 Vue.js
vue中activated的用法
Jan 03 Vue.js
vue-resource 拦截器interceptors使用详解
Jan 18 Vue.js
详解Vue.js 可拖放文本框组件的使用
Mar 03 Vue.js
如何使用vue3打造一个物料库
May 08 Vue.js
Vue接口封装的完整步骤记录
May 14 Vue.js
Vue3.0 手写放大镜效果
Jul 25 Vue.js
一篇文章告诉你如何实现Vue前端分页和后端分页
Feb 18 Vue.js
Vue组件更新数据v-model不生效的解决
Apr 02 Vue.js
如何优化vue打包文件过大
Apr 13 Vue.js
vue特效之翻牌动画
Apr 20 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版(5)
2006/10/09 PHP
jQuery html()等方法介绍
2009/11/18 Javascript
js触发asp.net的Button的Onclick事件应用
2013/02/02 Javascript
js关闭浏览器窗口及检查浏览器关闭事件
2013/09/03 Javascript
jQuery实现的购物车物品数量加减功能代码
2016/11/16 Javascript
JS仿京东移动端手指拨动切换轮播图效果
2020/04/10 Javascript
微信小程序上传图片到服务器实例代码
2017/11/07 Javascript
微信小程序实现简单input正则表达式验证功能示例
2017/11/30 Javascript
浏览器调试动态js脚本的方法(图解)
2018/01/19 Javascript
koa大型web项目中使用路由装饰器的方法示例
2019/04/02 Javascript
详解关于html,css,js三者的加载顺序问题
2019/04/10 Javascript
JS实现选项卡效果的代码实例
2019/05/20 Javascript
JavaScript设计模型Iterator实例解析
2020/01/22 Javascript
如何在 Vue 中使用 JSX
2021/02/14 Vue.js
[03:28]2014DOTA2国际邀请赛 走近EG战队天才中单Arteezy
2014/07/12 DOTA
跟老齐学Python之字典,你还记得吗?
2014/09/20 Python
python自动化测试之从命令行运行测试用例with verbosity
2014/09/28 Python
python利用paramiko连接远程服务器执行命令的方法
2017/10/16 Python
python登录并爬取淘宝信息代码示例
2017/12/09 Python
python多进程提取处理大量文本的关键词方法
2018/06/05 Python
Python3.6简单反射操作示例
2018/06/14 Python
python读取Excel实例详解
2018/08/17 Python
基于python实现文件加密功能
2020/01/06 Python
Python替换NumPy数组中大于某个值的所有元素实例
2020/06/08 Python
几款Python编译器比较与推荐(小结)
2020/10/15 Python
CSS3 伪类选择器 nth-child()说明
2010/07/10 HTML / CSS
35款精致的 CSS3 和 HTML5 网页模板 推荐
2012/08/03 HTML / CSS
html5 canvas绘制放射性渐变色效果
2018/01/04 HTML / CSS
研发工程师的岗位职责
2013/11/18 职场文书
企业项目策划书
2014/01/11 职场文书
入党积极分子评语
2014/05/04 职场文书
学校三节实施方案
2014/06/09 职场文书
俄语专业毕业生求职信
2014/07/12 职场文书
2016幼儿园中班开学寄语
2015/12/03 职场文书
导游词范文之颐和园/重庆/云台山
2019/09/10 职场文书
MySQL中IF()、IFNULL()、NULLIF()、ISNULL()函数的使用详解
2021/06/26 MySQL