首页 > 其他分享 >el-table合并行 根据id合并行

el-table合并行 根据id合并行

时间:2023-11-14 17:44:48浏览次数:27  
标签:el const spanArr index 合并 dataTable position id row

<template>
    <div>
        <el-table ref="table" :data="tabData" :span-method="objectSpanMethod">
            <el-table-column prop="name" label="名称" />
            <el-table-column prop="code" label="编码" />
        </el-table>
    </div>
</template>

<script>
    export default {
        data() {
            return {
                tabData: [],
                position: null,
                spanArr: []
            };
        },
        onl oad() {
            // 获取列表参数后走判断合并的方法
            // this.tabData = xxxxxx
            this.getSpanArr(this.tabData)
        },
        methods: {
            getSpanArr(e) {
                this.spanArr = []
                this.position = 0;
                let dataTable = e
                dataTable.forEach((item, index) => {
                    if (index === 0) {
                        this.spanArr.push(1);
                        this.position = 0;
                    } else {
                        // 当前元素与上一个元素 依据合并的值是否相同(例子中为mainId)
                        if (dataTable[index].mainId === dataTable[index - 1].mainId) {
                            this.spanArr[this.position] += 1;
                            this.spanArr.push(0);
                        } else {
                            this.spanArr.push(1);
                            this.position = index;
                        }
                    }
                })
            },

            objectSpanMethod({
                row,
                column,
                rowIndex,
                columnIndex //列index
            }) {
                //根据列的index 制定index为...的列合并
                if (columnIndex === 1 || columnIndex === 2) {
                    const _row = this.spanArr[rowIndex];
                    const _col = _row > 0 ? 1 : 0;
                    return {
                        rowspan: _row,
                        colspan: _col
                    };
                }
                //也可以根据列的字段名判断
                if (column.property === 'name' || column.property === 'code') {
                    const _row = this.spanArr[rowIndex]
                    const _col = _row > 0 ? 1 : 0
                    return {
                        rowspan: _row,
                        colspan: _col
                    }
                }
            }
        },
    };
</script>

 

标签:el,const,spanArr,index,合并,dataTable,position,id,row
From: https://www.cnblogs.com/czq091449/p/17832170.html

相关文章

  • 超时实现 select 计时器
     github.com\eclipse\[email protected]\token.go//WaitTimeoutimplementstheTokenWaitTimeoutmethod.func(b*baseToken)WaitTimeout(dtime.Duration)bool{  timer:=time.NewTimer(d)  select{  case<-b.complete:    if!tim......
  • 如何使用excel对数据表单进行转置
    要在Excel中对数据表单进行转置,可以按照以下步骤进行操作:1.打开Excel,并打开包含要转置的数据表单的工作簿。2.选中要转置的数据表单区域。确保选中的区域包含所有要转置的数据。3.在Excel的顶部菜单栏中找到“开始”选项卡,然后在“剪贴板”组中找到“剪切”按钮。4.单击“......
  • electron安全
    俗话说的好,安全大于天,保证electron应用的安全也是一项重要的事情,本章节将安全分为以下5个方面:源码泄漏asar源码保护应用安全编码安全下面将会依次介绍上述内容。7.1源码泄漏目前electron在源码安全做的不好,官方只用asar做了一下很没用的源码保护,到底有多没用呢?你只需要下......
  • Android 11 (MTK)状态栏图标反色-->跟随当前应用变化代码流程
    //StatusBar.javapublicvoidstart(){.............onSystemBarAppearanceChanged(mDisplayId,result.mAppearance,result.mAppearanceRegions,result.mNavbarColorManagedByIme);mAppFullscreen=result.mAppFullscreen;......
  • CF600E Lomsat gelral
    题意给定一棵根为\(1\)的有根树。每个节点有颜色,求每个节点子树内出现最多的颜色编号之和。SolDsuontree板子题。首先对于整棵树进行轻重链剖分,注意到一个关键性质:轻边只有\(log\)条。\(n^2\)的暴力是\(trivial\)的,不再赘述。注意到中间有很多节点被重复计算了......
  • 自动化ping测网络连通性监测与Excel自动记录
    根据现有提供海量ip进行检测网络质量,如果手动操作那将成为一项很难完成的操作。为了简化这一任务,可以使用Python自动化脚本,利用openpyxl和pythonping库,自动执行ping测试并记录结果到Excel文件。openpyxl:openpyxl是一个用于操作Excel文件的库。它允许你读取、写入和......
  • VUE 前端读取excel表格内容
    <el-uploadclass="upload-demo":action="''":show-file-list="false":auto-upload="false":before-upload="beforeUpload":on-success="handleSuccess&quo......
  • shell编程-循环结构
    shell循环-for语句foriin{取值范围}#for是关键字i是变量名in是关键字do#循环体的开始循环体done#循环体的结束实战1:[root@linux-serverscript]#vimfor.sh#!/usr/bin/envbash##Author:#Date:2019/**/**fo......
  • Halcon、HDevelop快速入门
    ​HDevelop基础一HDevelop概述    HDevelop是一款机器视觉的集成开发环境。下面将对HDevelop的界面内容做一下简单的介绍。界面介绍打开HDevelop,将看到以下画面。     如上图所示,打开HDevelop后可以看到4个窗口:图形窗口,算子窗口,变量窗口,程序窗口。其中......
  • 关于使用dataBinding找不到控件ID的问题
    前提提要:知道真相的我真的难受在应用级别gradle配置中开启了dataBinding在布局文件中使用了layoutactivity_main_dessert.xml是我的xml文件名使用databing的过程如下结果:大面积的控件ID找不到,真的难受解决方式:就是这里,名字太相似了,完全没注意......