目录标题
- 一、合计行,在需要的时候调用显示
- 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的数据行在同一个表格内,且固定浮于表格底部。