1.6 KiB
1.6 KiB
Debug Mode Rules (Non-Obvious Only)
API Response Codes
request.tsreturnsresponse.datadirectly, expects{code: 0, details: ...}interceptor.tsexpectscode: 20000for success- Token expiry codes: 50008, 50012, 50014 trigger logout modal (interceptor.ts)
- Token expiry status: 401 or error "Token has expired" (request.ts)
Token Storage
- Tokens stored via
SafeStoragewith keyAppStorageKey.TOKEN. - Token expiry redirects to
/auth/login(not/login).
Route Loading Issues
- If routes not loading, check
isMenuLoading/isMenuLoadedflags inpermission.ts. - Server menu fetched via
fetchServerMenuConfig().
Environment
- Dev config:
.env.development, Prod config:.env.production - API base URL:
VITE_API_BASE_URL, Workspace:VITE_APP_WORKSPACE
Common Issues
useRequest Not Working in Async
- useRequest invokes API immediately - use in setup scope only
- For async contexts, call API directly without useRequest
Menu Not Loading
- Check console for
[Permission Guard]logs - Verify
menuFromServersetting in app store - Check
fetchServerMenuConfig()response
Token Expiry
- Response
status: 401orerror: 'Token has expired'triggers logout - Clear storage via
SafeStorage.clearAppStorage()
Debug Commands
# Check lint errors
pnpm lint
# Type check
pnpm build
# Dev server with logs
pnpm dev
Browser DevTools
- Vue DevTools for component state
- Network tab for API calls
- Console for
[Permission Guard]logs