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 13 Vue.js
vue实现图片裁剪后上传
Dec 16 Vue.js
Vue仿百度搜索功能
Dec 28 Vue.js
Vue实现简单计算器
Jan 20 Vue.js
Vue 集成 PDF.js 实现 PDF 预览和添加水印的步骤
Jan 22 Vue.js
vue中h5端打开app(判断是安卓还是苹果)
Feb 26 Vue.js
vue中axios封装使用的完整教程
Mar 03 Vue.js
vue路由实现登录拦截
Mar 24 Vue.js
Element-ui Layout布局(Row和Col组件)的实现
Dec 06 Vue.js
vue ref如何获取子组件属性值
Mar 31 Vue.js
Vue操作Storage本地化存储
Apr 29 Vue.js
vue-treeselect的基本用法以及解决点击无法出现拉下菜单
Apr 30 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
三国漫画《火凤燎原》宣布动画化PV放出 预计2020年播出
2020/03/08 国漫
php数组中删除元素之重新索引的方法
2014/09/16 PHP
PHP使用PDO连接ACCESS数据库
2015/03/05 PHP
php格式文件打开的四种方法
2018/02/24 PHP
extJs 文本框后面加上说明文字+下拉列表选中值后触发事件
2009/11/27 Javascript
JQuery UI DatePicker中z-index默认为1的解决办法
2010/09/28 Javascript
js左侧三级菜单导航实例代码
2013/09/13 Javascript
可编辑下拉框的2种实现方式
2014/06/13 Javascript
JS实现判断滚动条滚到页面底部并执行事件的方法
2014/12/18 Javascript
javascript基本包装类型介绍
2015/04/10 Javascript
jQuery动画显示和隐藏效果实例演示(附demo源码下载)
2015/12/31 Javascript
微信小程序 wx.request方法的异步封装实例详解
2017/05/18 Javascript
使用Webpack提高Vue.js应用的方式汇总(四种)
2017/07/10 Javascript
webpack external模块的具体使用
2018/03/10 Javascript
Bootstrap table中toolbar新增条件查询及refresh参数使用方法
2018/05/18 Javascript
小程序click-scroll组件设计
2019/06/18 Javascript
vue实现吸顶、锚点和滚动高亮按钮效果
2019/10/21 Javascript
基于node+websocket+html实现腾讯课堂聊天室聊天功能
2020/03/04 Javascript
JS使用Chrome浏览器实现调试线上代码
2020/07/23 Javascript
[45:17]DOTA2-DPC中国联赛定级赛 Phoenix vs DLG BO3第三场 1月9日
2021/03/11 DOTA
python使用7z解压软件备份文件脚本分享
2014/02/21 Python
python 3.5实现检测路由器流量并写入txt的方法实例
2017/12/17 Python
Python如何获得百度统计API的数据并发送邮件示例代码
2019/01/27 Python
Python 存储字符串时节省空间的方法
2019/04/23 Python
HTML5之WebGL 3D概述(下)—借助类库开发及框架介绍
2013/01/31 HTML / CSS
英国领先的鞋类零售商和顶级品牌的官方零售商:Wynsors
2020/02/17 全球购物
挂科检讨书范文
2014/02/20 职场文书
现金出纳岗位职责
2014/03/15 职场文书
青年文明号口号
2014/06/17 职场文书
银行奉献演讲稿
2014/09/16 职场文书
留学推荐信英文范文
2015/03/26 职场文书
2015年村级财务管理制度
2015/08/04 职场文书
公司备用金管理制度
2015/08/04 职场文书
2016廉洁从业学习心得体会
2016/01/19 职场文书
如何解决flex文本溢出问题小结
2022/07/15 HTML / CSS
Pygame游戏开发之太空射击实战敌人精灵篇
2022/08/05 Python