feat: improve application access and money precision

This commit is contained in:
hectorzhao
2026-07-16 17:54:05 +08:00
parent 9d5c507007
commit faa716b8d0
49 changed files with 1699 additions and 489 deletions
+5 -7
View File
@@ -19,6 +19,7 @@ import {
} from '@/components/ui';
import { adminApi, type DashboardResponse } from '@/api/adminApi';
import { createBarOption, createLineOption } from '@/theme/chartOptions';
import { formatAmount, moneyUnitsToYuan } from '@/utils/currency';
type EnterpriseSpendRank = {
id: string;
@@ -35,10 +36,7 @@ const balanceTone = {
} as const;
function formatCurrency(value: number) {
return value.toLocaleString('zh-CN', {
minimumFractionDigits: 3,
maximumFractionDigits: 3,
});
return formatAmount(value);
}
function formatCount(value: number) {
@@ -68,8 +66,8 @@ export function AdminHome() {
return (dashboard?.accounts ?? []).map((account) => {
const todaySpend = Math.abs(dashboard?.recentRecharges
.filter((item) => item.tenantId === account.tenantId)
.reduce((sum, item) => sum + item.amountCents, 0) ?? 0) / 100;
const availableBalance = (account.balanceCents + account.creditCents) / 100;
.reduce((sum, item) => sum + item.amountCents, 0) ?? 0) / 10_000;
const availableBalance = moneyUnitsToYuan(account.balanceCents + account.creditCents);
return {
id: account.tenantId,
enterprise: account.tenant?.name ?? account.tenantId,
@@ -82,7 +80,7 @@ export function AdminHome() {
const totalSend = dashboard?.today.sent ?? 0;
const averageSuccessRate = dashboard?.today.successRate ?? 0;
const todaySpend = (dashboard?.today.spendCents ?? 0) / 100;
const todaySpend = moneyUnitsToYuan(dashboard?.today.spendCents);
const activeConnectionCount = dashboard?.gatewayConnections.reduce((sum, item) => sum + (item._sum.currentConnections ?? 0), 0) ?? 0;
const downstreamAlertCount = dashboard?.downstreamDeliverySummary?.alertCount ?? 0;
const pendingAudits = dashboard?.pendingAudits ?? { enterpriseCertifications: 0, smsAudits: 0, templates: 0, signatures: 0, drainageInfos: 0, total: 0 };