vue+ element-ui el-table组件合计行自定义合并(summary-method)

本文介绍了在ElementUI中如何自定义表格的合计功能,包括金额大小写转换和行合并。作者在遇到无法直接满足需求的解决方案后,通过改造官方的合计方法实现了自动换行和格式化显示。改造后的代码能够处理大写和小写金额,并展示了具体的CSS和JavaScript操作来完成表格合计行的合并。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

随笔记录:

今天接到的需求中有个表格的合并行需要同时用到大写和小写;

金额过大时,当前行定义的sum[5]单价列会自动换行;

 没有百度到合适的方法;

后来用别的方式改造

  // 这里是官方的合计方法
     getSummaries(param) {
      const { columns, data } = param;
      const sums = [];
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = "合计";
          return;
        }
        if (index === 7) {
           sums[index] = "小写";
          return;
        }
      const values = data.map((item) => {
          if (column.property == "合计") {
            return 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] = Math.floor(sums[index] * 100) / 100;
          sums[index] += "";
        }
      });
      sums[8] = sums[6] ? sums[6] : "";
      sums[6] = "";
      sums[5] = this.convertCurrency(sums[8] / 1);
      this.合计 = sums[8] ? Number(sums[8]) : 0;
        // 在执行栈最后加入重建合计行后合并行
        // 需要在<el-table id="table">
       this.$nextTick(() => {
         const tds = document.querySelectorAll(
           "#table .el-table__footer-wrapper tr>td"
         );
         // colSpan合并列
         tds[1].colSpan = 6;
         tds[0].style.textAlign = "center";
         tds[2].style.display = "none";
         tds[3].style.display = "none";
         tds[4].style.display = "none";
         tds[5].style.display = "none";
         tds[6].style.display = "none";
      // });
      return sums;
      },

改造后的样式 

 原代码出自这里:

elementui中table的合计功能、以及合计行合并_强壮的糙汉子的博客-优快云博客_element table 合计

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值