首页 > 其他分享 >element-ui中的el-table底部固定指定行

element-ui中的el-table底部固定指定行

时间:2023-12-21 14:37:23浏览次数:34  
标签:el const column element ui return curr fixed any

1,固定一行合计的情况

   https://element.eleme.cn/#/zh-CN/component/table

  直接使用官方文档上的summary-method

 

 2,固定指定行或者多行

    使用样式去固定

例子:(计算列表数据的平均值,最大值,最小值并固定底部)

1,计算数据的值

protected calcData(data: any) {
        const sums: any = {};
        const max: any = {};
        const min: any = {};
        const columns = this.$refs["coverTable"]?.columns;
        columns.forEach((column: any, index: number) => {
            if (index === 0) {
                sums[column.property] = "平均值";
                max[column.property] = "最大值";
                min[column.property] = "最小值";
                return;
            }
            const values = data.map((item: any) => Number(item[column.property]));
            if (!values.every((value: any) => isNaN(value))) {
                // 总和
                sums[column.property] = values.reduce((prev: any, curr: any) => {
                    const value = Number(curr);
                    if (!isNaN(value)) {
                        return prev + curr;
                    } else {
                        return prev;
                    }
                }, 0);
                // 最大值
                max[column.property] = values.reduce((prev: any, curr: any) => {
                    const value = Number(curr);
                    if (!isNaN(value) && curr > prev) {
                        return curr;
                    } else {
                        return prev;
                    }
                });
                // 最小值
                min[column.property] = values.reduce((prev: any, curr: any) => {
                    const value = Number(curr);
                    if (!isNaN(value) && curr > prev) {
                        return prev;
                    } else {
                        return curr;
                    }
                });
            } else {
                sums[column.property] = "N/A";
                max[column.property] = "N/A";
                min[column.property] = "N/A";
            }
        });

        const average: any = {};
        for (const i in sums) {
            if (!isNaN(sums[i])) {
                average[i] = (sums[i] / data.length).toFixed(3);
            } else {
                average[i] = sums[i];
            }
        }

        if (this.tableData.length > 0) this.tableData.push(average, max, min);
    }

2,对要固定的三行设置class

 

// 行固定
    tableRowClassName(params: any) {
        const { row, rowIndex } = params;
        row.index = rowIndex;
        // 最后三行固定
        if (rowIndex + 1 === this.tableData.length - 2) {
            return `tr-fixed fixed-row2`;
        } else if (rowIndex + 1 === this.tableData.length - 1) {
            return `tr-fixed fixed-row1`;
        } else if (rowIndex + 1 === this.tableData.length) {
            return `tr-fixed fixed-row`;
        } else {
            return ``;
        }
    }

3, 样式控制

.el-table {
    .tr-fixed{
        display: table-row;
        position: sticky;
        bottom: 0;
        width: 100%;
        td {
            border: 1px solid #f3f5fa;
            background: #fff;
        }
    }
    .fixed-row{
        bottom: 0;
    }
    .fixed-row1{
        bottom: 0.5rem;
    }
    .fixed-row2{
        bottom: 1rem;
    }
}

4,效果

 

标签:el,const,column,element,ui,return,curr,fixed,any
From: https://www.cnblogs.com/cuijinlin/p/17918945.html

相关文章

  • 《Java架构师的第一性原理》32分布式计算之分布式缓存第3篇LevelDB
    互联网业务,绝大部分场景,会使用缓存服务。但有时候,确实会使用到进程内存缓存/数据库,这个时候,LevelDB就能派上用场了。啥是LevelDB?LevelDB是Google开发的,一个速度非常块的KV存储库(storagelibrary),它支持字符串的key与字符串的value,并且这种映射关系按key排序(orderedmapping)。L......
  • 前端导出export2Excel-多级表头
    1,export2Excel.js/*eslint-disable*///import{saveAs}from"file-saver";constsaveAs=require("file-saver");//importXLSXfrom"xlsx";importXLSXfrom"yxg-xlsx-style";importmomentfrom"moment&qu......
  • 大模型:高质量对话数据生成,Enhancing Chat Language Models by Scaling High-quality I
    EnhancingChatLanguageModelsbyScalingHigh-qualityInstructionalConversations论文地址1.导读不少工作已经意识到ChatGPT的秘密在于将指令微调和对其微调做到了极致,是继GPT-3后的又一次大力出奇迹。这篇文章来自清华大学5月份的工作,目的在于生成高质量的指令微调......
  • class065 A星、Floyd、Bellman-Ford与SPFA【算法】
    class065A星、Floyd、Bellman-Ford与SPFA【算法】2023-12-919:27:02算法讲解065【必备】A星、Floyd、Bellman-Ford与SPFAcode1A*算法模版//A*算法模版(对数器验证)packageclass065;importjava.util.PriorityQueue;//A*算法模版(对数器验证)publicclassCode01_AStarAlgori......
  • Java使用POI库读取或者生成Excel
    maven引入poi库,版本选4.1.2<!--excel工具--> <dependency> <groupId>org.apache.poi</groupId> <artifactId>poi-ooxml</artifactId> <version>${poi.version}</version> </dependency>应用,编辑excel有两种......
  • WepApi TaskCanceledException A任务已取消--async+await的方案替代task.Wait()可有效
     在.netCore中httpClient添加配置超时时长也没用services.AddHttpClient("PPHttpClient",config=>{config.DefaultRequestHeaders.Add("Accept","*/*");config.DefaultRequestHeaders.Add("A......
  • mybatisPlus注解fill = FieldFill.UPDATE和updateStrategy = FieldStrategy.IGNORED的
    由于当时使用mybatisPlus的updateById更新数据,习惯性的认为字段为null的不更新。但是上线后,出问题了。只更新状态字段,其他的一些属性竟然被置空了。赶紧排查,发现实体类中这些字段有fill=FieldFill.UPDATE,导致更新的时候如果这个字段为null也会更新为null。 同样作用的还有@T......
  • helm upgrade rancher server from v2.7.5 to v2.7.8 in kubernetes【helm 升级 ranch
    文章目录1.预备条件2.目标3.下载介质4.镜像入库5.升级rancher6.检查测试1.预备条件KubernetesClusterHelm&KubernetesOfflineDeployRancherv2.7.5Demo注意:如果你是在vcenter的虚拟机测试该应用,记得给当前版本做好快照,便于反复练习。2.目标rancherv2.7.5升级......
  • ubuntu 18.04.6 编译Preloader提示 没有规则可制作目标 /host_tools/altera/preloader
     生成spl_bsp后,在spl_bsp路径下输入make 提示:没有规则可制作目标/host_tools/altera/preloader/uboot-socfpga.tar.gz 原来要先运行 ./embeddedcommandshell.sh,并在该终端窗口下输入make   ......
  • JRebel2022.4 + idea23.2.2 插件使用详解
    下载下载jrebel插件(只能下载2022.4版本),其他版本是需要收费的安装中文路径安装将下载的文件解压,放到另一个全部是英文路径的地方例如这个.jrebel是激活后生成的,本来没有很正常在idea中安装插件修改路径最后一步激活地址:https://jrebel.qekang.com/可以......