# 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 `. - 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.