项目介绍
ElementAdmin v3 是一个面向二次开发的 Vue 管理后台模板。它保留后台项目普遍需要的运行骨架,把业务差异很大的展示组件、页面案例和领域逻辑留给具体应用。
定位
v3 解决四类稳定问题:
- 登录态建立、恢复和退出。
- 服务端动态路由、菜单与访问控制。
- 桌面端四种布局以及移动端适配。
- 可供多个应用复用的 Request、CRUD、表单、图标和样式基础能力。
它不是低代码平台,也不试图用一个 Schema 描述所有表格、弹窗和详情页。业务页面直接使用 Vue 与 Element Plus,通常更容易理解和维护。
技术栈
| 领域 | 方案 |
|---|---|
| 应用框架 | Vue 3 + TypeScript |
| 构建工具 | Vite |
| UI | Element Plus |
| 状态 | Pinia + pinia-plugin-persistedstate |
| 路由 | Vue Router,业务路由由服务端动态下发 |
| 样式 | UnoCSS + Less + CSS Variables |
| 国际化 | Vue I18n + Element Plus locale |
| 请求 | Axios,通用客户端与应用配置分层 |
| 图表 | ECharts 按模块注册 |
| 工程检查 | Oxlint、Prettier、Stylelint、Husky |
| Monorepo | pnpm workspace |
具体版本以仓库中的 package.json 和 pnpm-lock.yaml 为准,不在文档中重复维护一份容易过期的版本表。
v3 与旧版的区别
旧版文档围绕“集成型后台”编写,提供大量二次封装组件和案例。v3 改为“公共模板”定位,主要变化如下:
| 旧版思路 | v3 思路 |
|---|---|
| 静态路由、前端过滤、动态路由并存 | 业务路由只使用服务端动态路由 |
| Form、Table、Search、Dialog 等展示组件统一封装 | 只保留与 UI 无关的表单和 CRUD 状态能力 |
| 图标能力集中在共享组件中 | 共享包负责渲染,每个应用注册自己的离线图标 |
| 单应用目录 | apps/* + packages/*,为多应用预留边界 |
| 大量 Hooks 和 Utils | 只保留跨业务稳定且有明确使用场景的能力 |
| ESLint | Oxlint |
旧版文档
旧文档仍可用于了解项目历史,但代码示例和目录不适用于 v3。请以当前文档与当前分支代码为准。
默认能力
- 默认账号:
admin - 默认密码:
admin - 默认语言:简体中文
- 默认布局:经典侧边栏
- 默认路由:登录后从
/mock/role/list获取 - 默认图标:应用内离线白名单
不包含什么
以下能力应由业务按需接入,模板不预置:
- 复杂 Table、Search、Dialog、Detail 页面封装。
- 富文本、二维码、视频、瀑布流等展示组件。
- 具体 RBAC 数据模型、按钮权限和数据权限规则。
- 上传、消息中心、个人中心和组织架构页面。
- 与具体后端框架绑定的接口生成器。
当多个应用出现相同且稳定的实现时,再把它下沉到 packages,不要提前为未知需求增加抽象。