vitesse-yitisheng-web/project_codebase.md

1.9 KiB

src/service/api/score.ts

  • Purpose: API definitions for score management.
  • Methods: getScore, saveScore.
  • Types: SaveScoreRequest, ScoreInfo.

src/service/api/major.ts

  • Purpose: API definitions for user major recommendations.
  • Methods: getUserMajorList.
  • Types: UserMajorListRequest, UserMajorListResponse, MajorItem.

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.

src/pages/index.vue

  • Purpose: Home page / Dashboard.
  • Features: Displays user sidebar with score form (if logged in) or welcome/feature info (if not logged in).

src/pages/agreement.vue

  • Purpose: Displays the User Service Agreement.
  • Features: Static content with company information and service terms. Responsive layout.

src/pages/privacy-policy.vue

  • Purpose: Displays the Privacy Policy.
  • Features: Static content detailing data collection, usage, and protection. Includes contact information. Responsive layout.

src/pages/simulate.vue

  • Purpose: Volunteer simulation page.
  • Features:
    • Panel A: Displays recommended majors list fetched from API (/user/major/list). Supports infinite scroll and filtering by probability.
    • Panel B: Displays user's selected volunteers (Mock data for now).