我的编程空间,编程开发者的网络收藏夹
学习永远不晚

vue使用el-table动态合并列及行

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

vue使用el-table动态合并列及行

本文实例为大家分享了vue使用el-table动态合并列及行的具体代码,供大家参考,具体内容如下

前两天项目中需要用到表单合并,特此记录,放便以后使用。

首先我使用的element-ui中的el-table,文档中提供span-method方法可以实现合并行或列,大家不熟悉的可以去看看element文档地址,但是文档提供的例子很简单,不能满足复杂的页面,所以需要处理一下数据。

如下代码:


getListDataForRowAndColumn(data){
            let self = this;
            self.rowAndColumn = [];
            self.rowRoomColumn = [];
            for (var i = 0; i < data.length; i++) {
                if (i === 0) {
                    // 如果是第一条记录(即索引是0的时候),向数组中加入1
                    self.rowAndColumn.push(1);
                    self.pos = 0;
                    self.rowRoomColumn.push(1);
                    self.posT = 0;
                } else {
                    //data[i].typeDesc就是你从接口读取的字段信息,下同
                    if (data[i].typeDesc === data[i - 1].typeDesc) {
                        // 如果typeDesc相等就累加,并且push 0
                        self.rowAndColumn[self.pos] += 1
                        self.rowAndColumn.push(0)
                        if (data[i].areaDesc === data[i - 1].areaDesc) {
                            // 如果areaDesc相等就累加,并且push 0
                            self.rowRoomColumn[self.posT] += 1
                            self.rowRoomColumn.push(0)
                        } else {
                            self.rowRoomColumn.push(1)
                            self.posT = i
                        }
                    } else {
                        // 不相等push 1
                        self.rowAndColumn.push(1)
                        self.pos = i;
                        self.rowRoomColumn.push(1)
                        self.posT = i
                    }
                }
            }
        },

以上代码就是来整理你的数据,注释写的很清楚了,相信大家都能看懂,真不行就打印出来看看。

处理完数据后就用到上面提到的span-method方法了。如图:

objectSpanMethod方法如下:


objectSpanMethod({ row, column, rowIndex, columnIndex }) {
            let self = this
            if (columnIndex === 1) {
                if (self.rowAndColumn[rowIndex]) {
                let rowNum = self.rowAndColumn[rowIndex];
                return {
                    rowspan: rowNum,
                    colspan: rowNum > 0 ? 1 : 0
                    }                                                   
                }
                return {
                    rowspan: 0,
                    colspan: 0
                }  
            }
            if (columnIndex === 2) {
                if (self.rowRoomColumn[rowIndex]) {
                let roomNum = self.rowRoomColumn[rowIndex];
                return {
                    rowspan: roomNum,
                    colspan: roomNum > 0 ? 1 : 0
                    }                                                   
                }
                return {
                    rowspan: 0,
                    colspan: 0
                }  
            }
        },

搞定,来看看看效果图吧

注意,使用这方法时一定要让后端经过排序后再传出来,否则页面可能会达不到你想要的效果。因为我是从第二列开始合并的,所以objectSpanMethod方法中的columnIndex从1开始的,可根据你的实际情况来。把从接口获取到的数据放到getListDataForRowAndColumn这方法里即可,记得定义rowAndColumn,rowRoomColumn。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持编程网。

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

vue使用el-table动态合并列及行

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

el-table表格动态合并行及合并行列实例详解

在使用el-table的时候经常会涉及到表格的列合并,包括表格操作列的合并,下面这篇文章主要给大家介绍了关于el-table表格动态合并行及合并行列的相关资料,文中通过实例代码介绍的非常详细,需要的朋友可以参考下
2022-11-13

vue中如何使用elementUI表格动态行合并

这篇文章主要介绍了vue中如何使用elementUI表格动态行合并,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
2022-11-13

Vue怎么使用ElemenUI对table的指定列进行合算

这篇文章主要介绍“Vue怎么使用ElemenUI对table的指定列进行合算”的相关知识,小编通过实际案例向大家展示操作过程,操作方法简单快捷,实用性强,希望这篇“Vue怎么使用ElemenUI对table的指定列进行合算”文章能帮助大家解
2023-07-05

Vue使用ElemenUI对table的指定列进行合算的方法

这篇文章主要介绍了Vue使用ElemenUI对table的指定列进行合算的方法,本文结合实例代码给大家介绍的非常详细,需要的朋友可以参考下
2023-03-08

MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合

场景在mapper接口层方法参数有id的数组和姓名的模糊搜索和类型的三个参数。现在需要将这三个参数传递在动态sql的xml中接受并进行判断不为空。然后查询数据库中记录在第一个参数id数组中的并且姓名是模糊搜索的并且类型是直接相等于的。注:博客: https:/
MyBatis中动态sql实现传递多个参数并使用if进行参数的判断和实现like模糊搜索以及foreach实现in集合
2020-04-27

编程热搜

目录