Skip to content

项目结构 ​

整体架构 ​

系统采用「前后端分离 + 后端分层模块化」的架构。

后端分层设计 ​

层目录职责依赖方向
基础配置层backend/app/config全局配置、常量、路径、Banner被框架层与业务层使用
框架封装层backend/app/framework封装 FastAPI / SQLAlchemy / Redis / 文件 / 短信 / 任务队列 / WebSocket可调用配置层,不依赖业务层
业务逻辑层backend/app/api组合调用、编排具体业务逻辑依赖配置层 + 框架层

依赖方向:业务层 → 框架层 → 配置层,禁止反向依赖。

后端业务模块分层 ​

每个业务模块(如 module_system/user/)遵循统一的五文件分层:

文件职责
controller.py路由定义与请求处理(薄层),用 XxxRouter 命名
service.py业务逻辑,用 XxxService 命名
crud.py数据库操作,继承 CRUDBase,用 XxxCRUD 命名
schema.py数据校验与序列化(Pydantic),用 Xxx*Schema 命名
model.py数据库模型,继承 ModelMixin + UserMixin,用 XxxModel 命名

目录结构 ​

后端 backend/ ​

text
backend/
├── main.py              # 应用入口:create_app、CLI(start/revision/upgrade)
├── alembic/             # 数据库迁移脚本(alembic)
├── app/
│   ├── app_init.py      # 应用初始化:生命周期、中间件、异常、静态、API 文档
│   ├── config/          # 基础配置层
│   │   ├── settings.py  # 配置加载(按环境读取,含缓存)
│   │   ├── constants.py # 全局常量、枚举(如环境枚举)
│   │   ├── paths.py     # 路径常量
│   │   └── banner.txt   # 启动横幅
│   ├── framework/       # 框架封装层(与业务解耦)
│   │   ├── web/         # 统一响应、异常、中间件、请求封装、分页、状态码
│   │   ├── database/    # 数据库引擎、CRUDBase、Model/Schema 基类
│   │   ├── security/    # JWT、OAuth2、鉴权、权限、限流、加解密、脱敏
│   │   ├── common/      # Redis、日志、缓存等通用能力
│   │   ├── file/        # 文件存储封装
│   │   ├── sms/         # 短信能力
│   │   ├── task_queue/  # 任务队列
│   │   ├── websocket/   # WebSocket 封装
│   │   ├── validation/  # 校验与规整
│   │   └── util/        # 通用工具(控制台、导入等)
│   └── api/             # 业务逻辑层
│       └── v1/
│           ├── module_system/   # 系统管理
│           ├── module_infra/    # 基础设施
│           ├── module_ai/       # AI 大模型
│           └── module_bpm/      # 工作流
├── static/              # 静态资源目录
├── sql/                 # 初始化 SQL
├── tests/               # 后端测试(含 BPM 用例、单元测试用例)
└── pyproject.toml       # 依赖与工具配置(ruff 等)

每个业务模块内部遵循统一的五层文件结构(以 module_infra/file_config 为例):

text
module_infra/file_config/
├── __init__.py     # 保持为空
├── model.py        # 数据库模型(XxxModel,继承 ModelMixin/UserMixin)
├── schema.py       # 数据校验与序列化(Base/Create/Update/Out + QueryParam)
├── crud.py         # 数据访问(XxxCRUD,继承 CRUDBase)
├── service.py      # 业务逻辑(XxxService)
├── controller.py   # 路由定义(XxxRouter,薄层)
└── task.py         # 可选的定时/异步任务

前端 frontend/ ​

text
frontend/
├── apps/
│   └── web-ele/                  # 主业务应用(Vue 3 + Vite)
│       ├── src/
│       │   ├── api/              # 接口请求与适配层(按子系统分子目录)
│       │   │   ├── core/ request.ts   # 请求出口与归一化
│       │   │   ├── system/ ai/ bpm/ infra/  # 各子系统接口
│       │   ├── views/            # 页面(system/ai/bpm/infra/dashboard)
│       │   ├── router/           # 路由与守卫(routes/modules 按模块拆分)
│       │   ├── layouts/          # 布局
│       │   ├── store/            # 状态管理
│       │   ├── components/       # 业务/通用组件
│       │   ├── adapter/          # 适配层
│       │   ├── locales/          # 国际化
│       │   ├── utils/ types/ assets/ plugins/
│       │   ├── app.vue main.ts bootstrap.ts preferences.ts
│       └── vite.config.ts
├── packages/                    # 公共能力包
│   ├── @core/                   # 框架核心:base / composables / preferences / ui-kit
│   ├── stores/                  # 全局状态(access/user/auth…)
│   ├── utils/ constants/ effects/ icons/ locales/ styles/ types/
├── internal/                    # 工程内部工具(不发布)
│   ├── lint-configs/ node-utils/ tailwind-config/ tsconfig/ vite-config/
├── scripts/                     # 构建/代码生成脚本
├── turbo.json pnpm-workspace.yaml
└── oxlint.config.ts eslint.config.mjs stylelint.config.mjs

前后端目录的对应关系(便于定位改动落点):

后端子系统后端目录前端页面前端接口
系统管理module_systemviews/systemapi/system
基础设施module_infraviews/infraapi/infra
AI 大模型module_aiviews/aiapi/ai
BPM工作流module_bpmviews/bpmapi/bpm

运维部署 devops/ ​

text
devops/                        
    ├── docker/                         
    │   ├── backend/                    # 后端镜像构建(Dockerfile)
    │   ├── mysql/                      # MySQL 初始化脚本
    │   ├── nginx/                      # 反向代理:nginx.conf / ssl / web
    │   ├── milvus/                     # Milvus 官方脚本
    │   └── docker-compose.prod.yaml    # 生产环境容器编排
    └── deploy.sh                       # 一键部署脚本

端到端测试 tests/ ​

text
tests/agent-browser/             # 端到端自动化测试:基于agent-browser
├── README.md                    # 本模块说明:环境准备、执行约定、命令对照表
├── cases/                       # 测试用例(按模块组织,可复用)
│   └── system-post.md           # 系统管理-岗位管理用例
├── results/                     # 测试结果(按 日期-模块 归档)
│   └── 2026-09-20-system-post/
│       ├── report.md            # 测试报告
│       └── assets/              # 过程截图(report.md 相对路径引用)
└── tmp/                         # 临时产物(导出文件等),不入库