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设置)。

相关推荐
崔庆才丨静觅18 小时前
hCaptcha 验证码图像识别 API 对接教程
前端
passerby606119 小时前
完成前端时间处理的另一块版图
前端·github·web components
掘了19 小时前
「2025 年终总结」在所有失去的人中,我最怀念我自己
前端·后端·年终总结
崔庆才丨静觅19 小时前
实用免费的 Short URL 短链接 API 对接说明
前端
崔庆才丨静觅20 小时前
5分钟快速搭建 AI 平台并用它赚钱!
前端
崔庆才丨静觅20 小时前
比官方便宜一半以上!Midjourney API 申请及使用
前端
Moment20 小时前
富文本编辑器在 AI 时代为什么这么受欢迎
前端·javascript·后端
崔庆才丨静觅20 小时前
刷屏全网的“nano-banana”API接入指南!0.1元/张量产高清创意图,开发者必藏
前端
剪刀石头布啊20 小时前
jwt介绍
前端
爱敲代码的小鱼21 小时前
AJAX(异步交互的技术来实现从服务端中获取数据):
前端·javascript·ajax