项目介绍
一款 Go 语言基于Iris、Vue、ElementUI、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式,同时为了敏捷快速开发,框架特地集成了代码生成器,完全自主研发了自定义GO后端服务模板和前端Vue自定义模板,可以根据已建好的表结构,可以快速的一键生成整个模块的所有代码和增删改查等等功能业务,真正实现了低代码开发方式,极大的节省了人力成本的同时提高了开发效率,缩短了研发周期,是一款真正意义上实现组件化、可插拔式的敏捷开发框架。
项目特点
- 模块化、松耦合
- 模块丰富、开箱即用
- 简洁易用、快速接入
- 文档详尽、易于维护
- 自顶向下、体系化设计
- 统一框架、统一组件、降低选择成本
- 开发规范、设计模式、代码分层模型
- 强大便捷的开发工具链
- 完善的本地中文化支持
- 设计为团队及企业使用
内置模块
- 用户管理:用于维护管理系统的用户,常规信息的维护与账号设置。
- 角色管理:角色菜单管理与权限分配、设置角色所拥有的菜单权限。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 职级管理:主要管理用户的职级。
- 岗位管理:主要管理用户担任职务。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 字典管理:对系统中常用的较为固定的数据进行统一维护。
- 配置管理:对系统的常规配置信息进行维护,网站配置管理功能进行统一维护。
- 通知公告:系统通知公告信息发布维护。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 代码生成:一键生成模块CRUD的功能,包括后端Go和前端Vue等相关代码。
- 案例演示:常规代码生成器一键生成后的演示案例。
软件信息
- 软件名称:EasyGoAdmin敏捷开发框架Iris+EleVue版本
系统演示
账号 | 密码 | 操作权限 |
---|---|---|
admin | 123456 | 演示环境无法进行修改删除操作 |
版本说明
版本名称 | 版本说明 | 版本地址 |
---|---|---|
GoFrame+Layui混编版 | 采用GoFrame、Layui等框架研发 | https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_Layui |
Beego+Layui混编版 | 采用Beego、Layui等框架研发 | https://gitee.com/easygoadmin/EasyGoAdmin_Beego_Layui |
Gin+Layui混编版 | 采用Gin、Layui等框架研发 | https://gitee.com/easygoadmin/EasyGoAdmin_Gin_Layui |
Iris+Layui混编版 | 采用Iris、Layui等框架研发 | https://gitee.com/easygoadmin/EasyGoAdmin_Iris_Layui |
GoFrame+EleVue前后端分离版 | 采用GoFrame、Vue、ElementUI等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_EleVue |
Beego+EleVue前后端分离版 | 采用Beego、Vue、ElementUI等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_Beego_EleVue |
Gin+EleVue前后端分离版 | 采用Gin、Vue、ElementUI等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_Gin_EleVue |
Iris+EleVue前后端分离版 | 采用Iris、Vue、ElementUI等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_Iris_EleVue |
GoFrame+AntdVue前后端分离版 | 采用GoFrame、Vue、AntDesign等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_GoFrame_AntdVue |
Beego+AntdVue前后端分离版 | 采用Beego、Vue、AntDesign等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_Beego_AntdVue |
Gin+AntdVue前后端分离版 | 采用Gin、Vue、AntDesign等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_Gin_AntdVue |
Iris+AntdVue前后端分离版 | 采用Iris、Vue、AntDesign等框架研发前后端分离版本 | https://gitee.com/easygoadmin/EasyGoAdmin_Iris_AntdVue |
项目结构
easygoadmin
|-- conf
| `-- app.conf
|-- controllers
| `-- default.go
|-- main.go
|-- models
|-- routers
| `-- router.go
|-- static
| |-- css
| |-- img
| `-- js
|-- tests
| `-- default_test.go
`-- views
`-- index.tpl
路由注册
func main() {
// 创建app结构体对象
app := iris.New()
// 设置调试模式
app.Logger().SetLevel("debug")
// 可选项添加两个内置的句柄(handlers)
// 捕获相对于http产生的异常行为
app.Use(recover.New())
//记录请求日志
app.Use(logger.New())
// 初始化配置
config := iris.WithConfiguration(iris.YAML("./conf/config.yml"))
// 路由注册
router.RegisterRouter(app)
app.Run(iris.Addr(conf.CONFIG.EGAdmin.Addr+":"+conf.CONFIG.EGAdmin.Port), config)
}
// 注册路由
func RegisterRouter(app *iris.Application) {
// 登录验证中间件
app.Use(middleware.CheckLogin)
// 跨域解决方案
crs := cors.New(cors.Options{
AllowedOrigins: []string{"*"},
AllowedMethods: []string{"HEAD", "GET", "POST", "PUT", "PATCH", "DELETE"},
AllowCredentials: true,
AllowedHeaders: []string{"*"},
Debug: true,
})
app.WrapRouter(crs.ServeHTTP)
// 登录
login := app.Party("/")
{
login.Get("/", controller.Login.Login)
login.Post("/login", controller.Login.Login)
login.Get("/captcha", controller.Login.Captcha)
login.Put("/updateUserInfo", controller.Index.UpdateUserInfo)
login.Put("/updatePwd", controller.Index.UpdatePwd)
login.Get("/logout", controller.Index.Logout)
}
// 主页
index := app.Party("/index")
{
index.Get("/menu", controller.Index.Menu)
index.Get("/user", controller.Index.User)
}
// 文件上传
upload := app.Party("/upload")
{
upload.Post("/uploadImage", controller.Upload.UploadImage)
}
// 职级管理
level := app.Party("/level")
{
level.Get("/list", controller.Level.List)
level.Get("/detail/{id:int}", controller.Level.Detail)
level.Post("/add", controller.Level.Add)
level.Put("/update", controller.Level.Update)
level.Delete("/delete/{id:int}", controller.Level.Delete)
level.Put("/status", controller.Level.Status)
level.Get("/getLevelList", controller.Level.GetLevelList)
}
// 岗位管理
position := app.Party("/position")
{
position.Get("/list", controller.Position.List)
position.Get("/detail/{id:int}", controller.Position.Detail)
position.Post("/add", controller.Position.Add)
position.Put("/update", controller.Position.Update)
position.Delete("/delete/{id:int}", controller.Position.Delete)
position.Put("/status", controller.Position.Status)
position.Get("/getPositionList", controller.Position.GetPositionList)
}
}
特别鸣谢
感谢Iris、Vue、ElementUI等优秀开源项目。
版权声明
本文章版权归作者所有,未经作者允许禁止任何转载、采集,作者保留一切追究的权利;