From acab6978d45adee374de4eed5f45b79f9c5c6d1f Mon Sep 17 00:00:00 2001 From: lanyuanxiaoyao Date: Fri, 12 Sep 2025 17:57:04 +0800 Subject: [PATCH] =?UTF-8?q?perf:=20=E4=BC=98=E5=8C=96=E8=B4=A2=E5=8A=A1?= =?UTF-8?q?=E6=95=B0=E5=AD=97=E6=A0=BC=E5=BC=8F=E5=8C=96=E5=87=BD=E6=95=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- leopard-web/src/pages/stock/StockDetail.tsx | 22 +++++++++++++++------ 1 file changed, 16 insertions(+), 6 deletions(-) diff --git a/leopard-web/src/pages/stock/StockDetail.tsx b/leopard-web/src/pages/stock/StockDetail.tsx index d7616b0..a7a4948 100644 --- a/leopard-web/src/pages/stock/StockDetail.tsx +++ b/leopard-web/src/pages/stock/StockDetail.tsx @@ -5,13 +5,23 @@ import type {Schema} from 'amis' // 格式化财务数字显示的公共函数 const formatFinanceNumber = (value: number): string => { - if (value >= 100000000) { - return (value / 100000000).toFixed(2) + '亿' - } else if (value >= 10000) { - return (value / 10000).toFixed(2) + '万' - } else { - return value.toLocaleString() + if (value === null || value === undefined) { + return '-' } + + const isNegative = value < 0 + const absoluteValue = Math.abs(value) + + let formatted: string + if (absoluteValue >= 100000000) { + formatted = (absoluteValue / 100000000).toFixed(2) + '亿' + } else if (absoluteValue >= 10000) { + formatted = (absoluteValue / 10000).toFixed(2) + '万' + } else { + formatted = absoluteValue.toLocaleString() + } + + return isNegative ? `-${formatted}` : formatted } const financePropertyLabel = (id: string | undefined, label: string, type: string, field: string): Schema => {