{"id":51618098,"url":"https://github.com/lakernote/easy-next-admin","last_synced_at":"2026-07-12T16:01:55.737Z","repository":{"id":366506830,"uuid":"1276442166","full_name":"lakernote/easy-next-admin","owner":"lakernote","description":"Spring Boot 3 + Vue 3 企业后台脚手架，内置 RBAC 权限、组织用户、审计、监控、工作流与文件中心。","archived":false,"fork":false,"pushed_at":"2026-06-22T05:19:07.000Z","size":2036,"stargazers_count":0,"open_issues_count":0,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-06-22T07:18:31.556Z","etag":null,"topics":["admin-dashboard","element-plus","enterprise-admin","java17","mybatis-plus","rbac","spring-boot","typescript","vue3","workflow"],"latest_commit_sha":null,"homepage":"","language":"Java","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/lakernote.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":"CODE_OF_CONDUCT.md","threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":"SECURITY.md","support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":"AGENTS.md","dco":null,"cla":null}},"created_at":"2026-06-22T01:31:04.000Z","updated_at":"2026-06-22T05:19:10.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/lakernote/easy-next-admin","commit_stats":null,"previous_names":["lakernote/easy-next-admin"],"tags_count":null,"template":false,"template_full_name":null,"purl":"pkg:github/lakernote/easy-next-admin","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lakernote%2Feasy-next-admin","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lakernote%2Feasy-next-admin/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lakernote%2Feasy-next-admin/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lakernote%2Feasy-next-admin/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/lakernote","download_url":"https://codeload.github.com/lakernote/easy-next-admin/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/lakernote%2Feasy-next-admin/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":35395749,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-26T15:22:16.424Z","status":"online","status_checked_at":"2026-07-12T02:00:06.386Z","response_time":87,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["admin-dashboard","element-plus","enterprise-admin","java17","mybatis-plus","rbac","spring-boot","typescript","vue3","workflow"],"created_at":"2026-07-12T16:01:50.942Z","updated_at":"2026-07-12T16:01:55.729Z","avatar_url":"https://github.com/lakernote.png","language":"Java","funding_links":[],"categories":[],"sub_categories":[],"readme":"# EasyNextAdmin\n\n[![CI](https://github.com/lakernote/easy-next-admin/actions/workflows/ci.yml/badge.svg)](https://github.com/lakernote/easy-next-admin/actions/workflows/ci.yml)\n[![License](https://img.shields.io/badge/license-Apache--2.0-blue.svg)](LICENSE)\n[![Java](https://img.shields.io/badge/Java-17%2B-orange.svg)](https://adoptium.net/)\n[![Vue](https://img.shields.io/badge/Vue-3-42b883.svg)](https://vuejs.org/)\n[![GitHub](https://img.shields.io/badge/GitHub-lakernote%2Feasy--next--admin-0969da?logo=github\u0026logoColor=white)](https://github.com/lakernote/easy-next-admin)\n[![Gitee](https://img.shields.io/badge/Gitee-lakernote%2Feasy--next--admin-c71d23?logo=gitee\u0026logoColor=white)](https://gitee.com/lakernote/easy-next-admin)\n\nEasyNextAdmin 是一套面向中文企业后台二次开发的 Spring Boot 3 + Vue 3 开源脚手架。它不是只展示页面的空壳模板，而是把企业后台常见的用户组织、角色权限、菜单路由、数据范围、审计、监控、文件、消息、定时任务和轻量流程串成一套可运行的工程基线。\n\n如果你要做 OA、运营后台、审批流、权限审计、运维管理、内部工具或企业信息化系统，EasyNextAdmin 的目标是让团队拉下代码后少搭基础设施，直接进入业务开发。\n\n## 为什么选择 EasyNextAdmin\n\n- **真实后台闭环**：登录、菜单、按钮权限、角色授权、数据范围、用户导入导出、审计、监控、WebLog、文件和流程都能本地跑通。\n- **前后端契约清晰**：菜单和权限资源以服务端 `sys_menu` 为事实源，前端动态路由和按钮权限都来自后端授权结果。\n- **技术栈新且克制**：Spring Boot 3、Java 17、Vue 3、TypeScript、Vite、Element Plus，不引入低代码、BI 或完整 BPM 平台的复杂度。\n- **适合二开学习**：代码按企业后台真实模块拆分，核心位置保留简洁中文注释，便于团队理解和扩展。\n\n## 项目状态\n\n当前处于公开 alpha 阶段，核心功能已具备本地启动、测试和构建验证；生产上线前仍应替换数据库、Redis、域名、HTTPS、默认账号密码和会话安全方案。\n\n| 适合 | 不适合 |\n| --- | --- |\n| 中文企业后台二次开发、权限/组织/审计/流程类内网系统、需要前后端分离脚手架的团队 | 低代码平台、BI 平台、完整 BPM 引擎、只展示 UI 模板的项目 |\n\n## 界面预览\n\n业务工作台：\n\n![工作台](docs/assets/screenshots/readme-dashboard.png)\n\n核心业务流：\n\n| 提交申请单 | 审批待办列表 | 审批处理 |\n| --- | --- | --- |\n| ![提交申请单](docs/assets/screenshots/readme-submit-form.png) | ![审批待办列表](docs/assets/screenshots/readme-approval-list.png) | ![审批处理](docs/assets/screenshots/readme-approval-action.png) |\n\n\u003cdetails\u003e\n\u003csummary\u003e查看更多界面截图\u003c/summary\u003e\n\n![登录入口](docs/assets/screenshots/readme-login.png)\n\n![用户管理](docs/assets/screenshots/readme-users.png)\n\n\u003c/details\u003e\n\n## 技术栈\n\n| 层 | 技术 |\n| --- | --- |\n| 后端 | Java 17、Spring Boot 3.5、MyBatis-Plus、Flyway、Spring Actuator、springdoc-openapi、Redisson、Caffeine |\n| 前端 | Vue 3、TypeScript、Vite、Pinia、Vue Router、Axios、Element Plus、ECharts、LogicFlow |\n| 本地依赖 | MySQL 8.4 LTS、Redis 7.4 |\n| 部署 | 后端可打 JAR 或 Docker 镜像，前端输出静态资源并由 Nginx 托管 |\n\n## 快速启动\n\n环境要求：\n\n- JDK 17+\n- Maven 3.9+\n- Node.js 22 LTS 或 24 LTS，以及随 Node.js 安装的 npm\n- Docker 和 Docker Compose\n\n启动本地依赖：\n\n```bash\ndocker compose up -d\n```\n\n启动后端：\n\n```bash\ncd easy-next-admin-server\nmvn spring-boot:run\n```\n\n启动前端：\n\n```bash\ncd easy-next-admin-web\nnpm ci\nnpm run dev\n```\n\n首次启动时，后端会通过 Flyway 自动创建表结构和初始化演示数据。\n\n访问地址：\n\n- 前端：http://127.0.0.1:5174\n- 后端：http://127.0.0.1:8080\n- OpenAPI：http://127.0.0.1:8080/swagger-ui.html\n\n默认演示账号。登录页只在 `local` profile 通过 `/api/auth/demo-accounts` 返回这些账号；生产 profile 不返回演示密码，正式环境必须替换初始化密码：\n\n| 角色 | 账号 | 密码 | 用途 |\n| --- | --- | --- | --- |\n| 超级管理员 | `admin` | `admin` | 查看和维护全部内置能力 |\n| 部门负责人 | `manager` | `easynext` | 组织、流程和部门数据 |\n| 普通员工 | `staff` | `easynext` | 工作台和个人流程入口 |\n| 审计人员 | `auditor` | `easynext` | 审计记录和财务复核类待办 |\n\n更完整的本地开发说明见 [本地开发](docs/getting-started.md)。\n\n## 内置能力\n\n- **工作台**：聚合个人待办、常用申请、系统能力和关键统计。入口：`/dashboard`\n- **系统管理**：用户、直属上级、用户导入导出、角色、菜单权限、部门负责人、组织架构和文件中心。入口：`/system/users`、`/system/roles`、`/system/menus`、`/system/departments`、`/system/files`\n- **报表中心**：组织人员台账和采购流程复核的 A4 纸质报表预览与打印。入口：`/reports/enterprise`\n- **运行监控**：应用运行状态、在线用户、缓存指标、缓存键值和在线请求日志。入口：`/monitor/server`、`/monitor/online`、`/monitor/cache`、`/monitor/cache-list`、`/monitor/weblog`\n- **审计中心**：登录、操作、数据变更、错误和接口访问审计。入口：`/audit/behavior`\n- **任务调度**：动态任务定义、启停和执行日志。入口：`/schedule/jobs`\n- **流程中心**：统一发起请假、采购、报修流程，处理我的流程；按直属上级、部门负责人、职能角色等规则派单，管理员可监控流程实例和维护流程配置。入口：`/workflow/start`、`/workflow/tasks`、`/workflow/instances`、`/workflow/console`\n- **消息中心**：个人消息、流程通知、审计提醒和任务消息。入口：`/messages`\n- **个人中心**：个人资料、改密、登录历史和会话管理。入口：`/profile/security`\n\n功能说明、组件用法和实现原理见 [功能与组件](docs/features-and-components.md)。\n\n## 工程结构\n\n```text\neasy-next-admin\n├── easy-next-admin-server   # Spring Boot 3 服务端\n│   └── Dockerfile           # 服务端镜像构建\n├── easy-next-admin-web      # Vue 3 + Vite + Element Plus 前端\n│   ├── Dockerfile           # 前端镜像构建\n│   └── nginx.conf           # 前端容器 Nginx 配置\n├── docs                # 开源项目文档\n├── docker-compose.yml  # 本地 MySQL、Redis 依赖\n└── pom.xml             # Maven 聚合工程\n```\n\n菜单、页面路由、角色授权资源和页面权限码以服务端 `sys_menu` 为唯一事实源。前端只通过 `/api/auth/me` 接收当前账号可见菜单，并在 `easy-next-admin-web/src/router/dynamicRoutes.ts` 中把 `component_path` 解析到本地 Vue 页面；按钮权限使用 `v-permission`，后端接口继续由 `@EasyPermission` 兜底。\n\n## 编译打包\n\n后端：\n\n```bash\nmvn -pl easy-next-admin-server -am -DskipTests package\n```\n\n产物：\n\n```text\neasy-next-admin-server/target/easyNextAdmin.jar\n```\n\n前端：\n\n```bash\ncd easy-next-admin-web\nnpm ci\nnpm run build\n```\n\n产物：\n\n```text\neasy-next-admin-web/dist\n```\n\n部署方式、Nginx 反向代理、Docker 构建和生产配置覆盖见 [编译与部署](docs/deployment.md)。\n\n## 发布前验证\n\n发布或提交 PR 前建议至少运行：\n\n```bash\nmvn -pl easy-next-admin-server -am verify\ncd easy-next-admin-web\nnpm ci\nnpm run test:unit\nnpm run build\n```\n\n本仓库已配置 GitHub Actions，在 `main` 分支 push 和 pull request 时会执行后端 `verify`、前端单元测试和前端构建。\n\n## 文档\n\n- [文档目录](docs/README.md)\n- [本地开发](docs/getting-started.md)\n- [编译与部署](docs/deployment.md)\n- [功能与组件](docs/features-and-components.md)\n- [架构与实现原理](docs/architecture.md)\n- [参考项目与借鉴边界](docs/reference-projects.md)\n\n## 开源协作\n\n- [贡献指南](CONTRIBUTING.md)\n- [安全策略](SECURITY.md)\n- [行为准则](CODE_OF_CONDUCT.md)\n\n默认启动不需要额外 `.env` 文件。Docker Compose 依赖端口和前端开发代理都带默认值，确需覆盖时可用命令行环境变量或本机不提交的 `.env` / `easy-next-admin-web/.env.local`。`.editorconfig` 用于统一 IDE/编辑器格式；默认账号和默认密码只用于本地开发，生产环境必须覆盖。\n\n## 参考项目\n\nEasyNextAdmin 主要参考 RuoYi/RuoYi-Vue 的中文企业后台习惯，参考 Vben Admin 的前端权限与路由组织思路，参考 Flowable/Camunda 在流程领域的产品边界，同时直接使用 Element Plus、ECharts、LogicFlow 等开源组件。详细说明见 [参考项目与借鉴边界](docs/reference-projects.md)。\n\n## 许可证\n\n本项目使用 [Apache License 2.0](LICENSE)。\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flakernote%2Feasy-next-admin","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flakernote%2Feasy-next-admin","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flakernote%2Feasy-next-admin/lists"}