Vue3 管理后台
核心定位
Vue3 管理后台是 RuoYi 的主推前端方案,也是业务功能最完整的前端项目。如果你不确定选哪个前端,就选这个——所有 14 个子系统的页面都在这里最先落地。
技术栈:Vue3 + TypeScript + Vite + Element Plus + Pinia
适合什么样的用户
| 用户画像 | 为什么选这个 |
|---|---|
| 追求稳定性的团队 | 所有功能最先在这里实现,经过最充分的测试 |
| Element Plus 生态用户 | 组件库成熟、文档完善、社区活跃 |
| 需要最全业务功能 | 14 个子系统全部有对应页面 |
| 二次开发场景 | 代码结构清晰,模块化程度高 |
项目架构
graph TB
subgraph 入口
MAIN["main.ts
应用入口"] end subgraph 核心层["核心层"] ROUTER["router/
路由配置"] STORE["store/
Pinia 状态管理"] UTILS["utils/
工具函数"] end subgraph 请求层["请求层"] AXIOS["utils/request.ts
axios 封装
baseURL / timeout / 拦截器"] API["api/
按模块划分 API"] MOCK["mock/
Mock 数据"] end subgraph 视图层["视图层(按子系统划分)"] SYS_V["views/system/
系统管理"] BPM_V["views/bpm/
工作流"] CRM_V["views/crm/
客户管理"] ERP_V["views/erp/
进销存"] MALL_V["views/mall/
商城"] end subgraph 组件层 COMPS["components/
公共组件"] DIRS["directives/
自定义指令"] PLUGINS["plugins/
插件"] end MAIN --> ROUTER MAIN --> STORE ROUTER --> 视图层 视图层 --> API API --> AXIOS AXIOS --> UTILS
应用入口"] end subgraph 核心层["核心层"] ROUTER["router/
路由配置"] STORE["store/
Pinia 状态管理"] UTILS["utils/
工具函数"] end subgraph 请求层["请求层"] AXIOS["utils/request.ts
axios 封装
baseURL / timeout / 拦截器"] API["api/
按模块划分 API"] MOCK["mock/
Mock 数据"] end subgraph 视图层["视图层(按子系统划分)"] SYS_V["views/system/
系统管理"] BPM_V["views/bpm/
工作流"] CRM_V["views/crm/
客户管理"] ERP_V["views/erp/
进销存"] MALL_V["views/mall/
商城"] end subgraph 组件层 COMPS["components/
公共组件"] DIRS["directives/
自定义指令"] PLUGINS["plugins/
插件"] end MAIN --> ROUTER MAIN --> STORE ROUTER --> 视图层 视图层 --> API API --> AXIOS AXIOS --> UTILS
关键设计
axios 请求封装
baseURL: /api
timeout: 30000ms
拦截器:
- 请求拦截:自动附加 Token
- 响应拦截:统一错误处理、Token 过期跳转登录页
页面文件组织
每个业务页面通常包含:
views/erp/purchase/order/
├── index.vue # 列表页面
├── form.vue # 表单弹窗
└── const.ts # 常量定义
权限控制
菜单和按钮都通过权限标识控制:
// 按钮权限示例
<el-button v-hasPermi="['erp:purchase-order:create']">新增</el-button>
// 菜单由后端返回,前端根据角色动态渲染
与其他前端的对比
| 维度 | Vue3 管理后台 | Vben5 | Vue2 |
|---|---|---|---|
| 定位 | 主推,功能最全 | 新一代,架构更先进 | 经典版,兼容 Vue2 |
| UI 库 | Element Plus | Ant Design / Element Plus | Element UI |
| 业务功能 | ✅ 全覆盖 | 🚧 逐步迁移中 | ✅ 全覆盖 |
| 开发体验 | ⭐⭐⭐⭐ | ⭐⭐⭐⭐⭐ | ⭐⭐⭐ |
| 适用场景 | 新项目首选 | 追求最新技术栈 | Vue2 存量项目 |
快速上手
# 1. 进入前端目录
cd yudao-ui-admin-vue3
# 2. 安装依赖
pnpm install
# 3. 启动开发服务器
pnpm run dev
# 4. 访问
http://localhost:80