【开源】基于 Vue 和 Gin 开发的前后端分离的开源框架
liuian 2025-06-18 22:21 83 浏览
项目介绍
Gin-vue-admin是一个基于vue和gin开发的全栈前后端分离的开发基础平台,旨在快速搭建中小型项目。拥有jwt鉴权,动态路由,动态菜单,casbin鉴权,表单生成器,代码生成器等功能,提供了多种示例文件,让大家把更多时间专注在业务开发上。
技术选型
- 前端:使用Vue框架结合Element UI构建基础页面,提供友好的用户界面。
- 后端:采用Gin框架快速搭建RESTful风格的API接口,提高开发效率。
- 数据库:支持MySQL(5.7及以上版本),使用gorm进行ORM操作,简化数据库操作。
- 缓存:使用Redis存储活跃用户的JWT令牌,实现多点登录限制。
- API文档:通过Swagger自动生成API文档,便于前后端联调。
主要功能
- 权限管理:基于jwt和casbin实现细粒度的权限控制。
- 文件上传下载:支持多种云存储平台的文件上传操作,如七牛云、阿里云、腾讯云。
- 分页封装:前端使用mixins封装分页功能,简化分页操作。
- 用户与角色管理:系统管理员可分配用户角色和角色权限,实现灵活的权限管理。
- 动态菜单:根据用户角色动态生成菜单,实现不同角色不同菜单的展示。
- API管理:不同用户可调用的API接口权限不同,增强系统的安全性。
- 配置管理:支持在线修改配置文件,提高系统的灵活性。
系统架构图
目录结构
├── server
├── api (api层)
│ └── v1 (v1版本接口)
├── config (配置包)
├── core (核心文件)
├── docs (swagger文档目录)
├── global (全局对象)
├── initialize (初始化)
│ └── internal (初始化内部函数)
├── middleware (中间件层)
├── model (模型层)
│ ├── request (入参结构体)
│ └── response (出参结构体)
├── packfile (静态文件打包)
├── resource (静态资源文件夹)
│ ├── excel (excel导入导出默认路径)
│ ├── page (表单生成器)
│ └── template (模板)
├── router (路由层)
├── service (service层)
├── source (source层)
└── utils (工具包)
├── timer (定时器接口封装)
└── upload (oss接口封装)
web
├── babel.config.js
├── Dockerfile
├── favicon.ico
├── index.html -- 主页面
├── limit.js -- 助手代码
├── package.json -- 包管理器代码
├── src -- 源代码
│ ├── api -- api 组
│ ├── App.vue -- 主页面
│ ├── assets -- 静态资源
│ ├── components -- 全局组件
│ ├── core -- gva 组件包
│ │ ├── config.js -- gva网站配置文件
│ │ ├── gin-vue-admin.js -- 注册欢迎文件
│ │ └── global.js -- 统一导入文件
│ ├── directive -- v-auth 注册文件
│ ├── main.js -- 主文件
│ ├── permission.js -- 路由中间件
│ ├── pinia -- pinia 状态管理器,取代vuex
│ │ ├── index.js -- 入口文件
│ │ └── modules -- modules
│ │ ├── dictionary.js
│ │ ├── router.js
│ │ └── user.js
│ ├── router -- 路由声明文件
│ │ └── index.js
│ ├── style -- 全局样式
│ │ ├── base.scss
│ │ ├── basics.scss
│ │ ├── element_visiable.scss -- 此处可以全局覆盖 element-plus 样式
│ │ ├── iconfont.css -- 顶部几个icon的样式文件
│ │ ├── main.scss
│ │ ├── mobile.scss
│ │ └── newLogin.scss
│ ├── utils -- 方法包库
│ │ ├── asyncRouter.js -- 动态路由相关
│ │ ├── btnAuth.js -- 动态权限按钮相关
│ │ ├── bus.js -- 全局mitt声明文件
│ │ ├── date.js -- 日期相关
│ │ ├── dictionary.js -- 获取字典方法
│ │ ├── downloadImg.js -- 下载图片方法
│ │ ├── format.js -- 格式整理相关
│ │ ├── image.js -- 图片相关方法
│ │ ├── page.js -- 设置页面标题
│ │ ├── request.js -- 请求
│ │ └── stringFun.js -- 字符串文件
| ├── view -- 主要view代码
| | ├── about -- 关于我们
| | ├── dashboard -- 面板
| | ├── error -- 错误
| | ├── example --上传案例
| | ├── iconList -- icon列表
| | ├── init -- 初始化数据
| | | ├── index -- 新版本
| | | ├── init -- 旧版本
| | ├── layout -- layout约束页面
| | | ├── aside
| | | ├── bottomInfo -- bottomInfo
| | | ├── screenfull -- 全屏设置
| | | ├── setting -- 系统设置
| | | └── index.vue -- base 约束
| | ├── login --登录
| | ├── person --个人中心
| | ├── superAdmin -- 超级管理员操作
| | ├── system -- 系统检测页面
| | ├── systemTools -- 系统配置相关页面
| | └── routerHolder.vue -- page 入口页面
├── vite.config.js -- vite 配置文件
└── yarn.lock
在线演示
- 在线预览: http://demo.gin-vue-admin.com
- 测试用户名:admin,测试密码:123456
开源地址
https://github.com/flipped-aurora/gin-vue-admin
相关推荐
- 系统维护中怎么解决(系统维护中一般要多久才能恢复)
-
系统正在维护中意思是系统正在更新或者升级中。网站或软件代码程序出现了问题,或者网站、软件需要更新升级的时候,一般会关闭进行查找问题,处理问题,内容进行更新。处理完了才会开通网站访问。为了清除系统运行中...
- 电脑桌面隐藏的文件夹怎么找出来
-
要查看电脑上隐藏的文件夹,可以采取以下几种方法:方法一:使用文件夹选项按下键盘上的Windows键和E键打开“文件资源管理器”。找到“查看”和“选项”两个选项并勾选。选中“显示隐藏的文件、文件夹和驱动...
- 搜狗中文手写输入法下载(下载搜狗手写版)
-
点击输入框弹出搜狗键盘,进入搜狗工具栏的设置图标,手写设置,勾选“手写注音”。在输入法点击那个键盘,就会有那个输入方式的选项,选择手写输入就可以了。呼出输入法,点击输入法上方的键盘图样,找到手写输入,...
- 免费云服务器怎么样(云服务器哪些是免费)
-
搞软件开发的人都知道,对于一些网络应用软件必须要租用服务器存放才能被更多用户使用。如一些应用于浏览软件、传输软件、远程登录软件等。如果是像以往那样租用物理机服务器,成本费用非常高昂。但是现在有云服务器...
- 斐讯路由器登录密码忘记了怎么办
-
1.斐讯无线路由器密码忘记,要重设密码,首先长按路由器背面的reset键,将路由器恢复出厂设置。2.路由器恢复出厂设置以后,在电脑浏览器地址栏中输入:192.168.1.1并按下回车键,“用户名”输...
- 软件之家软件分享(软件之家软件合集)
-
驱动精灵,驱动人生,360驱动大师。云之家挺好用的,通讯录是按组织架构的,跟微信一样可以看到所有人的动态,还有小组一般是按公司、部门、行业、兴趣分的,老板开讲可以把最上级的意思快速传达给所有员工。我们...
- 鲁大师下载安装免费版(鲁大师app下载)
-
解决方法吧。第一种方法:一般情况下,我们安装的时候软件也需要一定的时间,我们可以多等待一会。第二种方法:安装到99%你直接关掉安装。然后自己到安装目录文件里找到启动程序,就可以用了。第三种方法:1、可...
- ssd坏道检测与修复(ssd硬盘坏道检测)
-
1、固态硬盘(SSD硬盘)损坏分两方面,一方面是出现硬盘坏块,另一方面是出现物理损坏。2、固态硬盘如果出现坏块是不可修复的。SSD硬盘坏块不是所谓的逻辑坏块。SSD硬盘内部是晶体管,损坏后不能恢复,这...
- win10专业工作版激活密钥(windows10 专业版激活密钥)
-
要获得Windows10专业版永久激活密钥,可以通过微软官方零售渠道或可靠的第三方卖家购买正版产品密钥。使用第三方卖家时,务必注意其信誉和真实性。激活后,密钥将与您的Microsoft帐户关...
- 键盘下载安装(维语输入法键盘下载安装)
-
以惠普星14,win10系统为例,具体的操作步骤入如下:1、开启电脑后,在电脑的浏览器中搜索“输入法”。2、在页面中挑选一款自己喜欢的输入法软件,并点击旁边的下载按钮。3、随后在弹出的对话框中选择下载...
- office 2010怎么激活(office 2010如何激活)
-
1.打开下载好的Office,点击左上角的“文件”,然后在下拉菜单上点击“帮助”,显示需要激活Office。? 2.找到解压缩好的安装文件,打开里面的“激活破解”文件夹。? 3.在文件夹中运行激...
- 笔记本xp系统忘记开机密码(笔记本xp开机密码忘了怎么办最简单的方法)
-
xp系统忘记开机密码解锁方法如下1、在需要破解开机密码的xp电脑上插入pe启动盘,启动电脑后不停按F12、F11、Esc等快捷键,在弹出的启动菜单选择框中选择识别到的usb启动项,比如General...
- isofix接口(isofix接口怎么拆卸)
-
isofix接口上有isofix的字样,它的图标是一个类似人坐在座椅上。在汽车座椅靠垫与坐垫之间的连接处有2个接口,那就是isofix接口,是一种硬连接方式,为了防止撞击时发生座椅翻转,一些座椅在IS...
- 一周热门
-
-
飞牛OS入门安装遇到问题,如何解决?
-
如何在 iPhone 和 Android 上恢复已删除的抖音消息
-
Boost高性能并发无锁队列指南:boost::lockfree::queue
-
大模型手册: 保姆级用CherryStudio知识库
-
用什么工具在Win中查看8G大的log文件?
-
如何在 Windows 10 或 11 上通过命令行安装 Node.js 和 NPM
-
威联通NAS安装阿里云盘WebDAV服务并添加到Infuse
-
Trae IDE 如何与 GitHub 无缝对接?
-
idea插件之maven search(工欲善其事,必先利其器)
-
如何修改图片拍摄日期?快速修改图片拍摄日期的6种方法
-
- 最近发表
- 标签列表
-
- python判断字典是否为空 (50)
- crontab每周一执行 (48)
- aes和des区别 (43)
- bash脚本和shell脚本的区别 (35)
- canvas库 (33)
- dataframe筛选满足条件的行 (35)
- gitlab日志 (33)
- lua xpcall (36)
- blob转json (33)
- python判断是否在列表中 (34)
- python html转pdf (36)
- 安装指定版本npm (37)
- idea搜索jar包内容 (33)
- css鼠标悬停出现隐藏的文字 (34)
- linux nacos启动命令 (33)
- gitlab 日志 (36)
- adb pull (37)
- python判断元素在不在列表里 (34)
- python 字典删除元素 (34)
- vscode切换git分支 (35)
- python bytes转16进制 (35)
- grep前后几行 (34)
- hashmap转list (35)
- c++ 字符串查找 (35)
- mysql刷新权限 (34)
