1.1 KiB
1.1 KiB
Architect Mode Rules (Non-Obvious Only)
Architecture Overview
- Vue 3 SPA with dynamic route loading from server
- Pinia stores:
app,user,tab-bar(seesrc/store/) - Two-layer route guard: user login check + permission check
Dynamic Route System
- Server menu fetched in
app storeviafetchServerMenuConfig() - Routes registered dynamically in
permission.ts - Uses
isMenuLoading/isMenuLoadedflags to prevent duplicate loads
API Architecture
- Two axios instances for different auth patterns:
request.ts: Workspace header + custom token formatinterceptor.ts: Bearer token + code 20000 validation
- Choose based on backend API requirements
State Management
SafeStoragerequired for all localStorage access- Supports TTL expiry and type-safe keys via enum
Component Patterns
- Global components registered in
components/index.ts - ECharts modules manually imported for bundle size optimization