feat: restore credit limits and harden SMS sending

This commit is contained in:
hectorzhao
2026-07-14 18:46:35 +08:00
parent 3e3b7a9d1a
commit c1a17699db
23 changed files with 796 additions and 56 deletions
+7 -1
View File
@@ -7,6 +7,7 @@ import { formatDateTime } from '@/utils/dateTime';
export function ClientBillingPage() {
const [balanceCents, setBalanceCents] = useState(0);
const [creditCents, setCreditCents] = useState(0);
const [orders, setOrders] = useState<RechargeOrder[]>([]);
const [page, setPage] = useState(1);
const [loading, setLoading] = useState(true);
@@ -21,6 +22,7 @@ export function ClientBillingPage() {
Promise.all([clientApi.getDashboard(), clientApi.listOrders()])
.then(([dashboard, nextOrders]) => {
setBalanceCents(dashboard.accounts[0]?.balanceCents ?? 0);
setCreditCents(dashboard.accounts[0]?.creditCents ?? 0);
setOrders(nextOrders);
setError('');
})
@@ -36,7 +38,11 @@ export function ClientBillingPage() {
<div className="dashboard-grid enterprise-summary-grid">
<div className="surface mini-status-card">
<WalletCards size={22} />
<div><span></span><strong>¥{formatCents(balanceCents)}</strong><small></small></div>
<div><span></span><strong>¥{formatCents(balanceCents)}</strong><small></small></div>
</div>
<div className="surface mini-status-card">
<WalletCards size={22} />
<div><span></span><strong>¥{formatCents(balanceCents + creditCents)}</strong><small> 0 </small></div>
</div>
</div>
<div className="surface section-stack">
+3 -3
View File
@@ -50,7 +50,7 @@ export function ClientHome() {
}, []);
const account = dashboard?.accounts[0];
const availableBalance = (account?.balanceCents ?? 0) / 100;
const availableBalance = ((account?.balanceCents ?? 0) + (account?.creditCents ?? 0)) / 100;
const todaySpend = (dashboard?.today.spendCents ?? 0) / 100;
const todayRefund = Math.abs((dashboard?.transactions._sum.amountCents ?? 0) < 0 ? 0 : dashboard?.transactions._sum.amountCents ?? 0) / 100;
const balanceBaseline = Math.max(availableBalance + todaySpend - todayRefund, availableBalance, 1);
@@ -102,9 +102,9 @@ export function ClientHome() {
<div className="dashboard-grid">
<div className="surface metric-card metric-card--featured">
<span></span>
<span></span>
<strong>¥{formatAmount(availableBalance)}</strong>
<small> ¥{formatAmount(todaySpend)}</small>
<small> ¥{formatCents(account?.balanceCents)}</small>
</div>
<div className="surface metric-card">
<span></span>