vue设置列表高度自适应和show-summary的冲突

列表:
在这里插入图片描述
一、设置列表固定高度:height=“calc(76vh - 180px )” style=“width: 100%”
设置合计行:show-summary :summary-method=“getSummaries”
自定义:合计行方法:getSummaries
解决以上1.别表固定高度 2.设置合计行 的冲突,show-summary无效的问题:
使用:
(1)生命周期的方法updated
(2)table标签加上属性ref=“table”

 <el-table v-loading="loading" :data="list" ref="table" height="calc(76vh - 180px )" style="width: 100%" show-summary :summary-method="getSummaries">

在这里插入图片描述

自定义合计行方法:getSummaries:

getSummaries(param) {
       const { columns, data } = param;
       const sums = [];
       columns.forEach((column, index) => {
          if (index === 0) {
              // sums[index] = '合计';
               return;
          }
          // 可以用index设置 因为项目会动态改变列 所以我用了name
          if (column.label == "实收金额") {
             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] ='合计:'+ (this.amount) + '元';
               } else {
                   sums[index] = '';
             }
          }
       });
       return sums;
    },

在这里插入图片描述

二、出现问题:
1.别表固定高度 2.设置合计行 的冲突,show-summary无效的问题:
解决:
(1)生命周期的方法updated
(2)table标签加上属性ref=“table”
在这里插入图片描述

updated() {
      this.$nextTick(() => {
          console.log('表格重新渲染了');
          this.$refs['table'].doLayout();
      })
  },

在这里插入图片描述

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值