element-ui表格合并span-method的实现方法


Posted in Javascript onMay 21, 2019

先看一下合并后的样式,表格第二行,二三四列合并

element-ui表格合并span-method的实现方法

官网给我们提供了span-method的方法可以进行表格合并,有4个参数返回:row,column,rowIndex,columnIndex;row和column是表格的行和列,里面是当前行和列的值,也就是tableData里的值,rowIndex,columnIndex是当前行和列的序号

<el-table
:data="tableData6"
:span-method="arraySpanMethod"
border
style="width: 100%">
<el-table-column
prop="id"
label="ID"
width="180">
</el-table-column>
<el-table-column
prop="name"
label="姓名">
</el-table-column>
<el-table-column
prop="amount1"
sortable
label="数值 1">
</el-table-column>
<el-table-column
prop="amount2"
sortable
label="数值 2">
</el-table-column>
<el-table-column
prop="amount3"
sortable
label="数值 3">
</el-table-column>
<el-table-column
prop="amount4"
sortable
label="数值 4">
</el-table-column>
</el-table>
<script>
 export default {
  data() {
   return {



tableData6: [{




id: '12987122',




name: '王小虎',




amount1: '11',




amount2: '3.2',




amount3: 10,




amount4: 88



}, {




id: '12987123',




name: '王小虎',




amount1: '11',




amount2: '3.2',




amount3: 12,




amount4: 88



}, {




id: '12987124',




name: '王小虎',




amount1: '11',




amount2: '3.2',




amount3: 12,




amount4: 88



}, {




id: '12987125',




name: '王小虎',




amount1: '11',




amount2: '3.2',




amount3: 12,




amount4: 88



}, {




id: '12987126',




name: '王小虎',




amount1: '539',




amount2: '3.2',




amount3: 12,




amount4: 88



}]

   };
  },
  methods: {




/**
   * 表格合并
   * @param {*} param0
   * row 表格每一行的数据
   * column 表格每一列的数据
   * rowIndex 表格的行索引,不包括表头,从0开始
   * columnIndex 表格的列索引,从0开始
   */
  arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
   // console.log(row, column, rowIndex, columnIndex)
   // 打印出的数据就是表格当前行的数据,当前列的数据,索引
   if (rowIndex === 1) {
    // 合并第二行
    if (columnIndex === 1) {
     // 从第二列开始
     return [1, 3]
     // 这里返回的是行和列的合并数量,可以返回一个数组,也可以返回一个对象,效果一样
     // 这里rowspan为1是行有一行合并,colspan为3是列有3列合并,你要合并几行几列就写上相应的数字
     // return {
     //  rowspan: 1,
     //  colspan: 3
     // }
     // 这里要写一个else的判断,不然被合并列的原始数据会填充到合并之后的表格里
     // 这个判断是把合并的第3列,第4列的值省略,在合并的表格右边直接填原先第5列的值,合并了几列,就省略几列的值
    } else if (columnIndex === 2 || columnIndex === 3) {
     return [0, 0]
    }
   }
  }


</script>

再演示一下其他合并效果,第二行和第三行都有合并

element-ui表格合并span-method的实现方法

arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
   // console.log(row, column, rowIndex, columnIndex)
   // 打印出的数据就是表格当前行的数据,当前列的数据,索引
   if (rowIndex === 1 || rowIndex === 2) { // 在这里多加一个行的判断就行
    // 合并第二行
    if (columnIndex === 1) {
     // 从第二列开始
     return [1, 3]
     // 这里返回的是行和列的合并数量,可以返回一个数组,也可以返回一个对象,效果一样
     // 这里rowspan为1是行有一行合并,colspan为3是列有3列合并,你要合并几行几列就写上相应的数字
     // return {
     //  rowspan: 1,
     //  colspan: 3
     // }
     // 这里要写一个else的判断,不然被合并列的原始数据会填充到合并之后的表格里
     // 这个判断是把合并的第3列,第4列的值省略,在合并的表格右边直接填原先第5列的值,合并了几列,就省略几列的值
    } else if (columnIndex === 2 || columnIndex === 3) {
     return [0, 0]
    }
   }
  }

合并多行的情况

element-ui表格合并span-method的实现方法

arraySpanMethod ({ row, column, rowIndex, columnIndex }) {
   if (rowIndex === 1) {
    // 合并第二行
    if (columnIndex === 1) {
     // 从第二列开始
     return [2, 3]
     // 这里返回的是行和列的合并数量,可以返回一个数组,也可以返回一个对象,效果一样
     // 这里rowspan为2是行有两行合并,colspan为3是列有3列合并,你要合并几行几列就写上相应的数字

     // 这个判断是把第一行的第3列,第4列的值省略,在合并的表格右边直接填原先第5列的值,合并了几列,就省略几列的值
    } else if (columnIndex === 2 || columnIndex === 3) {
     return [0, 0]
    }
   } else if (rowIndex === 2 && (columnIndex === 1 || columnIndex === 2 || columnIndex === 3)) {
    // 第二行的第2个数,第3个数,第4个数都要省略
    return [0, 0]
   }
  }

PS: 这里写的方法是基于数据确定的情况,如果数据是由后台返回的情况,可以看一下我整理的另一篇关于表格合并方法的补充,https://3water.com/article/161677.htm

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
Javascript 继承机制的实现
Aug 12 Javascript
Javascript学习笔记1 数据类型
Jan 11 Javascript
理解JavaScript中worker事件api
Dec 25 Javascript
jQuery Chart图表制作组件Highcharts用法详解
Jun 01 Javascript
jquery 动态合并单元格的实现方法
Aug 26 Javascript
JavaScript基础——使用Canvas绘图
Nov 02 Javascript
JavaScript实现的CRC32函数示例
Nov 23 Javascript
JavaScript实现左右下拉框动态增删示例
Mar 09 Javascript
以v-model与promise两种方式实现vue弹窗组件
May 21 Javascript
vue组件(全局,局部,动态加载组件)
Sep 02 Javascript
bootstrap-table formatter 使用vue组件的方法
May 09 Javascript
jQuery实现数字华容道小游戏(实例代码)
Jan 16 jQuery
详解关于表格合并span-method方法的补充(表格数据由后台动态返回)
May 21 #Javascript
浅谈React Native 传参的几种方式(小结)
May 21 #Javascript
JavaScript函数式编程(Functional Programming)声明式与命令式实例分析
May 21 #Javascript
JS判断数组里是否有重复元素的方法小结
May 21 #Javascript
JS计算两个数组的交集、差集、并集、补集(多种实现方式)
May 21 #Javascript
vue路由守卫+登录态管理实例分析
May 21 #Javascript
vue实现跨域的方法分析
May 21 #Javascript
You might like
mysql5写入和读出乱码解决
2006/11/25 PHP
PHP程序开发范例学习之表单 获取文本框的值
2011/08/08 PHP
php5.3 goto函数介绍和示例
2014/03/21 PHP
使用PHP实现下载CSS文件中的图片
2015/12/06 PHP
Linux(CentOS)下PHP扩展PDO编译安装的方法
2016/04/07 PHP
php图片上传类 附调用方法
2016/05/15 PHP
PHP面向对象程序设计之对象克隆clone和魔术方法__clone()用法分析
2019/06/12 PHP
javascript中Date对象的getDay方法使用指南
2014/12/22 Javascript
浅谈Javascript Base64 加密解密
2014/12/28 Javascript
JavaScript实现16进制颜色值转RGB的方法
2015/02/09 Javascript
JavaScript实现简单的二级导航菜单实例
2015/04/15 Javascript
JS实现图片高亮展示效果实例
2015/11/24 Javascript
基于jQuery实现发送短信验证码后的倒计时功能(无视页面关闭)
2016/09/02 Javascript
jQuery子元素过滤选择器用法示例
2016/09/09 Javascript
javascript中活灵活现的Array对象详解
2016/11/30 Javascript
详解js几个绕不开的事件兼容写法
2017/08/30 Javascript
vue中echarts3.0自适应的方法
2018/02/26 Javascript
vue-router判断页面未登录自动跳转到登录页的方法示例
2018/11/04 Javascript
vue拖拽组件 vuedraggable API options实现盒子之间相互拖拽排序
2019/07/08 Javascript
解决Vue项目打包后打开index.html页面显示空白以及图片路径错误的问题
2019/10/25 Javascript
微信小程序服务器日期格式化问题
2020/01/07 Javascript
[02:51]2014DOTA2 TI小组赛总结中国军团全部进军钥匙球馆
2014/07/15 DOTA
Python完全新手教程
2007/02/08 Python
Python中无限元素列表的实现方法
2014/08/18 Python
python微信跳一跳系列之棋子定位像素遍历
2018/02/26 Python
python实现本地图片转存并重命名的示例代码
2018/10/27 Python
python 实现Harris角点检测算法
2020/12/11 Python
玩具反斗城天猫官方旗舰店:享誉全球的玩具店
2017/10/10 全球购物
Nordgreen台湾官网:极简北欧设计手表
2019/08/21 全球购物
德国帽子专家:Hutshopping
2019/11/03 全球购物
机械专业毕业生自荐信
2013/11/02 职场文书
单位办理社保介绍信
2014/01/10 职场文书
房屋租赁意向书
2014/04/01 职场文书
主题实践活动总结
2014/05/08 职场文书
审计班子对照检查材料
2014/08/27 职场文书
2015年街道办事处工作总结
2015/05/22 职场文书