feat: 优化数值展示格式,去掉多余的结尾 0,统一金额和数量格式化
已修改1个文件
41 ■■■■■ 文件已修改
src/views/procurementManagement/procurementReport/index.vue 41 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/views/procurementManagement/procurementReport/index.vue
@@ -105,12 +105,23 @@
  productTypes: 0
})
// 汇总金额展示,保留6位小数
// 数值展示口径:后端返回 6 位小数(如 211.970000、¥3,420,674.200000),
// 页面按后端实际位数展示即可,不再补齐 6 位——多余的结尾 0 一律去掉。
// maximumFractionDigits 保留 6,是为了兜住前端自己 reduce 求和时的浮点尾数(如 3420674.2000000002)。
const NUM_FMT = { maximumFractionDigits: 6 }
// 数量/金额统一格式化:带千分位,去掉结尾多余的 0;空值按 0 处理
const formatNum = (val, prefix = '') => {
  const num = parseFloat(val)
  if (val === null || val === undefined || val === '' || Number.isNaN(num)) {
    return `${prefix}0`
  }
  return `${prefix}${num.toLocaleString('zh-CN', NUM_FMT)}`
}
// 汇总金额展示
const formatStatAmount = (val) => {
  return Number(val || 0).toLocaleString('zh-CN', {
    minimumFractionDigits: 6,
    maximumFractionDigits: 6
  })
  return formatNum(val)
}
// 表格列配置(根据后端字段定义)
@@ -127,32 +138,24 @@
    label: '采购数量',
    prop: 'purchaseNum',
    width: 120,
    formatData: (val) => {
      return val ? parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 6, maximumFractionDigits: 6 }) : '0'
    }
    formatData: (val) => formatNum(val)
  },
  {
    label: '退货数量',
    prop: 'returnQuantity',
    width: 120,
    formatData: (val) => {
      return val ? parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 6, maximumFractionDigits: 6 }) : '0'
    }
    formatData: (val) => formatNum(val)
  },
  {
    label: '退货金额',
    prop: 'returnAmount',
    width: 120,
    formatData: (val) => {
      return val ? `¥${parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 6, maximumFractionDigits: 6 })}` : '¥0.000000'
    }
    formatData: (val) => formatNum(val, '¥')
  },
  {
    label: '退款储量',
    prop: 'purchaseAmount',
    formatData: (val) => {
      return val ? `¥${parseFloat(val).toLocaleString('zh-CN', { minimumFractionDigits: 6, maximumFractionDigits: 6 })}` : '¥0.000000'
    }
    formatData: (val) => formatNum(val, '¥')
  },
  {
    label: '采购次数',
@@ -163,9 +166,7 @@
    label: '平均单价',
    prop: 'averagePrice',
    width: 120,
    formatData: (val) => {
      return val ? `¥${parseFloat(val).toFixed(6)}` : '¥0.000000'
    }
    formatData: (val) => formatNum(val, '¥')
  },
  {
    label: '供应商名称',