diff --git a/apps/web-antd/src/api/dashboard/dashboard.ts b/apps/web-antd/src/api/dashboard/dashboard.ts new file mode 100644 index 0000000..5428fc6 --- /dev/null +++ b/apps/web-antd/src/api/dashboard/dashboard.ts @@ -0,0 +1,68 @@ +import { requestClient } from '#/api/request'; + +export namespace DashboardApi { + export interface OrderStatistics { + today_count: number; + month_count: number; + total_count: number; + yesterday_count: number; + change_rate: number; + } + + export interface RevenueStatistics { + today_amount: number; + month_amount: number; + total_amount: number; + yesterday_amount: number; + change_rate: number; + } + + export interface AgentStatistics { + total_count: number; + today_new: number; + month_new: number; + } + + export interface ProfitDetail { + revenue: number; + commission: number; + rebate: number; + company_tax: number; + api_cost: number; + tax_income: number; + profit: number; + profit_rate: number; + } + + export interface ProfitStatistics { + today_profit: number; + month_profit: number; + total_profit: number; + today_profit_rate: number; + month_profit_rate: number; + total_profit_rate: number; + today_detail: ProfitDetail; + month_detail: ProfitDetail; + total_detail: ProfitDetail; + } + + export interface TrendData { + date: string; + value: number; + } + + export interface DashboardStatistics { + order_stats: OrderStatistics; + revenue_stats: RevenueStatistics; + agent_stats: AgentStatistics; + profit_stats: ProfitStatistics; + order_trend: TrendData[]; + revenue_trend: TrendData[]; + } +} + +export async function getDashboardStatistics(): Promise { + return await requestClient.get( + '/dashboard/statistics', + ); +} diff --git a/apps/web-antd/src/api/dashboard/index.ts b/apps/web-antd/src/api/dashboard/index.ts new file mode 100644 index 0000000..f73c637 --- /dev/null +++ b/apps/web-antd/src/api/dashboard/index.ts @@ -0,0 +1,2 @@ +export { getDashboardStatistics } from './dashboard'; +export type { DashboardApi } from './dashboard'; diff --git a/apps/web-antd/src/api/product-manage/feature.ts b/apps/web-antd/src/api/product-manage/feature.ts index cbf9de3..119bd7d 100644 --- a/apps/web-antd/src/api/product-manage/feature.ts +++ b/apps/web-antd/src/api/product-manage/feature.ts @@ -7,6 +7,8 @@ export namespace FeatureApi { id: number; api_id: string; name: string; + whitelist_price: number; + cost_price: number; create_time: string; update_time: string; } @@ -19,11 +21,15 @@ export namespace FeatureApi { export interface CreateFeatureRequest { api_id: string; name: string; + whitelist_price?: number; + cost_price?: number; } export interface UpdateFeatureRequest { api_id?: string; name?: string; + whitelist_price?: number; + cost_price?: number; } export interface FeatureExampleItem { diff --git a/apps/web-antd/src/views/dashboard/analytics/analytics-profit-panel.vue b/apps/web-antd/src/views/dashboard/analytics/analytics-profit-panel.vue new file mode 100644 index 0000000..c40fee6 --- /dev/null +++ b/apps/web-antd/src/views/dashboard/analytics/analytics-profit-panel.vue @@ -0,0 +1,245 @@ + + + + + diff --git a/apps/web-antd/src/views/dashboard/analytics/analytics-revenue-trend.vue b/apps/web-antd/src/views/dashboard/analytics/analytics-revenue-trend.vue new file mode 100644 index 0000000..9a5d297 --- /dev/null +++ b/apps/web-antd/src/views/dashboard/analytics/analytics-revenue-trend.vue @@ -0,0 +1,58 @@ + + + diff --git a/apps/web-antd/src/views/dashboard/analytics/analytics-trends.vue b/apps/web-antd/src/views/dashboard/analytics/analytics-trends.vue index c3d3d81..d181717 100644 --- a/apps/web-antd/src/views/dashboard/analytics/analytics-trends.vue +++ b/apps/web-antd/src/views/dashboard/analytics/analytics-trends.vue @@ -1,79 +1,41 @@