el-table(elementui)表格合计行使用以及滚动条默认样式修改

一、el-table新增合计行以及el-table展示数据出现的问题

1. 使用合计行

  • el-table的属性show-summary设为true,即可在表格尾部展示合计行。默认情况下,第一列不展示数据,而显示合计二字,可以通过sum-text自己配置,其余列会显示本列所有数据的和。
  • __自定义合计逻辑:__在el-table标签使用summary-method传入一个方法,该方法会返回一个数组,该数组的各项会显示在合计行的各列。
  • 自定义合计逻辑示例代码:
javascript 复制代码
// tamplate标签中el-table写法,getTotal为自定义计算合计行数据的函数
// summary为boolean型变量,用于控制是否显示合计行
<el-table
      :data="tableData"
      ref="scrollTable"
      :summary-method="getTotal"
      :show-summary="summary"
></table>

// script标签methods中计算合计行数据的函数
 getTotal(params) {
      // columns table的所有列
      const { columns } = params;

      let sums = []; // 要返回并展示在界面的数组
      columns.forEach((element, index) => {
        if (index == 0) {
          sums[index] = "合计";
        } 
        // 这个地方自己定义逻辑
        // 给sums数组赋值 ,下标为i(从0开始),则展示中合计行第i+1列
      });
      return sums;
    },

2. table新增合计行后产生的问题以及解决方法

(1)问题1
  • 产生问题:添加合计行之后,横向滚动条位于合计行上方,希望滚动条显示在合计行下面
  • 解决:el-table分为headerWrapper、bodyWrapper、footerWrapper三部分,界面中显示的横向滚动条实际上是bodyWrapper的滚动条,通过一些内外边距设置,让滚动条挪到表格最下方
css 复制代码
 // 滚动区域样式
  .el-table--scrollable-x .el-table__body-wrapper {
    padding-bottom: 50px;
  }
  .el-table__footer-wrapper {
    margin-top: -66px;//66 60
    overflow-y: scroll !important;
  }
  .el-table__fixed-footer-wrapper {
    padding-bottom: 15px;//15 9
  }
(2)问题2
  • 产生问题:如果table左侧设置了固定列,那么横线滚动条处于固定列下方时无法拖拽进行移动
  • 产生原因:合计行使用了position: absolute定位,且设置了层级高于其他元素,会遮挡底下的内容
  • 解决:给左侧固定列设置bottom(根据自己界面调整),留出固定列底部的位置显示层级较低的滚动条
css 复制代码
::v-deep .el-table__fixed {
    height: auto !important;
    bottom: 9px !important;
  }

3. el-table横向滚动条滑到最右边,会出现表头和内容错位

(1)问题描述
  • 问题描述:当el-table表格有横向滚动条和纵向滚动条,把横向滚动条拉到最右边,表格的表头会和内容错位(表头和内容列不对齐)
  • 问题产生原因:在el-table有纵向滚动条时,el-table__body-wrapper + 纵向滚动条的宽度是100%,故表格内容区域宽度不足100%,而表头el-table__header-wrapper的宽度仍为100%,表格内容实际宽度小于表头,因此造成错位
(2)解决问题
  • 思路:给表格表头的宽度设置和表格内容一样即可100% - 纵向滚动条宽度
  • 代码实现
css 复制代码
::v-deep {
  .el-table__header-wrapper {
  	// 这里我设置的纵向滚动条宽度为8px
    width: calc(100% - 8px) 
  }
}

二、修改el-table默认滚动条样式

  • -webkit-scrollbar 表示整个滚动条
  • -webkit-scrollbar-thumb 滑块
  • -webkit-scrollbar-track 轨道,里面有滑块
  • -webkit-scrollbar-button 滚动条轨道的两端按钮,允许通过点击微调小方块的位置
  • 代码示例:
css 复制代码
::v-deep .el-table__body-wrapper::-webkit-scrollbar {
	      width: 10px; /*滚动条宽度*/
	      height: 10px; /*滚动条高度*/
	  }

可以根据以上几个样式组成部分修改滚动条默认样式,比如宽高、以及是否显示等(通过overflow设置)。

相关推荐
REDcker20 分钟前
浏览器端Web程序性能分析与优化实战 DevTools指标与工程清单
开发语言·前端·javascript·vue·ecmascript·php·js
donecoding2 小时前
一个 sudo 引发的血案:npm 全局包权限错乱彻底修复
前端·node.js·前端工程化
风骏时光牛马2 小时前
Raku正则匹配与数据批量处理实操案例
前端
nbwenren2 小时前
2026实测:Gemini 3 镜像站视觉能力实践——拍照原型图,一键生成 HTML+CSS 代码
前端·css·html
Lee川2 小时前
Prisma 实战指南:像搭积木一样设计古诗词数据库
前端·数据库·后端
jinanwuhuaguo2 小时前
(第二十九篇)OpenClaw 实时与具身的跃迁——从异步孤岛到数字世界的“原住民”
前端·网络·人工智能·重构·openclaw
广州华水科技2 小时前
深度测评2026年单北斗GNSS位移监测系统推荐,与高口碑变形监测设备一同引领行业新风尚
前端
Alice-YUE3 小时前
【js高频八股】防抖与节流
开发语言·前端·javascript·笔记·学习·ecmascript
是上好佳佳佳呀4 小时前
【前端(十一)】JavaScript 语法基础笔记(多语言对比)
前端·javascript·笔记