48 lines
1.3 KiB
Markdown
48 lines
1.3 KiB
Markdown
|
|
# Ask Mode Rules (Non-Obvious Only)
|
||
|
|
|
||
|
|
## Project Structure
|
||
|
|
|
||
|
|
- Vue 3 + Arco Design admin template with Pinia state management
|
||
|
|
- Vite config files located in `config/` directory (not root)
|
||
|
|
|
||
|
|
## Key Directories
|
||
|
|
|
||
|
|
- `src/api/` - API layer with two axios instances
|
||
|
|
- `src/views/ops/` - Main business modules (kb, netarch, asset, etc.)
|
||
|
|
- `src/router/guard/` - Route guards including dynamic menu loading
|
||
|
|
- `src/store/modules/app/` - App store with server menu fetching
|
||
|
|
|
||
|
|
## Documentation References
|
||
|
|
|
||
|
|
- Arco Design Vue: https://arco.design/vue
|
||
|
|
- Vue Flow (for topology): https://vueflow.dev/
|
||
|
|
|
||
|
|
## API Patterns
|
||
|
|
|
||
|
|
- Use [`request.ts`](src/api/request.ts) for workspace-aware requests
|
||
|
|
- Use [`interceptor.ts`](src/api/interceptor.ts) for standard Bearer token auth
|
||
|
|
|
||
|
|
## API Response Format
|
||
|
|
|
||
|
|
- Standard response: `{code: 0, details: {...}}`
|
||
|
|
- Success code is `0`, NOT `200` or `20000`
|
||
|
|
- Access data via `response.details.data`
|
||
|
|
|
||
|
|
## Component Libraries
|
||
|
|
|
||
|
|
- Arco Design Vue components: `<a-button>`, `<a-table>`, `<a-form>`, etc.
|
||
|
|
- Global components: `SearchTable`, `SearchForm`, `DataTable`, `Chart`
|
||
|
|
|
||
|
|
## Code Style
|
||
|
|
|
||
|
|
- No semicolons
|
||
|
|
- Single quotes
|
||
|
|
- Print width: 140 characters
|
||
|
|
- Path alias: `@/` → `src/`
|
||
|
|
|
||
|
|
## Build Commands
|
||
|
|
|
||
|
|
- `pnpm dev` - Start dev server
|
||
|
|
- `pnpm build` - Production build
|
||
|
|
- `pnpm lint` - Run ESLint + Prettier
|