diff --git a/app/resources/js/api/dashboard.ts b/app/resources/js/api/dashboard.ts new file mode 100644 index 00000000..20fd89f6 --- /dev/null +++ b/app/resources/js/api/dashboard.ts @@ -0,0 +1,26 @@ +import { apiClient } from './client'; + +/** + * API-клиент дашборда (audit C1/J3). Эндпоинт GET /api/dashboard/summary. + * На MVP без auth — tenant_id параметром (на prod возьмётся из middleware). + */ + +export type DeltaDir = 'up' | 'down' | 'neutral'; +export type DashboardRange = 'today' | '7d' | '30d'; + +export interface DashboardSummary { + range: string; + leads_received: { value: number; delta_pct: number; delta_dir: DeltaDir }; + conversion: { value: number; delta_pp: number; delta_dir: DeltaDir }; + active_projects: { active: number; limit: number }; + balance: { amount_rub: string; runway_days: number; runway_leads: number }; + activity: { points: number[]; labels: string[]; max: number }; + funnel: Record; +} + +export async function getDashboardSummary(tenantId: number, range: DashboardRange): Promise { + const { data } = await apiClient.get('/api/dashboard/summary', { + params: { tenant_id: tenantId, range }, + }); + return data; +} diff --git a/app/resources/js/views/DashboardView.vue b/app/resources/js/views/DashboardView.vue index 349b2d9c..b7123ec6 100644 --- a/app/resources/js/views/DashboardView.vue +++ b/app/resources/js/views/DashboardView.vue @@ -1,60 +1,94 @@