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的prototype属性
Feb 11 Javascript
Javascript中的Array数组对象详谈
Mar 03 Javascript
jQuery UI库中dialog对话框功能使用全解析
Apr 23 Javascript
分享12个非常实用的JavaScript小技巧
May 11 Javascript
浅谈js中对象的使用
Aug 11 Javascript
AngularJs Injecting Services Into Controllers详解
Sep 02 Javascript
浅谈jQuery hover(over, out)事件函数
Dec 03 Javascript
微信小程序 参数传递实例代码
Mar 20 Javascript
简单实现jQuery弹窗效果
Oct 30 jQuery
ES6下子组件调用父组件的方法(推荐)
Feb 23 Javascript
vue-cli3.0使用及部分配置详解
Aug 29 Javascript
js实现限定区域范围拖拉拽效果
Nov 20 Javascript
详解关于表格合并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
windows下升级PHP到5.3.3的过程及注意事项
2010/10/12 PHP
yii权限控制的方法(三种方法)
2015/12/28 PHP
php英文单词统计器
2016/06/23 PHP
在php7中MongoDB实现模糊查询的方法详解
2017/05/03 PHP
PHP上传图片到数据库并显示的实例代码
2019/12/20 PHP
jQuery生成asp.net服务器控件的代码
2010/02/04 Javascript
javascript showModalDialog 内跳转页面的问题
2010/11/25 Javascript
jQuery制作拼图小游戏
2015/01/12 Javascript
JS实用的动画弹出层效果实例
2015/05/05 Javascript
asp.net中oracle 存储过程(图文)
2015/08/12 Javascript
AngularJS实现DOM元素的显示与隐藏功能
2016/11/22 Javascript
微信小程序手势操作之单触摸点与多触摸点
2017/03/10 Javascript
elemetUi 组件--el-upload实现上传Excel文件的实例
2017/10/27 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
vue2.0 elementUI制作面包屑导航栏
2018/02/22 Javascript
简述JS控制台的使用
2018/07/15 Javascript
vue项目中使用lib-flexible解决移动端适配的问题解决
2018/08/23 Javascript
vue页面切换项目实现转场动画的方法
2019/11/12 Javascript
JavaScript canvas实现跟随鼠标移动小球
2021/02/09 Javascript
Python 元组(Tuple)操作详解
2014/03/11 Python
python验证码识别的实例详解
2016/09/09 Python
python数据类型_元组、字典常用操作方法(介绍)
2017/05/30 Python
python正则实现提取电话功能
2018/02/24 Python
python模拟鼠标点击和键盘输入的操作
2019/08/04 Python
python创建文本文件的简单方法
2020/08/30 Python
Python3.9.1中使用match方法详解
2021/02/08 Python
Anya Hindmarch官网:奢侈设计师手袋及配饰
2018/11/15 全球购物
StubHub中国:购买和出售全球活动门票
2020/01/01 全球购物
杭州-飞时达软件有限公司.net笔面试
2012/04/28 面试题
是否可以从一个static方法内部发出对非static方法的调用?
2014/08/18 面试题
历史学专业大学生找工作的自我评价
2013/10/16 职场文书
成品仓管员岗位职责
2013/12/11 职场文书
七夕情人节促销方案
2014/06/07 职场文书
合同和协议有什么区别?
2014/10/08 职场文书
工作证明格式范文
2015/06/15 职场文书
Linux中sftp常用命令整理
2022/06/28 Servers