当前位置: 首页 > 工具软件 > Iris-Go > 使用案例 >

iris-vue-admin基于Iris的敏捷后台开发框架

钦景胜
2023-12-01

项目介绍

一款 Go 语言基于Iris、Vue、ElementUI、MySQL等框架精心打造的一款模块化、插件化、高性能的前后端分离架构敏捷开发框架,可快速搭建前后端分离后台管理系统,本着简化开发、提升开发效率的初衷,框架自研了一套个性化的组件,实现了可插拔的组件式开发方式,同时为了敏捷快速开发,框架特地集成了代码生成器,完全自主研发了自定义GO后端服务模板和前端Vue自定义模板,可以根据已建好的表结构,可以快速的一键生成整个模块的所有代码和增删改查等等功能业务,真正实现了低代码开发方式,极大的节省了人力成本的同时提高了开发效率,缩短了研发周期,是一款真正意义上实现组件化、可插拔式的敏捷开发框架。

项目特点

  • 模块化、松耦合
  • 模块丰富、开箱即用
  • 简洁易用、快速接入
  • 文档详尽、易于维护
  • 自顶向下、体系化设计
  • 统一框架、统一组件、降低选择成本
  • 开发规范、设计模式、代码分层模型
  • 强大便捷的开发工具链
  • 完善的本地中文化支持
  • 设计为团队及企业使用

内置模块

  • 用户管理:用于维护管理系统的用户,常规信息的维护与账号设置。
  • 角色管理:角色菜单管理与权限分配、设置角色所拥有的菜单权限。
  • 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
  • 职级管理:主要管理用户的职级。
  • 岗位管理:主要管理用户担任职务。
  • 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
  • 字典管理:对系统中常用的较为固定的数据进行统一维护。
  • 配置管理:对系统的常规配置信息进行维护,网站配置管理功能进行统一维护。
  • 通知公告:系统通知公告信息发布维护。
  • 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
  • 登录日志:系统登录日志记录查询包含登录异常。
  • 代码生成:一键生成模块CRUD的功能,包括后端Go和前端Vue等相关代码。
  • 案例演示:常规代码生成器一键生成后的演示案例。

软件信息

系统演示

账号密码操作权限
admin123456演示环境无法进行修改删除操作

版本说明

版本名称版本说明版本地址
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)
	}
}

特别鸣谢

感谢IrisVueElementUI等优秀开源项目。

版权声明

本文章版权归作者所有,未经作者允许禁止任何转载、采集,作者保留一切追究的权利;

 类似资料: