外观
介绍
字数
1772 字
预计阅读
7 分钟
栖梧(Qiwu,项目名 qiwu-vue-admin)是一个 Node 全栈的管理后台模板。它提供企业后台常用的基础能力,包括登录、单点登录、权限、组织架构、字典、日志、监控、定时任务、消息、文件、代码生成和审批流程。你只需要在上面写自己的业务。
想知道我为什么做这个项目,见项目由来。
当前状态
项目正在开发中,目前是 0.14.0 版本,移动端(发布前的真机核对)、演示模式等还在开发中。v1.0 发布之前,接口和表结构可能还会调整。下面的功能表标出了每一项的状态。
适合谁用
- 学生和编程新手:从安装环境、终端用法讲起,一步步带你做出第一个功能模块。有专门的从零开始教程。
- 想做全栈的前端开发者:会 Vue 就能上手,后端同样使用 TypeScript,不需要再学一门语言。有专门的后端入门。
- 从 Java 转到 Node 的后端开发者:功能和 RuoYi 这类后台对应,概念一看就懂。有专门的对照文档。
- 全栈小团队和外包工作室:一个仓库交付整套后台,前后端共用类型和校验规则。
- 独立开发者:做 SaaS 或内部工具时,直接拿它当后台底座。
技术栈
| 部分 | 选型 |
|---|---|
| 后端 | NestJS 12(ESM)、TypeORM、MySQL 8.4+、Redis 7+、Socket.IO |
| 前端 | Vue 3.5、Vite 8、Element Plus、Pinia、vue-i18n |
| 共享 | @qiwu/shared:zod 校验规则、类型、错误码、权限常量 |
| 工程 | pnpm workspace、TypeScript 6、Vitest、Playwright、oxlint + ESLint |
和 Java 后台模板有什么不同
功能范围参考了 RuoYi 和芋道的 system/infra 部分。表名、接口、权限写法、字典编码和界面文字都不相同,接口协议也不兼容。
主要区别在于:
- 一种语言:前后端都是 TypeScript,同一个 zod 规则同时用于后端校验、前端表单和接口文档。
- 更严格的默认安全:数据范围越界统一返回 404,不泄露记录是否存在;防越权授予、密钥加密存储、上传文件按内容识别类型等措施默认开启。详见安全基线。
- 原生国际化:从第一行代码起,所有文案都通过翻译键输出,不是事后补充的。
- Node 生态的取舍:Java 专属的功能(比如 Druid 监控、JVM 面板)换成了对应的替代品,例如 MySQL 状态卡和 Node 运行时面板。
功能一览
✅ 已完成 🚧 开发中 ⏸ 以后再做
每个功能的详细介绍见功能总览。
系统管理
| 功能 | 状态 |
|---|---|
| 用户(部门树筛选、导入导出、重置密码、分配角色) | ✅ |
| 角色(菜单授权、数据范围、分配用户、防越权授予) | ✅ |
| 菜单(目录/页面/操作三种类型,"操作"即按钮权限;外链、内嵌页面、缓存) | ✅ |
| 部门、岗位 | ✅ |
| 字典、参数设置 | ✅ |
| 通知公告(富文本、铃铛提醒、已读统计) | ✅ |
| 个人中心(资料、改密、头像裁剪、手机号换绑) | ✅ |
| App 版本(登记移动端 App 的热更新包和整包,App 启动时提示更新) | ✅ |
安全与审计
| 功能 | 状态 |
|---|---|
| 账号密码登录、短信登录、注册(默认关闭)、短信找回密码 | ✅ |
| 图形验证码 / 滑块验证码 | ✅ |
| 登录失败锁定、IP 黑名单、首次登录强制改密、密码过期 | ✅ |
| 微信小程序登录、账号绑定(默认关闭) | ✅ |
| 在线用户、强制下线(对方实时掉线) | ✅ |
| 操作日志、登录日志、API 访问日志、API 错误日志 | ✅ |
| 演示模式(只读) | 🚧 |
系统工具与监控
| 功能 | 状态 |
|---|---|
| 代码生成(单表 / 树表 / 主子表,页面与命令行两种方式,可以同时生成移动端页面) | ✅ |
| 定时任务(可视化 Cron、错过策略、重试、超时、执行日志) | ✅ |
| 文件存储(本地 / S3 兼容、浏览器直传、私有文件鉴权下载) | ✅ |
| 站内信、邮件、短信(阿里云 / 腾讯云) | ✅ |
| 服务器、MySQL、Redis 监控,缓存管理 | ✅ |
| 地区树、IP 归属地 | ✅ |
| 接口文档(Swagger) | ✅ |
| 表单设计器(人员、部门、字典、附件、地区组件,自动算天数和明细合计,导出 JSON 和 Vue 代码) | ✅ |
工作流
| 功能 | 状态 |
|---|---|
| 流程引擎(会签 / 或签 / 依次、并行与条件分支、退回、转办、加签、撤回、超时提醒) | ✅ |
| 审批中心(待办、已办、我的发起、抄送我的、催办、打印) | ✅ |
| 请假示例(业务表单接入流程) | ✅ |
| 流程设计器(仿钉钉树形,发布前检查并定位出错节点) | ✅ |
BPMN 设计器(标准流程图画法,发布时转换为树形运行;导入导出 .bpmn、实例详情只读流程图) | ✅ |
| 超时自动处理(到期后自动通过、自动驳回或转给上级) | ✅ |
| 流程模型管理(分类、版本、JSON 导出导入)、进度树 | ✅ |
| 动态表单审批(字段权限、表单中的人作审批人、私有附件) | ✅ |
| 零代码审批(新建审批向导,内置通用审批、请假、报销、加班模板) | ✅ |
| 审批数据(按表单字段筛选、导出 Excel) | ✅ |
其他
| 功能 | 状态 |
|---|---|
| 三种布局、多标签页、暗色模式、锁屏、中英文切换 | ✅ |
| OAuth2 授权服务 / 单点登录(授权码 + PKCE,其他系统用这里的账号登录;客户端管理、授权同意页、记住授权) | ✅ |
| 移动端(uni-app:微信小程序、安卓、iOS;登录、工作台、消息、审批(含动态表单)、实时推送、微信订阅消息提醒、App 更新检查已完成,支持浅色和深色主题;发布前的真机核对还在进行) | 🚧 |
| 多租户 | ⏸(已预留扩展点) |
| 其他第三方登录(GitHub、钉钉、企业微信、飞书、微信扫码等) | ⏸ |