feat: Phase 2 — frontend-backend integration complete

- All 5 core pages now use real API instead of mock data
  - Dashboard: /api/v1/dashboard/stats
  - Tickets: list/create/detail/approve/execute/statistics
  - Users: list/create/toggle-active/delete
  - Instances: list/create/test-connection/delete
  - Queries: execute with result display + sensitive field masking
- Updated DashboardStats type to match backend schema
- Fixed InstancePage to work with InstanceResponse (no qps/cpu/metrics yet)
- Added create forms for Tickets, Users, Instances
- Added connection test in InstanceDetail
- Updated TDD_PLAN.md: Phase 1 ✅ (44 tests), Phase 2 ✅
- Updated ROADMAP.md: v0.2.0 ✅
- Updated PROJECT_EVALUATION.md: score 5.7 → 6.2
- Frontend build passes with zero TS errors
- 44 backend tests still passing
This commit is contained in:
logan committed 2026-05-22 12:39:48 +08:00
1 parent c0c731acfc
commit 27989274f5
10 files changed
+1074 -840

No files matched your search

+8 -8
View File
@@ -1,14 +1,14 @@
import type { Ticket, DBInstance, QueryAudit, AuditRule, Workflow, NotificationChannel, Role, User, DataPermission, PermissionNode, DashboardStats } from '@/types';
export const dashboardStats: DashboardStats = {
todayTickets: 128,
todayTicketsTrend: 12,
pendingApproval: 23,
pendingTrend: -5,
queryAuditCount: 15234,
queryTrend: 8,
slowQueries: 47,
slowQueryTrend: -12,
ticket_total: 128,
ticket_pending: 23,
ticket_month: 342,
ticket_executing: 3,
instance_total: 11,
instance_online: 8,
user_total: 7,
queries_today: 15234,
};
export const menuSections = [