vitesse-yitisheng-web/project_codebase.md

45 lines
1.7 KiB
Markdown

# Project Codebase
## Function Overview
### `src/utils/message.ts`
- **Purpose**: Provides a global interface for showing toast messages.
- **Methods**: `success(msg, duration)`, `error(msg, duration)`, `warning(msg, duration)`, `info(msg, duration)`.
- **Implementation**: Programmatically mounts `WMessage.vue`.
### `src/service/request/index.ts`
- **Purpose**: Encapsulates Axios for API requests.
- **Features**:
- Request Interceptor:
- Adds `Authorization: Bearer <token>`.
- Adds `X-App-Sign` and `X-App-Timestamp` headers.
- Starts `NProgress`.
- Response Interceptor: Unwraps `data`; handles global errors (401, 403, 500); prioritizes backend error messages; stops `NProgress`.
- Config: `showLoading`, `showError`.
### `src/service/api/auth.ts`
- **Purpose**: API definitions for authentication.
- **Methods**: `login`, `logout`, `getUserInfo`.
### `src/service/api/score.ts`
- **Purpose**: API definitions for score management.
- **Methods**: `getScore`, `saveScore`.
- **Types**: `SaveScoreRequest`, `ScoreInfo`.
### `src/stores/user.ts`
- **Purpose**: Manages user session state.
- **State**: `token`, `userInfo`.
- **Actions**: `login` (calls API), `logout`, `setToken`, `setUserInfo`.
- **Persistence**: Loads/Saves state to `localStorage`.
### `src/stores/score.ts`
- **Purpose**: Manages user score state.
- **State**: `scoreInfo`.
- **Actions**: `fetchScore`, `saveScore`, `clearScore`.
### `src/components/TheNavigation.vue`
- **Updated**: Added integration with `userStore` and `scoreStore`. Displays user info and score info. Handles login/logout logic.
### `src/components/ScoreForm.vue`
- **Updated**: Integrated with `scoreStore` to load and save score data. Maps form state to backend API structure.