项目介绍
Nest Vue Admin 是一款基于现代技术栈构建的企业级全栈后台管理系统,融合了 NestJS、Vue3、Element Plus 和 Prisma 等前沿技术,为开发者提供高效、稳定、可扩展的后台解决方案。
技术栈
后端
| 技术 | 版本 | 说明 |
|---|---|---|
| NestJS | 11.x | 渐进式 Node.js 框架 |
| Prisma | 6.x | 下一代 ORM |
| MySQL | 5.7+ | 关系型数据库 |
| Redis | - | 缓存中间件 |
| Passport | - | JWT 认证 |
| Swagger | - | API 文档自动生成 |
| Winston | - | 日志管理 |
前端
| 技术 | 版本 | 说明 |
|---|---|---|
| Vue 3 | 3.5+ | 渐进式前端框架 |
| Element Plus | 2.x | UI 组件库 |
| Pinia | 3.x | 状态管理 |
| Vue Router | 4.x | 路由管理 |
| Axios | - | HTTP 请求库 |
| Tailwind CSS | 4.x | 原子化 CSS |
核心特性
代码生成器
拒绝重复造轮子。内置强大的 CRUD 代码生成器,只需定义数据模型,即可一键生成前后端全套代码:
- Prisma Model
- NestJS Controller / Service / DTO
- Vue3 页面组件(列表、表单、详情)
动态路由引擎
后端控制菜单结构,权限驱动路由加载:
- 根据用户角色动态加载菜单
- 支持多级菜单和外部链接
- 菜单与权限深度绑定
RBAC 权限系统
基于角色的访问控制,精确到按钮级别:
- 用户 ←→ 角色 ←→ 菜单/按钮 多对多关系
- 后端 Guard +
@RequirePermissions装饰器 - 前端
v-auth指令控制按钮显隐
完整的系统管理
开箱即用的后台管理功能:
- 用户管理 — 用户 CRUD、部门筛选、数据导出
- 角色管理 — 角色分配、权限绑定
- 菜单管理 — 树形结构、图标选择、路由配置
- 部门管理 — 组织架构树、层级管理
- 岗位管理 — 职位 CRUD、批量操作
- 字典管理 — 枚举数据统一管理
- 通知公告 — 系统公告发布与已读追踪
智能日志系统
- 操作日志:自动记录用户操作行为
- 登录日志:追踪登录 IP、浏览器、设备信息
- 支持日志导出和清理
文件上传
- 支持本地存储和阿里云 OSS
- 文件管理和标签系统
- 拖拽上传、进度展示
消息中心
- 通知公告聚合
- 待办任务管理
- 未读消息计数
项目结构
项目采用 Monorepo 架构,使用 pnpm workspace 管理:
nest-vue-admin/
├── apps/
│ ├── server/ # NestJS 后端
│ │ ├── prisma/ # Prisma Schema 和迁移
│ │ └── src/
│ │ ├── auth/ # 认证模块
│ │ ├── sys/ # 系统管理模块
│ │ ├── tool/ # 工具模块
│ │ ├── upload/ # 文件上传模块
│ │ ├── monitor/ # 监控模块
│ │ └── common/ # 公共模块(守卫、拦截器、装饰器等)
│ └── web/ # Vue3 前端
│ └── src/
│ ├── api/ # API 请求
│ ├── components/ # 公共组件
│ ├── composables/ # 组合式函数
│ ├── directives/ # 自定义指令
│ ├── hooks/ # 自定义 Hook
│ ├── router/ # 路由配置
│ ├── stores/ # Pinia 状态管理
│ ├── types/ # TypeScript 类型
│ ├── utils/ # 工具函数
│ └── views/ # 页面组件
├── package.json
└── pnpm-workspace.yaml