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

 更新时间:2021年09月29日 16:33:14   作者:星雨我心愿  
这篇文章主要为大家详细介绍了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。

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

相关文章

  • 使用canvas实现一个vue弹幕组件功能

    使用canvas实现一个vue弹幕组件功能

    这篇文章主要介绍了使用canvas实现一个vue弹幕组件功能,非常不错,具有一定的参考借鉴价值,需要的朋友可以参考下
    2018-11-11
  • Vue3中局部组件和全局组件的使用教程详解

    Vue3中局部组件和全局组件的使用教程详解

    这篇文章主要为大家学习介绍了Vue3中局部组件和全局组件的使用方法,文中的示例代码讲解详细,具有一定的借鉴价值,需要的小伙伴可以学习一下
    2023-07-07
  • vue路由跳转router-link清除历史记录的三种方式(总结)

    vue路由跳转router-link清除历史记录的三种方式(总结)

    这篇文章主要介绍了vue路由跳转router-link清除历史记录的三种方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-04-04
  • Vue3生命周期Hooks原理与调度器Scheduler关系

    Vue3生命周期Hooks原理与调度器Scheduler关系

    这篇文章主要为大家介绍了Vue3生命周期Hooks原理与调度器Scheduler关系详解,有需要的朋友可以借鉴参考下,希望能够有所帮助,祝大家多多进步,早日升职加薪
    2022-07-07
  • vue关于页面刷新的几个方式解读

    vue关于页面刷新的几个方式解读

    这篇文章主要介绍了vue关于页面刷新的几个方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-05-05
  • 解决vue中el-tab-pane切换的问题

    解决vue中el-tab-pane切换的问题

    这篇文章主要介绍了解决vue中el-tab-pane切换的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-07-07
  • vue/cli安装报错及解决问题的方法图文详解

    vue/cli安装报错及解决问题的方法图文详解

    这篇文章主要给大家介绍了关于vue/cli安装报错及解决问题的方法,如果在安装@vue/cli时遇到错误,大家可以尝试以下步骤解决,需要的朋友可以参考下
    2023-07-07
  • 使用vue指令实现吸顶效果

    使用vue指令实现吸顶效果

    要想实现一个吸顶效果不是很难,网络上有很多教程,其中有一种就是通过fiexd加top来实现,今天突然就想做一个吸顶效果,因为最近都在用vue,所以想用vue来做一个吸顶效果的案例,感兴趣的朋友可以参考下
    2023-11-11
  • vue-cli随机生成port源码的方法

    vue-cli随机生成port源码的方法

    这篇文章主要介绍了vue-cli随机生成port源码的方法,文中给大家介绍了vue 随机色生成方法,需要的朋友可以参考下
    2019-09-09
  • 自带气泡提示的vue校验插件(vue-verify-pop)

    自带气泡提示的vue校验插件(vue-verify-pop)

    这篇文章主要为大家详细介绍了自带气泡提示的vue校验插件,vue-verify-pop的使用方法,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2017-04-04

最新评论