Files
easygoadmin-wiki/EasyGoAdmin_Gin_EleVue/zh/introduction.md
T
2026-10-25 17:24:27 +08:00

172 lines
10 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 1.1 项目介绍
:::tip 概述
EasyGoAdmin 是企业级多租户后台管理基座,后端基于 Gin + GORM,前端基于 Vue3 + ElementPlus,完全前后端分离架构。内置完善的 RBAC 权限体系(权限颗粒度精细至按钮级别)、多租户数据隔离、角色行级数据权限,预置用户、角色、菜单、部门、岗位、职级、日志、字典、配置、参数、定时任务、代码生成器等基础功能模块,开箱即用。
:::
## 软件说明
基于 Go 1.27、Gin v1.12、GORM v1.31、Vue3、TypeScript、Vite、ElementPlus 等技术栈构建的企业级前后端分离后台管理系统,支持 MySQL、PostgreSQL、SQL Server、SQLite 四种数据库内置驱动(Oracle 经构建标签启用),通过配置文件一键切换,并内置五方言整库迁移工具。
后端采用 Go 语言,基于 Gin 路由、GORM 数据库操作、RouteSpec 反射元数据等主流技术栈;前端基于 Vue3、TypeScript、Vite 构建,采用 ElementPlus 框架,遵循前后端分离主流设计思想。
系统采用完全前后端分离架构,前端通过 API 调用后端服务实现数据交互。25 张业务表落地 27 个业务模块,全部按"四件套"平铺实现(dto / repository / service / handler),一个模块四个同名文件,检索与审查一目了然。
## 技术栈特性
+ **反射元数据驱动**:RouteSpec 声明表即路由定义,一条声明同时驱动路由注册、权限校验、操作日志与 OpenAPI 文档,"声明即事实",杜绝多处不一致
+ **声明式 CRUD**:ModuleSpec 泛型基座 + 生命周期钩子,模块只需声明差异点(筛选、字典、文件字段、钩子),即可获得完整增删改查能力
+ **类型安全**:Go 强类型 + 请求结构体 binding/msg 标签,绑定引擎运行时自动验证请求参数(多规则多消息分号映射)
+ **分层架构**:handler(HTTP 极薄委托)→ service(业务)→ repository(数据访问),职责清晰,依赖单向
+ **基座复用**:ModuleSpec + repository.Base + service 共享层组合式复用,无继承地狱
+ **模块可插拔**:业务模块固定四文件位于 internal 对应分层目录,跨模块同包直调,init 注册接线
+ **多数据库支持**:`database.default.driver` 一键切换五种数据库,四方言驱动内置预注册
+ **中间件可扩展**:trace、CORS、metrics、response、限流、演示模式、JWT、租户、权限、日志十层中间件链式处理
+ **RBAC 权限**:后端 RouteSpec 权限节点 + 前端 v-perm 指令双重校验,精确到按钮级
+ **多租户隔离**:GORM 全局钩子自动处理 tenant_id 过滤与填充,业务代码零感知
+ **代码生成器**:根据数据库表结构一键生成前后端 CRUD 代码,同步创建菜单、权限节点、字典与路由声明
## 集成模块
+ **登录认证**:JWT 双令牌认证、图形验证码、OAuth2 兼容(refresh_token 轮换)、登录日志记录
+ **个人中心**:个人信息修改、头像上传、密码重置
+ **用户管理**:用户数据录入与管理,支持密码加密、头像上传、Excel 导入导出、行政区划地址
+ **角色管理**:基于 RBAC 权限架构体系,支持权限分配与四档数据权限(全部/本部门及以下/本部门/仅本人)
+ **菜单管理**:权限菜单数据管理以及菜单节点权限数据管理
+ **部门管理**:组织架构部门数据管理,树形结构,删除有子级/用户守卫
+ **岗位管理**:用户岗位属性数据统一维护管理
+ **职级管理**:用户职级属性数据统一维护管理,支持 Excel 导入导出
+ **日志管理**:登录日志、操作日志、任务日志管理维护,中间件自动异步记录
+ **参数管理**:系统核心参数的定义和管理
+ **配置管理**:动态配置参数的统一管理和设置(配置 + 配置项两级结构)
+ **字典管理**:字典数据、字典项数据的管理和维护,缓存驱动 {field}Text 显示
+ **通知公告**:通知、公告等站内数据的管理
+ **行政区划**:全国行政区划数据管理和维护(大数据量表,级联懒加载)
+ **文件模板**:系统中使用的文件模板上传和管理
+ **文件上传**:统一的文件上传服务,两段式上传(临时中转 → 表单保存转正)
+ **友情链接**:外部链接和合作伙伴链接数据管理
+ **文章管理**:文章内容发布和管理,支持富文本编辑([IMG_URL] 持久化契约)
+ **任务调度**:定时任务定义和统一调度管理(数据驱动、HTTP/本地双形态、多实例执行锁)
+ **代码生成**:根据数据库表结构一键生成前后端 CRUD 代码(HTTP + CLI 双入口)
+ **分类管理**:文章分类、商品分类等树形分类数据管理
+ **租户管理**:多租户数据隔离,租户状态与过期管理,事务化开户
+ **在线用户**:在线会话查看与强退(双令牌一并拉黑,防刷新复活)
+ **服务器监控**:运行时信息、内存、磁盘、数据库与缓存连通性监控
+ **缓存监控**:Redis INFO 解析(内存降级时返回 memory 模式标识)
## 软件出处
+ 软件名称:EasyGoAdmin前后端分离Gin+ElementPlus版本
+ 软件作者:@小蚂蚁云团队
+ 软件协议:Apache-2.0
+ 官网网址:[https://www.easygoadmin.vip](https://www.easygoadmin.vip)
+ 文档网址:[http://docs.gin.elevue.easygoadmin.vip](http://docs.gin.elevue.easygoadmin.vip)
+ 演示地址:[http://manage.gin.elevue.easygoadmin.vip](http://manage.gin.elevue.easygoadmin.vip)
## 软件版本
| 版本名称 | 说明 | 地址 |
|:---------|:-----|:-----|
| GoFrame+Layui混编版 | 基于 GoFrame、Layui 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_Layui) |
| GoFrame+ElementPlus前后端分离版 | 基于 GoFrame v2、Vue3、ElementPlus 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_EleVue) |
| GoFrame+AntDesign前后端分离版 | 基于 GoFrame、Vue3、AntDesign 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_AntdVue) |
| GoFrame+NaiveUI前后端分离版 | 基于 GoFrame、Vue3、NaiveUI 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_NaiveVue) |
| Gin+Layui混编版 | 基于 Gin、Layui 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Gin_Layui) |
| Gin+ElementPlus前后端分离版 | 基于 Gin、Vue3、ElementPlus 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Gin_EleVue) |
| Gin+AntDesign前后端分离版 | 基于 Gin、Vue3、AntDesign 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Gin_AntdVue) |
| Gin+NaiveUI前后端分离版 | 基于 Gin、Vue3、NaiveUI 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Gin_NaiveVue) |
| Beego+Layui混编版 | 基于 Beego、Layui 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Beego_Layui) |
| Beego+ElementPlus前后端分离版 | 基于 Beego、Vue3、ElementPlus 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Beego_EleVue) |
| Beego+AntDesign前后端分离版 | 基于 Beego、Vue3、AntDesign 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Beego_AntdVue) |
| Beego+NaiveUI前后端分离版 | 基于 Beego、Vue3、NaiveUI 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Beego_NaiveVue) |
| Iris+Layui混编版 | 基于 Iris、Layui 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Iris_Layui) |
| Iris+ElementPlus前后端分离版 | 基于 Iris、Vue3、ElementPlus 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Iris_EleVue) |
| Iris+AntDesign前后端分离版 | 基于 Iris、Vue3、AntDesign 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Iris_AntdVue) |
| Iris+NaiveUI前后端分离版 | 基于 Iris、Vue3、NaiveUI 等技术栈 | [Gitee地址](https://gitee.com/easygoadmin/EasyGoAdmin_Iris_NaiveVue) |
> 本文档为 **Gin+ElementPlus前后端分离版** 的开发文档;其他技术栈版本请查阅对应仓库。
## 模块展示
<table>
<tbody>
<tr>
<td><img src="/demo/1.png"/></td>
<td><img src="/demo/2.png"/></td>
</tr>
<tr>
<td><img src="/demo/3.png"/></td>
<td><img src="/demo/4.png"/></td>
</tr>
<tr>
<td><img src="/demo/5.png"/></td>
<td><img src="/demo/6.png"/></td>
</tr>
<tr>
<td><img src="/demo/7.png"/></td>
<td><img src="/demo/8.png"/></td>
</tr>
<tr>
<td><img src="/demo/9.png"/></td>
<td><img src="/demo/10.png"/></td>
</tr>
<tr>
<td><img src="/demo/11.png"/></td>
<td><img src="/demo/12.png"/></td>
</tr>
<tr>
<td><img src="/demo/13.png"/></td>
<td><img src="/demo/14.png"/></td>
</tr>
<tr>
<td><img src="/demo/15.png"/></td>
<td><img src="/demo/16.png"/></td>
</tr>
<tr>
<td><img src="/demo/17.png"/></td>
<td><img src="/demo/18.png"/></td>
</tr>
<tr>
<td><img src="/demo/19.png"/></td>
<td><img src="/demo/20.png"/></td>
</tr>
<tr>
<td><img src="/demo/21.png"/></td>
<td><img src="/demo/22.png"/></td>
</tr>
<tr>
<td><img src="/demo/23.png"/></td>
<td><img src="/demo/24.png"/></td>
</tr>
<tr>
<td><img src="/demo/25.png"/></td>
<td><img src="/demo/26.png"/></td>
</tr>
<tr>
<td><img src="/demo/27.png"/></td>
<td><img src="/demo/28.png"/></td>
</tr>
<tr>
<td><img src="/demo/29.png"/></td>
<td><img src="/demo/30.png"/></td>
</tr>
<tr>
<td><img src="/demo/31.png"/></td>
<td><img src="/demo/32.png"/></td>
</tr>
<tr>
<td><img src="/demo/33.png"/></td>
<td><img src="/demo/34.png"/></td>
</tr>
</tbody>
</table>
## 开源协议
开源软件遵循 [Apache 2.0 协议](https://www.apache.org/licenses/LICENSE-2.0.html)。
允许商业使用,但务必保留包括但不限于开源团队、软件作者、版权说明等信息。
## 版权信息
版权所有 Copyright © 2026 [www.easygoadmin.vip](https://www.easygoadmin.vip) All rights reserved。