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 相关文章推荐
jQuery布局插件UI Layout简介及使用方法
Apr 03 Javascript
查看图片(前进后退)功能实现js代码
Apr 24 Javascript
js操作滚动条事件实例
Jan 29 Javascript
jQuery实现冻结表头的方法
Mar 09 Javascript
Javascript中3个需要注意的运算符
Apr 02 Javascript
javascript解决小数的加减乘除精度丢失的方案
May 31 Javascript
AngularJS入门教程之Cookies读写操作示例
Nov 02 Javascript
jQuery插件jquery.kxbdmarquee.js实现无缝滚动效果
Feb 15 Javascript
js实现导航吸顶效果
Feb 24 Javascript
微信小程序wx.navigateTo中events属性实现页面间通信传值,数据同步
Jul 13 Javascript
js判断密码强度的方法
Mar 18 Javascript
vue中defineProperty和Proxy的区别详解
Nov 30 Vue.js
详解关于表格合并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
php几个预定义变量$_SERVER用法小结
2014/11/07 PHP
php编写批量生成不重复的卡号密码代码
2015/05/14 PHP
PHP IDE phpstorm 常用快捷键
2015/05/18 PHP
php判断是否为ajax请求的方法
2016/11/29 PHP
解决laravel 表单提交-POST 异常的问题
2019/10/15 PHP
PHP pthreads v3下同步处理synchronized用法示例
2020/02/21 PHP
JS如何将UTC格式时间转本地格式
2013/09/04 Javascript
用IE重起计算机或者关机的示例代码
2014/03/10 Javascript
jQuery实现360°全景拖动展示
2015/03/18 Javascript
浅谈javascript中的闭包
2015/05/13 Javascript
ion content 滚动到底部会遮住一部分视图的快速解决方法
2016/09/06 Javascript
JS 根据子网掩码,网关计算出所有IP地址范围示例
2020/04/23 Javascript
jQuery双向列表选择器DIV模拟版
2016/11/01 Javascript
JS实现字符串中去除指定子字符串方法分析
2018/05/17 Javascript
JQuery属性操作与循环用法示例
2019/05/15 jQuery
vue2.0项目集成Cesium的实现方法
2019/07/30 Javascript
jQuery实现判断滚动条滚动到document底部的方法分析
2019/08/27 jQuery
jQuery实现简单弹幕效果
2019/11/28 jQuery
Vue使用Three.js加载glTF模型的方法详解
2020/06/14 Javascript
python原始套接字编程示例分享
2014/02/21 Python
python通过yield实现数组全排列的方法
2015/03/18 Python
wxPython定时器wx.Timer简单应用实例
2015/06/03 Python
Python上传package到Pypi(代码简单)
2016/02/06 Python
Python基于FTP模块实现ftp文件上传操作示例
2018/04/23 Python
OPENCV去除小连通区域,去除孔洞的实例讲解
2018/06/21 Python
pytorch多GPU并行运算的实现
2019/09/27 Python
Python time库基本使用方法分析
2019/12/13 Python
django美化后台django-suit的安装配置操作
2020/07/12 Python
css3如何绘制一个圆圆的loading转圈动画
2018/01/09 HTML / CSS
副厂长岗位职责
2014/02/02 职场文书
物业消防安全责任书
2014/07/23 职场文书
医院党员公开承诺书
2014/08/30 职场文书
项目经理岗位职责范本
2015/04/01 职场文书
餐厅保洁员岗位职责
2015/04/10 职场文书
网络研修心得体会
2016/01/08 职场文书
Pytorch 如何加速Dataloader提升数据读取速度
2021/05/28 Python