feat(dashboard): 增加极品专区与保险成交统计
- 仪表盘新增今日极品专区、保险8%、保险4%成交数量 - 展示近7日每日成交趋势和明细 - 按已支付订单口径统计,补充回归测试
This commit is contained in:
@@ -42,6 +42,20 @@ export interface ListingDailyOverview {
|
||||
timezone: string
|
||||
}
|
||||
|
||||
export interface TradingDayStats {
|
||||
date: string
|
||||
premium_order_count: number
|
||||
insurance_8_order_count: number
|
||||
insurance_4_order_count: number
|
||||
}
|
||||
|
||||
export interface TradingDailyOverview {
|
||||
today: TradingDayStats
|
||||
trend: TradingDayStats[]
|
||||
days: number
|
||||
timezone: string
|
||||
}
|
||||
|
||||
export interface ListingUploaderDayStats {
|
||||
date: string
|
||||
uploader_id: number
|
||||
@@ -82,6 +96,7 @@ export interface AdminDashboard {
|
||||
metrics: DashboardMetrics
|
||||
pending: DashboardPending
|
||||
listing_daily: ListingDailyOverview
|
||||
trading_daily: TradingDailyOverview
|
||||
manual_entry_today: ManualEntryTodayStats[]
|
||||
recent_orders: DashboardRecentOrder[]
|
||||
recent_disputes: DashboardRecentDispute[]
|
||||
@@ -95,10 +110,18 @@ const emptyDayStats = (): ListingDayStats => ({
|
||||
trade_leave_count: 0,
|
||||
})
|
||||
|
||||
const emptyTradingDayStats = (): TradingDayStats => ({
|
||||
date: '',
|
||||
premium_order_count: 0,
|
||||
insurance_8_order_count: 0,
|
||||
insurance_4_order_count: 0,
|
||||
})
|
||||
|
||||
export async function fetchAdminDashboard() {
|
||||
const { data } = await apiClient.get<ApiResponse<AdminDashboard>>('/admin/dashboard')
|
||||
const payload = data.data
|
||||
const listingDaily = payload.listing_daily
|
||||
const tradingDaily = payload.trading_daily
|
||||
return {
|
||||
...payload,
|
||||
listing_daily: {
|
||||
@@ -111,6 +134,12 @@ export async function fetchAdminDashboard() {
|
||||
days: listingDaily?.days ?? 7,
|
||||
timezone: listingDaily?.timezone ?? 'Asia/Shanghai',
|
||||
},
|
||||
trading_daily: {
|
||||
today: tradingDaily?.today ?? emptyTradingDayStats(),
|
||||
trend: tradingDaily?.trend ?? [],
|
||||
days: tradingDaily?.days ?? 7,
|
||||
timezone: tradingDaily?.timezone ?? 'Asia/Shanghai',
|
||||
},
|
||||
manual_entry_today: payload.manual_entry_today ?? [],
|
||||
recent_orders: payload.recent_orders ?? [],
|
||||
recent_disputes: payload.recent_disputes ?? [],
|
||||
|
||||
Reference in New Issue
Block a user