在配置了 el-table 组件的合计行后,由于elementUI 表格el-table设置高度之后,合计行功能不会显示

问题

在配置了 el-table 组件的合计行后,由于elementUI 表格el-table设置高度之后,合计行功能不会显示

解决方法:

  1. 根据调试,发现该问题应该属于组件bug,表格主体中给 footer留的高度不够导致,重新设置即可。
  2. 添加生命周期钩子 updated ,对 table 组件重新布局即可解决问题。具体如下:

Vue 文件配置演示:

javascript 复制代码
<el-table
  show-summary
  ref="table"
  :data="dataList"
  :height="tableHeight"
  :summary-method="getSummaries"
>

测试数据 dataList 自行配置:

javascript 复制代码
export default {
	data() {
	return {
		dataList: [],
		tableHeight: "400px"
		}
	},
  updated() {
  	 this.$nextTick(() => {
       	this.$refs.table.doLayout()
    	})
	}
  methods: {

	getSummaries(param) {
      const { columns, data } = param;
      console.log("--------------------- column ",columns)
      console.log("--------------------- data ",data)	
      const sums = [];
      columns.forEach((column, index) => {
          if (index === 0) {
            sums[index] = '总价';
            return;
          }
          const values = data.map(item => Number(item[column.property]));
          if (!values.every(value => isNaN(value))) {
            sums[index] = values.reduce((prev, curr) => {
              const value = Number(curr);
              if (!isNaN(value)) {
                return prev + curr;
              } else {
                return prev;
              }
            }, 0);
            sums[index] += ' 元';
          } else {
            sums[index] = 'N/A';
          }
        });

        return sums;
      }
 }
}

参考链接:

1. 解决elementUI 表格el-table设置高度之后合计行不显示

2. vue的updated用法

3. Table 表格

相关推荐
Java Fans8 分钟前
JavaScript网页设计案例(动态表单、实时搜索、交互式地图、无限滚动加载等)
javascript
笃励2 小时前
Angular面试题二
前端·javascript·angular.js
速盾cdn3 小时前
速盾:高防 CDN 怎么屏蔽恶意访问?
前端·网络·web安全
javaer炒粉5 小时前
provide,inject父传子
javascript·vue.js·elementui
LvManBa5 小时前
Vue学习记录之五(组件/生命周期)
javascript·vue.js·学习
一生为追梦9 小时前
Linux 内存管理机制概述
前端·chrome
喝旺仔la9 小时前
使用vue创建项目
前端·javascript·vue.js
心.c9 小时前
植物大战僵尸【源代码分享+核心思路讲解】
前端·javascript·css·数据结构·游戏·html
喝旺仔la9 小时前
Element Plus中button按钮相关大全
前端·javascript·vue.js
柒@宝儿姐9 小时前
Git的下载与安装
前端·javascript·vue.js·git·elementui·visual studio