金额格式化,三位数逗号分隔 vue2 + el-table 指定那些计算在最后一行

1:只是三位数逗号分隔

在main.js全局注册

import Vue from 'vue';
 
Vue.filter('currencyFormat', function(value) {
    if (!isNaN(parseFloat(value))) { // 判断输入值是否为有效数字
        value = parseFloat(value);
        const parts = value.toFixed(2).split('.'); // 将小数点后两位转换为字符串并按小数点切割
        parts[0] = parts[0].replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,'); // 对每三位数字添加逗号分隔
        return parts.join('.'); // 返回结果
    } else {
        return ''; // 若输入不是有效数字则返回空字符串
    }
});

在用过滤器

{{ Money | currencyFormat }}

2.el-table 指定那些计算在最后一行

在el-tabel 添加  这两个属性

  show-summary
  :summary-method="getSummaries"

之后写方法

   getSummaries(param) {
      const { columns, data } = param
      const sums = []
      columns.forEach((column, index) => {
        if (index === 0) {
          sums[index] = '总价'
          return
        }
        if (
          column.property === 'preMoney' ||
          column.property === 'selfMoney' ||
          column.property === 'winMoney' ||
          column.property === 'inMoney'
        ) {
          const values = data.map((item) => item[column.property]) // 把对应一列中的之全部取出,放到一个数组中
          const number = values.reduce((prev, curr) => {
            const value = Number(curr) // 将values中的每个值转换为number类型
            if (!isNaN(value)) {
              return prev + curr
            } else {
              return prev
            }
          }, 0)
          const convert = convertCommasToThousandSeparator(number)
          sums[index] = convert
        }
      })
      return sums
    },
function convertCommasToThousandSeparator(value) {
  if (!isNaN(parseFloat(value))) {
    // 判断输入值是否为有效数字
    value = parseFloat(value)
    const parts = value.toFixed(2).split('.') // 将小数点后两位转换为字符串并按小数点切割
    parts[0] = parts[0].replace(/(\d)(?=(\d{3})+(?!\d))/g, '$1,') // 对每三位数字添加逗号分隔
    console.log(parts, ' parts')
    return parts.join('.') // 返回结果
  } else {
    return '' // 若输入不是有效数字则返回空字符串
  }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值