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中正确引用bind方法的应用
May 11 Javascript
JavaScript中的substr()方法使用详解
Jun 06 Javascript
浅谈jquery中delegate()与live()
Jun 22 Javascript
BootStrap轻松实现微信页面开发代码分享
Oct 21 Javascript
微信小程序 swiper组件轮播图详解及实例
Nov 16 Javascript
如何用JS/HTML将时间戳转换为“xx天前”的形式
Feb 06 Javascript
vue中各组件之间传递数据的方法示例
Jul 27 Javascript
js中url对象化管理分析
Dec 29 Javascript
JavaScript事件冒泡与事件捕获实例分析
Aug 01 Javascript
vue+mock.js实现前后端分离
Jul 24 Javascript
vue 获取url里参数的两种方法小结
Nov 12 Javascript
详解vue身份认证管理和租户管理
May 25 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
php设计模式 Builder(建造者模式)
2011/06/26 PHP
php获取网页中图片、DIV内容的简单方法
2014/06/19 PHP
php专用数组排序类ArraySortUtil用法实例
2015/04/03 PHP
基于PHP代码实现中奖概率算法可用于刮刮卡、大转盘等抽奖算法
2015/12/20 PHP
php 数据结构之链表队列
2017/10/17 PHP
Bootstrap每天必学之简单入门
2015/11/19 Javascript
不想让浏览器运行javascript脚本的方法
2015/11/20 Javascript
Javascript调试之console对象——你不知道的一些小技巧
2017/07/10 Javascript
vue脚手架及vue-router基本使用
2018/04/09 Javascript
JavaScript实现数组全排列、去重及求最大值算法示例
2018/07/30 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
Layui数据表格跳转到指定页的实现方法
2019/09/05 Javascript
[48:39]Ti4主赛事胜者组第一天 EG vs NEWBEE 2
2014/07/19 DOTA
Python写的服务监控程序实例
2015/01/31 Python
Python使用正则表达式实现文本替换的方法
2017/04/18 Python
selenium python浏览器多窗口处理代码示例
2018/01/15 Python
Python返回数组/List长度的实例
2018/06/23 Python
flask中的wtforms使用方法
2018/07/21 Python
Python重新加载模块的实现方法
2018/10/16 Python
Python脚本完成post接口测试的实例
2018/12/17 Python
python字符串替换第一个字符串的方法
2019/06/26 Python
python将字符串list写入excel和txt的实例
2019/07/20 Python
浅谈keras中的batch_dot,dot方法和TensorFlow的matmul
2020/06/18 Python
详解使用python爬取抖音app视频(appium可以操控手机)
2021/01/26 Python
美国在线家装零售商:Build.com
2016/09/02 全球购物
西班牙香水和化妆品网上商店:Douglas
2017/10/29 全球购物
阿拉伯时尚购物网站:Nisnass
2021/02/07 全球购物
阿尔卡特(中国)的面试题目
2014/08/20 面试题
.NET初级开发工程师面试题(包括Javascript)
2012/08/22 面试题
政法大学毕业生自荐信范文
2014/01/01 职场文书
初二学习计划书范文
2014/04/27 职场文书
传承焦裕禄精神思想汇报2014
2014/09/10 职场文书
2014派出所所长群众路线对照检查材料思想汇报
2014/09/18 职场文书
2016年大学生党员公开承诺书
2016/03/24 职场文书
用Python远程登陆服务器的步骤
2021/04/16 Python