目录标题

  • 一、合计行,在需要的时候调用显示
  • 1.1 问题和现象
  • 1.2 解决方案
  • 二、合计行不显示
  • 2.1 问题和现象
  • 2.2 解决方案


一、合计行,在需要的时候调用显示

ElementUI在使用el-table做合计行时,官方文档说明如下:
参考地址:https://element.eleme.cn/#/zh-CN/component/table

将show-summary设置为true就会在表格尾部展示合计行。默认情况下,对于合计行,第一列不进行数据求合操作,而是显示「合计」二字(可通过sum-text配置),其余列会将本列所有数值进行求合操作,并显示出来。当然,你也可以定义自己的合计逻辑。使用summary-method并传入一个方法,返回一个数组,这个数组中的各项就会显示在合计行的各列中,具体可以参考本例中的第二个表格。

1.1 问题和现象

<el-table  :summary-method="getSummaries" :show-summary="isShowSummary"  >

通常情况下,合计行会采取自定义方法显示,但是show-summary和summary-method同时使用时,summary-method方法在表格加载到数据加载时,会被多次调用,可以在summary-method方法的入口加上断点,调试时就可以发现这个现象。

事实上,show-summary为true时,summary-method所指定的方法就会被动调用。

通常情况下,我们需要在数据加载的同时,才会去显示合计行,因此,需要我们主动调用。

1.2 解决方案

方案一:使用trick(亲测)

//获取数据后,主动调用
 _this.$nextTick().then( ()=> {
        _this.isShowSummary=true;
 })

方案二:使用响应式数据操作方式,达到刷新表格的目的(未测试)

_this.dataList.push({});
_this.dataList.pop();

即先通过push一个空对象,再把空对象pop出来的方法,可以实现视图的更新。

二、合计行不显示

2.1 问题和现象

在开发的时候,合计行的显示,时有时没有,不是很稳定。
通过谷歌浏览器调试时发现summary-method所指定的方法已经被调用了,把开发者工具关闭后,能看到合计行出现了,但刷新页面后,合计行再次消失。
事实上,并非是合计行的方法未能调用成功,当尝试缩放页面后,合计行就会出现,这是由于ElementU未将合计行放于Table数据行中,导致合计行处于Table的最低端,且在表格数据行所在整个区域的外部。

2.2 解决方案

在table所在页面加上样式(亲测):

<style>
    .el-table{
        overflow:visible !important;
    }
</style>

且适当调整表格的高度和最大高度,以保证合计行在视觉上是和table的数据行在同一个表格内,且固定浮于表格底部。