merge: fix billing usage summary and user balance display
This commit is contained in:
@@ -432,11 +432,9 @@ function UsageOverviewPanel() {
|
|||||||
setLoadingSummary(true);
|
setLoadingSummary(true);
|
||||||
setError(null);
|
setError(null);
|
||||||
try {
|
try {
|
||||||
const chartRange = start && end
|
const data = start && end
|
||||||
? { startDate: start, endDate: end }
|
? await getAdminUsageSummary(dateRangeToUnix(start, end))
|
||||||
: presetDateRange(30);
|
: await getAdminUsageSummary();
|
||||||
const { startAt, endAt } = dateRangeToUnix(chartRange.startDate, chartRange.endDate);
|
|
||||||
const data = await getAdminUsageSummary({ startAt, endAt });
|
|
||||||
setSummary(data);
|
setSummary(data);
|
||||||
} catch (err) {
|
} catch (err) {
|
||||||
setError(err instanceof Error ? err.message : '汇总加载失败');
|
setError(err instanceof Error ? err.message : '汇总加载失败');
|
||||||
@@ -476,7 +474,7 @@ function UsageOverviewPanel() {
|
|||||||
|
|
||||||
const rangeSummaryLabel = hasDateFilter
|
const rangeSummaryLabel = hasDateFilter
|
||||||
? `区间汇总(${startDate} 至 ${endDate})`
|
? `区间汇总(${startDate} 至 ${endDate})`
|
||||||
: '区间汇总(近 30 天)';
|
: '';
|
||||||
|
|
||||||
return (
|
return (
|
||||||
<>
|
<>
|
||||||
@@ -690,6 +688,16 @@ function UsageQueryPanel() {
|
|||||||
<p className="muted billing-empty">请选择用户,将自动加载用量与趋势图</p>
|
<p className="muted billing-empty">请选择用户,将自动加载用量与趋势图</p>
|
||||||
)}
|
)}
|
||||||
{userId && loading && !result && !stats && <p className="muted">加载中…</p>}
|
{userId && loading && !result && !stats && <p className="muted">加载中…</p>}
|
||||||
|
{userId && selectedUser && (
|
||||||
|
<div className="usage-user-balance-bar">
|
||||||
|
<span className="usage-user-balance-name">
|
||||||
|
{selectedUser.displayName}
|
||||||
|
<span className="muted"> @{selectedUser.username}</span>
|
||||||
|
</span>
|
||||||
|
<span className="usage-user-balance-label muted">当前余额</span>
|
||||||
|
<span className="usage-user-balance-value">¥{formatYuan(selectedUser.balanceCents)}</span>
|
||||||
|
</div>
|
||||||
|
)}
|
||||||
{userId && (
|
{userId && (
|
||||||
<UsageSummaryPanel
|
<UsageSummaryPanel
|
||||||
summary={summary}
|
summary={summary}
|
||||||
|
|||||||
@@ -2135,6 +2135,29 @@ body,
|
|||||||
margin-bottom: 16px;
|
margin-bottom: 16px;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.usage-user-balance-bar {
|
||||||
|
display: flex;
|
||||||
|
flex-wrap: wrap;
|
||||||
|
align-items: baseline;
|
||||||
|
gap: 8px 16px;
|
||||||
|
margin-bottom: 16px;
|
||||||
|
padding: 12px 16px;
|
||||||
|
border: 1px solid var(--color-border-subtle);
|
||||||
|
border-radius: var(--radius-md);
|
||||||
|
background: var(--color-bg-subtle);
|
||||||
|
}
|
||||||
|
|
||||||
|
.usage-user-balance-name {
|
||||||
|
font-weight: 600;
|
||||||
|
margin-right: auto;
|
||||||
|
}
|
||||||
|
|
||||||
|
.usage-user-balance-value {
|
||||||
|
font-size: 20px;
|
||||||
|
font-weight: 600;
|
||||||
|
font-variant-numeric: tabular-nums;
|
||||||
|
}
|
||||||
|
|
||||||
.usage-summary-panel {
|
.usage-summary-panel {
|
||||||
display: flex;
|
display: flex;
|
||||||
flex-direction: column;
|
flex-direction: column;
|
||||||
|
|||||||
Reference in New Issue
Block a user