# 概述与目标 本章以「岗位管理(Position)」模块为完整案例,手把手演示从零开发一个业务模块的全流程。学完本章后,你将掌握项目中任意模块的开发方式。 ## 你将学到什么 通过本章的实战演练,你将完整经历以下开发环节: | 环节 | 涉及文件 | 说明 | |:----|:----|:----| | 数据模型 | `models.py` | 定义数据库表结构 | | 请求校验 | `schemas.py` | Pydantic 表单验证 | | 数据访问 | `repository.py` | 封装数据库查询 | | 业务逻辑 | `service.py` | 实现增删改查与业务规则 | | API 端点 | `endpoints/position.py` | 定义 HTTP 接口 | | 路由注册 | `router.py` | 挂载路由到应用 | | 权限配置 | 菜单管理 | 配置权限节点 | | 前端对接 | API + 页面 + 路由 | 前端完整开发 | ## 案例模块:岗位管理 选择「岗位管理」作为案例的原因: 1. **结构典型**:包含完整的 CRUD + 状态管理 + 删除校验,覆盖大多数业务场景 2. **复杂度适中**:字段少(name / status / sort),逻辑清晰,适合入门 3. **依赖简单**:仅被 User 模块引用,无复杂关联关系 4. **代码精简**:后端 4 个文件 + 前端 3 个文件,总计约 500 行代码 ## 模块文件总览 ``` 后端(src/) ├── modules/system/position/ │ ├── models.py # 数据模型 │ ├── schemas.py # 表单验证 │ ├── repository.py # 数据访问层 │ └── service.py # 业务逻辑层 └── api/v1/endpoints/ └── position.py # API 端点层 前端(ui/src/) ├── api/system/ │ └── position.ts # API 请求封装 ├── views/system/ │ └── position/ │ ├── index.vue # 主页面:搜索 + 表格 + 操作 │ ├── edit.vue # 编辑弹窗:新增/编辑表单 │ ├── columns.ts # 表格列定义 │ └── querySchemas.ts # 搜索表单 Schema └── router/routes/ └── system.ts # 路由配置(追加) ``` ## 数据库表结构 岗位表 `fastapi_position` 结构如下: | 字段 | 类型 | 说明 | |:----|:----|:----| | id | int | 主键,自增 | | name | varchar(255) | 岗位名称 | | status | int | 状态:1-在用 2-停用 | | sort | int | 排序号 | | create_user | varchar(255) | 创建人 | | create_time | datetime | 创建时间 | | update_user | varchar(255) | 更新人 | | update_time | datetime | 更新时间 | | is_delete | int | 软删除标记:0-正常 1-已删除 | :::tip 温馨提示 其中 `id`、`create_user`、`create_time`、`update_user`、`update_time`、`is_delete` 由基类 `base_model` 自动提供,业务字段仅需定义 `name`、`status`、`sort`。 ::: ## 开发顺序 建议按以下顺序逐步开发,每完成一步即可验证: ``` 1. models.py → 建表,确认数据库中有 fastapi_position 表 2. schemas.py → 定义验证规则(无独立验证方式,后续端点调用时自动校验) 3. repository.py → 数据访问层(通常只需声明类,无需写代码) 4. service.py → 业务逻辑层(声明差异点 + 自定义方法) 5. endpoint.py → API 端点(声明路由 + 权限装饰器) 6. router.py → 注册路由(一行代码) 7. 权限配置 → 在菜单管理中添加权限节点 8. 前端对接 → API → 页面 → 路由 ``` :::tip 温馨提示 本章每一步都附有完整代码和详细注释。建议对照项目中 `src/modules/system/position/` 目录下的实际源码一起阅读,加深理解。 ::: ## 总结 模块开发实战以岗位管理(position)为例,完整演示从 Model → Schema → Repository → Service → Endpoint → 路由注册 → 权限配置 → 前端 API → 前端页面的全流程。每一步都附有完整代码和详细注释,建议对照实际源码一起阅读。