基于Gin + Vue + Element UI的前后端分离权限管理系统
系统初始化极度简单,只需要配置文件中,修改数据库连接,系统启动后会自动初始化数据库信息以及必须的基础数据
目录结构
├── config # 配置文件目录(包含运行配置参数及casbin模型配置)
├── docs # 文档目录
├── examples # 样例
│ └── go-admin #
│ │ └── cmd # 命令文件夹
│ │ └── main.go # 应用入口
├── framework # 框架代码
│ └── app # 应用模块入口
│ ├── auth # 认证
│ ├── caching # 缓存
│ │ └── buntdb # buntdb缓存
│ │ └── memory # 内存缓存
│ │ └── redis # redis缓存
│ ├── captcha # 验证码
│ ├── client # http客户端
│ ├── config # 配置参数
│ ├── context # 统一上下文模块
│ ├── data # 数据扩展模块
│ ├── errors # 错误信息
│ ├── gii # 代码生成
│ ├── ginx # gin的扩展模块
│ ├── gormx # gorm的扩展模块
│ ├── helpers # 工具类模块
│ ├── logger # 日志模块
│ ├── middleware # gin中间件模块
│ ├── router # gin的路由模块
│ ├── scheduled # 定时任务模块
│ ├── security # 加密模块
│ │ └── aes # aes加密
│ │ └── hash # hash加密
│ │ └── hmac # hamc加密
│ │ └── random # 随机串
│ ├── system # 系统业务模块
│ │ └── api # 系统业务API模块
│ │ └── db # 数据库迁移模块模块
│ │ └── model # 系统业务模型模块
│ │ └── param #系统业务参数模块
│ │ └── router # 系统业务路由模块
│ │ └── service # 系统业务服务模块
│ ├── websocket # ws模块
├── modules # 模块目录
│ ├── content # 内容模块
│ ├── job # 定时任务模块
│ │ └── api # API模块
│ │ └── db # 数据库迁移模块模块
│ │ └── model # 模型模块
│ │ └── param # 参数模块
│ │ └── router # 路由模块
│ │ └── service # 服务模块
├── static # 静态目录
│ ├── form-generator # 表单构建
│ ├── uploadfile # 上传文件
├── temp # 临时目录
├── test # 测试目录
✨ 特性
🎁 内置
- 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
- 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
- 岗位管理:配置系统用户所属担任职务。
- 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
- 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
- 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
- 参数管理:对系统动态配置常用参数。
- 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
- 登录日志:系统登录日志记录查询包含登录异常。
- 系统接口:根据业务代码自动生成相关的api接口文档。
- 代码生成:根据数据表结构生成对应的增删改查相对应业务,全部可视化编程,基本业务可以0代码实现。
- 表单构建:自定义页面样式,拖拉拽实现页面布局。
- 服务监控:查看一些服务器的基本信息。
准备工作
你需要在本地安装 [go] [gin] node 和 git
🗞 系统架构
📦 本地开发
开发目录创建
# 创建开发目录
mkdir goadmin
cd goadmin
获取代码
重点注意:两个项目必须放在同一文件夹下;
# 获取后端代码
git clone https://github.com/go-admin-team/go-admin.git
# 获取前端代码
git clone https://github.com/go-admin-team/go-admin-ui.git
启动说明
服务端启动说明
# 进入 go-admin 后端项目
cd ./go-admin
# 编译项目
go build
# 修改配置
# 文件路径 go-admin/config/settings.yml
vi ./config/setting.yml
# 1. 配置文件中修改数据库信息
# 注意: settings.database 下对应的配置数据
# 2. 确认log路径
初始化数据库,以及服务启动
# 首次配置需要初始化数据库资源信息
./go-admin migrate -c config/settings.yml
# 启动项目,也可以用IDE进行调试
./go-admin server -c config/settings.yml -p 8000
使用docker 编译启动
# 编译镜像
docker build -t go-admin .
# 启动容器,第一个go-admin是容器名字,第二个go-admin是镜像名称
docker run --name go-admin -p 8000:8000 -d go-admin
文档生成
swag init
# 如果没有swag命令 go get安装一下即可
go get -u github.com/swaggo/swag/cmd/swag
交叉编译
env GOOS=windows GOARCH=amd64 go build main.go
# or
env GOOS=linux GOARCH=amd64 go build main.go
UI交互端启动说明
# 安装依赖
npm install
# 建议不要直接使用 cnpm 安装依赖,会有各种诡异的 bug。可以通过如下操作解决 npm 下载速度慢的问题
npm install --registry=https://registry.npm.taobao.org
# 启动服务
npm run dev
🎬 在线体验
admin / 123456
演示地址:http://www.zhangwj.com
🤝 特别感谢
chengxiao
gin
casbin
spf13/viper
gorm
gin-swagger
jwt-go
vue-element-admin
ruoyi-vue
🔑 License
MIT
Copyright (c) 2020 wenjianzhang