首页 > 其他分享 >ElementUI的Table控件,合并列

ElementUI的Table控件,合并列

时间:2024-03-25 10:46:03浏览次数:21  
标签:控件 spanMap ElementUI 合并 length spanColumns 第一列 Table tableData

x

//计算需要合并的列
                            for (let k = 0; k < that.tableData.length; k++) {
                                //判断当前类型是否与下一个类型一致,一致则两个单元格合并。
                                if ((k + 1) < that.tableData.length && (that.tableData[k].ITEM_TYPE == that.tableData[k + 1].ITEM_TYPE || that.tableData[k].ITEM_TYPE == that.tableData[k - 1].ITEM_TYPE)) {
                                    that.spanColumns.push(k);
                                }
                            }
                            console.log("that.spanColumns", that.spanColumns);

                            for (let m = 0; m < that.spanColumns.length; m++) {
                                if (m == 0) {
                                    that.spanMap.push({ startRowIndex: that.spanColumns[m], endRowIndex: that.spanColumns[m] + 1 });
                                } else {
                                    for (let n = 0; n < that.spanMap.length; n++) {
                                        if (that.spanMap[n].endRowIndex == that.spanColumns[m]) {
                                            that.spanMap[n].endRowIndex = that.spanColumns[m] + 1;
                                        }
                                    }
                                }
                            }
                            console.log("that.spanMap", that.spanMap);

控件

<el-table :data="tableData" :span-method="objectSpanMethod">

objectSpanMethod:

//合并第一列 row:当前行。column:当前列。rowIndex:当前行号,0开始。columnIndex:当前列号,0开始。
        objectSpanMethod({ row, column, rowIndex, columnIndex }) {
            //第一列
            if (columnIndex === 0) {
                //是否从此行开始合并
                let cur = that.spanMap.filter(function (v) {
                    return v.startRowIndex == rowIndex;
                });
                if (cur && cur.length > 0) {
                    return {
                        rowspan: cur[0].endRowIndex,//合并的行数
                        colspan: 1//合并的列数
                    };
                } else {
                    if (that.spanColumns.includes(rowIndex)) {
                        //被合并的行,第一列移除掉。返回都是0,就会移除此行的第一列。
                        return {
                            rowspan: 0,
                            colspan: 0
                        };
                    } else {
                        //不需要合并的行,正常输出第一列。返回1,就是正常输出,不做任何改变。
                        return {
                            rowspan: 1,
                            colspan: 1
                        };
                    }
                }
            }
        },

ele:https://element.eleme.cn/#/zh-CN/component/table
JS高阶函数、JS数组响应式操作、JS判断数组是否包含某个元素 https://www.cnblogs.com/xsj1989/p/13098537.html

标签:控件,spanMap,ElementUI,合并,length,spanColumns,第一列,Table,tableData
From: https://www.cnblogs.com/xsj1989/p/18093860

相关文章

  • CompletableFuture概述、创建方式、常用API、电商比价需求
    ①.CompletableFuture概述②.CompletableFuture创建方式③.CompletableFutureAPI①.获得结果和触发计算(get、getNow、join、complete)②.对计算结果进行处理(thenApply、handle)③.对计算结果进行消费(thenRun、thenAccept、thenApply)④.对计算速度进行选用(appl......
  • DataTable 转为 List<dynamic>
     staticList<dynamic>DataTableToListDynamic(DataTabledt){List<dynamic>dynamicList=newList<dynamic>();foreach(DataRowrowindt.Rows){dynamicdynamicObj=newExpandoObject();varexpandoDi......
  • netfilter与iptables的基本原理
    一、netfilter与iptables简介1.netfilter是什么Netfilter自1998年开发,2000年合并到LinuxKernelv2.4版本,是Linux内核提供的一个流量处理框架,用于实现对IP数据包的控制和过滤等功能。即:netfilter是Linux内核自带的防火墙架构。2.iptables是什么ip......
  • 解决主流办法没能HttpMediaTypeNotAcceptableException: No acceptable representatio
    问题描述:        写web项目时遇到一些小问题,前端请求后端死活报406错误问题,一些网络上主流的方法试过之后仍然无法解决问题。问题分析:        @RestController会在返回结果时直接返回对象,再由Spring将对象转为json,如果结果对象没有get方法,就会报以上错误......
  • 【WPF应用11】如何对StackPanel中的控件进行间距设置?
    在WPF中,堆叠面板(StackPanel)是一个常用的布局控件,它允许您将子控件垂直或水平堆叠起来。在设计用户界面时,合理的间距设置可以提高界面的美观性和易用性。本文将介绍如何在StackPanel控件中设置控件之间的间距,以及如何使用Grid布局控件在X轴和Y轴上设置间距。1、在StackPanel......
  • 【WPF应用10】基本控件-StackPanel:布局原理与实际应用
    在WindowsPresentationFoundation(WPF)中,布局是用户界面设计的核心部分,它决定了控件如何排列和空间如何分配。WPF提供了一系列布局面板(Panel),以便开发者可以根据需要灵活地组织控件。在这些面板中,StackPanel是一个常用的布局控件,它按照子元素的顺序将它们堆叠起来。本文将深......
  • C# 异步控件 backgroundWorker
    //.net4.8WinformusingSystem;usingSystem.Collections.Generic;usingSystem.ComponentModel;usingSystem.Data;usingSystem.Drawing;usingSystem.Linq;usingSystem.Text;usingSystem.Threading.Tasks;usingSystem.Windows.Forms;usingSystem.Threading......
  • WPF中Image控件的绑定
    转载自:https://www.cnblogs.com/seekdream/p/5277237.html背景在我们平时的开发中会经常用到Image控件,通过设置Image控件的Source属性,我们可以加载图片,设置Image的source属性时可以使用相对路径也可以使用绝对路径,一般情况下建议使用绝对路径,类似于下面的形式 1......
  • [C#] .NET8增加了Arm架构的多寄存器的查表函数(VectorTableLookup/VectorTableLookupEx
    作者:zyl910发现.NET8增加了Arm架构的多寄存器的查表函数(VectorTableLookup/VectorTableLookupExtension),这给编写SIMD向量化算法带来了方便。一、指令说明在学习Arm的AdvSimd(Neon)指令集时,发现它的Lookup(查表)功能,类似X86的Sse系列指令集中的字节Shuffle(换位。如_mm_shuffle_epi......
  • antdesign protable 修改搜索区Form item的placeholder
    默认protable搜索去的placeholder为请输入或者请选择: 需要修改为其他内容,配置 constcolumns=[  {   title:'项目',   dataIndex:'project',   valueEnum:currentUser.projects.reduce((r,c)=>{    r[c]=c;    re......