# 09-项目目录结构 ## 一、仓库顶层 ``` . ├── CLAUDE.md # Claude Code 主指令 ├── README.md # 项目说明(人工补充) ├── .env.local # 本地凭据(不入 git) ├── .gitignore ├── .githooks/ # 项目级 git hooks │ └── pre-push # push 前触发本地全量测试闸门 ├── scripts/ # 工具脚本 │ ├── test.sh # 全量测试入口 │ └── setup-test-db.sh # DROP+CREATE 测试库 ├── sql/ │ └── migrations/ # Flyway 顺序迁移文件 │ └── V1__initial_schema.sql ├── docs/ # 见 § 四 ├── backend/ # 后端工程(Spring Boot + Maven) └── frontend/ # 前端工程(React + Vite) ``` ## 二、后端目录 根包名:`com.xly.erp` ``` backend/ ├── pom.xml └── src/ ├── main/ │ ├── java/<根包路径>/ │ │ ├── ErpApplication.java # Spring Boot 启动类 │ │ ├── common/ # 通用组件 │ │ │ ├── response/ # 统一响应封装 │ │ │ ├── exception/ # 全局异常处理 │ │ │ ├── security/ # JWT / Security 配置 │ │ │ └── util/ │ │ └── module/ # 业务模块(按 docs/01 模块代码分目录) │ │ ├── usr/ # USR 用户管理 │ │ │ ├── controller/ │ │ │ ├── service/ │ │ │ ├── mapper/ │ │ │ ├── entity/ │ │ │ ├── dto/ │ │ │ └── vo/ │ │ └── mod/ # MOD 模块管理 │ │ ├── controller/ │ │ ├── service/ │ │ ├── mapper/ │ │ ├── entity/ │ │ ├── dto/ │ │ └── vo/ │ └── resources/ │ ├── application.yml # 主配置 │ ├── application-dev.yml # dev profile │ ├── application-test.yml # test profile │ └── mapper/ # MyBatis-Plus XML(按模块子目录) └── test/ └── java/<根包路径>/ └── module/ # 与 main 同结构,测试代码 ``` ## 三、前端目录 ``` frontend/ ├── package.json ├── vite.config.ts ├── index.html └── src/ ├── main.tsx # 应用入口 ├── App.tsx # 根组件 + 全局 ConfigProvider ├── api/ # 接口封装(按模块分文件,如 usr.ts / mod.ts) ├── components/ # 通用组件 ├── layouts/ # 布局组件(MainLayout 等) ├── pages/ # 业务页面(按模块分目录) │ ├── usr/ # USR 用户管理 │ │ ├── UserList.tsx │ │ ├── UserForm.tsx │ │ └── UserDetail.tsx │ └── mod/ # MOD 模块管理 │ └── ModuleTree.tsx ├── store/ # Redux Toolkit slices ├── hooks/ # 自定义 hooks ├── router/ # 路由配置 ├── utils/ # 工具函数(日期、金额、权限判断等) └── styles/ # 全局样式 / 主题 token ``` ## 四、docs/ 结构 ``` docs/ ├── 01-需求清单/ # 每模块一子目录(_module.md 模块头 + REQ-*.md 卡片) ├── 02-开发计划.md ├── 03-数据库设计文档.md ├── 04-技术规范.md ├── 05-API接口契约.md ├── 06-UI交互规范.md ├── 07-环境配置.md ├── 08-模块任务管理.md ├── 09-项目目录结构.md ├── 10-验收检查清单.md └── superpowers/ # CC 运行时产物 ``` ## 五、命名与放置约定 - **根包**:`com.xly.erp`,所有 Java 类必须在此包或其子包下 - **前端命名空间**:以 `src/` 为根,按模块代码(小写)建子目录 - **Controller**:放 `module//controller/`,类名 `Controller`,提供 RESTful 接口 - **Service**:接口 `Service` + 实现 `ServiceImpl`,放 `module//service/[impl/]` - **Mapper**:接口放 `module//mapper/`,XML 放 `resources/mapper//` - **DTO**:入参对象,放 `module//dto/`,命名 `DTO`(如 `CreateUserDTO`) - **VO**:响应对象,放 `module//vo/`,命名 `VO` 或 `VO`(如 `UserListVO`) - **Entity**:与数据库表 1:1 映射,放 `module//entity/` - **前端组件**:通用组件放 `src/components/`,业务专用组件放 `src/pages//components/` - **前端页面**:每个 REQ 一个页面文件,放 `src/pages//`,PascalCase 命名 - **前端路由**:集中在 `src/router/`,按模块分文件后聚合