guzhi/.trae/documents/项目结构整理与架构文档(web目录).md
邹方成 cc352d3184 feat: 重构后端服务并添加新功能
refactor: 优化API路由和响应模型
feat(admin): 添加App用户管理接口
feat(sms): 实现阿里云短信服务集成
feat(email): 添加SMTP邮件发送功能
feat(upload): 支持文件上传接口
feat(rate-limiter): 实现手机号限流器
fix: 修复计算步骤入库问题
docs: 更新API文档和测试计划
chore: 更新依赖和配置
2025-11-19 19:36:03 +08:00

6.0 KiB
Raw Blame History

工作范围与目标

  • 范围:梳理 web 目录(排除 web1),形成结构与架构产物
  • 目标:
    • 生成完整项目结构文档(目录树、职责说明、关键路径)
    • 制作技术架构示意图(前端分层、运行时链路、对后端的调用关系)
    • 编写关键模块说明文档路由、状态、鉴权、HTTP、页面域
    • 预留接口说明,支撑后续开发接入

技术栈识别

  • 框架Vue 3web/package.json:37构建Viteweb/package.json:43web/vite.config.js:1
  • 路由vue-router@4web/package.json:39);守卫统一注册(web/src/router/guard/index.js:5-9
  • 状态Piniaweb/package.json:26web/src/store/index.js:1-5
  • UI 与样式Naive UIweb/package.json:25UnoCSSweb/package.json:30web/src/main.js:3),全局样式(web/src/styles/global.scss
  • 国际化vue-i18nweb/package.json:38web/src/main.js:22web/i18n/index.js
  • 网络Axiosweb/package.json:20),自建请求封装(web/src/utils/http/index.js:4-18)与拦截器(web/src/utils/http/interceptors.js:23-33,35-59
  • 运行环境:.env.* 配置,开发代理到后端 127.0.0.1:9999/api/v1web/.env.development:8web/build/constant.js:19-22web/vite.config.js:31-35

项目结构综述

  • 顶层关键目录:
    • build/Vite 定制化(定义、插件、脚本、代理)(web/build/*
    • i18n/:国际化资源与实例(web/i18n/index.jsweb/i18n/messages/*
    • settings/:主题与全局设置(web/settings/theme.jsonweb/settings/index.js
    • public/:静态资源与加载占位(web/public/resource/*
    • src/:业务主目录(见下)
  • src/ 结构与职责:
    • 入口与应用:main.js(应用装配,挂载插件)(web/src/main.js:14-23App.vue
    • 路由:router/(基本路由、动态路由、守卫、滚动)(web/src/router/index.js:7-18,30-55
    • 状态:store/Pinia 注册与模块聚合)(web/src/store/index.js:1-5web/src/store/modules/index.js:1-4
    • 组件:components/(通用、表格、查询栏、图标、页面容器)
    • 视图:views/(系统管理、估值评估、交易开票、登录、工作台等域)
    • 工具:utils/鉴权、存储、HTTP、通用工具web/src/utils/*
    • 指令:directives/(权限等自定义指令)
    • 可复用逻辑:composables/(如 useCRUD
    • 样式:styles/Reset、全局样式UnoCSS 原子类)

核心模块与功能点

  • 鉴权与导航:
    • 登录白名单与重定向(web/src/router/guard/auth-guard.js:3-16
    • 动态路由注入、用户与权限联动(web/src/router/index.js:30-55
  • 状态管理:
    • 用户信息获取、登出流程(web/src/store/modules/user/index.js:37-60
    • 标签、权限、应用模块聚合(web/src/store/modules/index.js:1-4
  • 网络与错误处理:
    • request 实例与 baseURL 环境绑定(web/src/utils/http/index.js:17-19
    • 成功码约定 code === 200、统一错误提示(web/src/utils/http/interceptors.js:23-33
    • 401 处理与自动登出(web/src/utils/http/interceptors.js:45-53
  • 业务域:
    • 系统管理(用户、角色、菜单、部门、审计日志)(web/src/views/system/*API 汇总:web/src/api/index.js:393-431
    • 客户端用户管理、开票记录、估值评估(web/src/views/user-management/*web/src/views/transaction/invoice/*web/src/views/valuation/*;对应 APIweb/src/api/index.js
  • UI 框架与布局:
    • 布局与头部/侧栏/标签页组件(web/src/layout/*
    • Naive UI 组件与 UnoCSS 原子化样式协同

技术架构示意图

graph TD
  U[用户] --> A[Vue 应用]
  A --> R[Router]
  A --> S[Pinia]
  A --> V[视图与组件]
  V --> UI[Naive UI / UnoCSS]
  A --> I18N[vue-i18n]
  S --> H[HTTP 封装]
  R --> G[路由守卫]
  H --> X[Axios 拦截器]
  X --> B[(后端 API /api/v1)]
  subgraph 构建与运行
    Vite[Vite Dev/Build]
  end
  A --> Vite

文档产出方案

  • 目录与位置:在 web/docs/ 下生成 4 个文档,统一中文、层级清晰、可落地
    • 项目结构.md:目录树 + 角色说明 + 入口与关键路径
    • 技术架构.md:架构分层 + 运行链路 + Mermaid 图
    • 关键模块说明.md路由、状态、HTTP、业务域的职责与协作
    • 接口约定与预留.md:环境、鉴权、响应约定、扩展接入指引
  • 文档格式约定:
    • 标题层级H1 总览H2 模块H3 文件与职责;统一术语与中文阐述
    • 代码引用统一用内联反引号与文件定位(如 web/src/router/index.js:30-55

接口预留说明(用于后续开发)

  • 基础约定:
    • baseURLVITE_BASE_API(默认 /api/v1web/.env.development:8
    • 认证头:token(由拦截器自动注入,web/src/utils/http/interceptors.js:11-14
    • 成功响应:{ code: 200, data, msg }web/src/utils/http/interceptors.js:23-33
  • 接入方式:在 web/src/api/index.js 中以函数方式声明对应业务端点,统一走 request
  • 错误处理:全局弹窗与 401 自动登出链路已就绪(web/src/utils/http/interceptors.js:45-53

执行步骤

  1. 固化目录树与职责说明,输出《项目结构.md》
  2. 绘制 Mermaid 架构图并输出《技术架构.md》
  3. 编写《关键模块说明.md》覆盖路由、状态、HTTP、页面域
  4. 编写《接口约定与预留.md》包含新增接口接入模板与约束
  5. 交付文档后,等待新需求文档,启动开发

输出验收与规范

  • 文档格式:统一中文,标题层级一致,引用路径与行号定位
  • 风格一致:术语与代码片段与现有实现保持一致(如 requestuseUserStore
  • 可演进:接口文档预留扩展章节,支持后续模块按同规范接入

——请确认以上方案,确认后我将按该方案生成 4 个文档并提交供评审。