首页 > 其他分享 >elementplus表格表尾合计列

elementplus表格表尾合计列

时间:2024-12-16 17:33:20浏览次数:2  
标签:index elementplus 表尾 表格 sums return num const prev

1.效果图

 2.具体代码

给表格标签加上
show-summary :summary-method="getSummaries"
合计方法:

const getSummaries = (param) => {
    const { columns, data } = param;
    const sums = [];
    columns.forEach((column, index) => {
        if (index === 0) {
            sums[index] = h('div', ['合计']);
            return;
        }
        // 只合计金额列
        if (['amount', 'invoiceTotalAmount', 'receiptTotalAmount', 'reduceAmount', 'examineAmount'].includes(column.property)) {
            const values = data.map((item) => Number(item[column.property]));
            if (!values.every((value) => Number.isNaN(value))) {
                sums[index] = `${values.reduce((prev, curr) => {
                    const value = Number(curr);
                    if (!Number.isNaN(value)) {
                        return prev + curr;
                    } else {
                        return prev;
                    }
                }, 0)}`;

                // 金额格式化
                sums[index] = h('b', [numToMoney(sums[index])]);
            } else {
                sums[index] = '';
            }
        } else {
            sums[index] = '';
        }
    });
    return sums;
};

3.金额格式化方法

/**
 * 格式化金额 - 数字千分化
 * @param {number | string} num - 输入的数字或字符串
 * @returns {string} 保留2为小数
 */
export function numToMoney(num) {
    // 检查输入是否为空
    if (num === null || num === undefined || num === '') {
        return '-';
    }

    // 将输入的数字转换为字符串
    const str = num.toString();

    // 分离整数部分和小数部分
    const [integerPart, decimalPart] = str.split('.');

    // 处理整数部分,千分位分隔
    const formattedInteger = integerPart
        .split('')
        .reverse()
        .reduce((prev, next, index) => {
            return (index % 3 ? next : next + ',') + prev;
        });

    // 合并整数部分和小数部分
    return decimalPart ? `${formattedInteger}.${decimalPart}` : `${formattedInteger}.00`;
}

 

标签:index,elementplus,表尾,表格,sums,return,num,const,prev
From: https://www.cnblogs.com/shyhuahua/p/18610714

相关文章

  • vue3/elementplus表格顶部固定高度计算
    1.表格标签<el-table:data="costList"border:height="tableHeight">2.具体实现consttableHeight=ref(500);constsettingsStore=useSettingsStore();//此方法精确计算表格高度,固定表格顶部用constcalculateTableHeight=()=>{constwindowH......
  • Python 删除Word中的表格
    在处理Word文档时,我们经常会遇到需要删除表格的情况。无论是为了简化文档结构,还是为了更新内容,删除表格都是一个常见的操作。但是通过手动删除不仅耗时,而且容易出错,本文将介绍如何使用Python通过编程删除Word中的表格。Python删除Word中的指定表格Python删除Word中的所有表格......
  • 24-bit 音频 与 16-bit 音频 的对比,主要通过表格形式展示它们的不同:24 bit 是指音频文
    在音频领域,16-bit、24-bit、32-bit和64-bit已经是常见的位深,这些位深代表了音频的动态范围和精度。但如果我们进一步探讨是否存在更高的位深或是否有更高的标准,可以从几个方面来回答。1. 64-bit及更高的位深在理论上,音频位深是没有固定上限的,您可以定义更高的位深,比如128-b......
  • Vue3 - 最新实现在线预览Excel文件(xls/xlsx)多种方案,解析打开excel电子表格支持服务
    前言如果您需要Vue2版本,请访问这篇文章。在vue3项目开发中,详解实现预览excel表格功能,在浏览器中直接打开xls/xlsx文件并渲染效果,vue3预览excel文件教程,文件来源可以是在线url地址、前端调用api接口获取文件流(先下载)等,预览方式可以新开浏览器页签或者自定义弹框等......
  • C# OnnxRuntime 实现百度网盘AI大赛-表格检测第2名方案第二部分-表格分割
    目录说明效果模型项目代码参考下载说明百度网盘AI大赛-表格检测的第2名方案。该算法包含表格边界框检测、表格分割和表格方向识别三个部分,首先,ppyoloe-plus-x对边界框进行预测,并对置信度较高的表格边界框(box)进行裁剪。裁剪后的单个表格实例会送入到DBNet中进行语......
  • Vue2 - 最新详细实现在线预览Excel文件(xls/xlsx)多种方案,解析打开excel电子表格支持
    前言如果您需要Vue3版本,请访问。在vue2|nuxt2项目开发中,详解实现预览excel表格功能,在浏览器中直接打开xls/xlsx文件并渲染效果,文件来源可以是在线url地址、前端调用api接口获取文件流(先下载)等,预览方式可以新开浏览器页签或者自定义弹框等方式,兼容任意高低版本浏......
  • html中表格的width和height的值为什么没有单位?它的的默认单位是像素吗?
    在HTML中,当你为(<td>、<th>)或其他HTML元素设置width和height属性时,确实可以不带单位。在这种情况下,浏览器默认使用像素(px)作为单位。示例<tablewidth="500"height="300"><tr><td>单元格内容</td></tr></table>在这个例子中,表格的宽度被设置为500像素,高度......
  • Vue3+ElementPlus 中 el-image 预览大图属性 previewSrcList 和 translateY(-5px) 的
    【前言】Vue3使用ElementPlus,Vue2使用Element-ui。【问题描述】在Vue3+ElementPlus中,使用el-image和预览大图功能,点击el-image后预览的图片局限在原有图片(小图)内,遮罩也没有充满屏幕。【注】使用  transform:translateY(-5px); 的原因是本来外面有一层div,想用hover ......
  • html基础-表格
    表格标签的简单介绍:<table><tr><th></th><td></td></tr></table><!--table是表格标签tr是行td是每一个单元格th是表头,有加粗剧中的功能他们之间是需要互相嵌套tr必须嵌套在tabletd和th必须签到到tr之中-->写法<table>......
  • springboot+mybatis plus+vue+elementui+axios 表格分页
    1、创建springboot项目2、pom.xml里面添加依赖<dependencies><dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-web</artifactId></dependency>......