# go-zero-admin-system **Repository Path**: jxy918/go-zero-admin-system ## Basic Information - **Project Name**: go-zero-admin-system - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2026-05-06 - **Last Updated**: 2026-05-06 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # RBAC 后台管理系统 ## 项目简介 这是一个基于角色权限控制(RBAC)的企业级后台管理系统,采用前后端分离架构。系统提供完整的用户认证、角色管理、权限控制和菜单管理功能,适用于各类企业级应用场景。 ## 技术栈 ### 前端 | 组件 | 技术 | 版本要求 | |------|------|----------| | 框架 | Vue | 3.x | | 状态管理 | Pinia | - | | 路由 | Vue Router | - | | UI组件库 | Element Plus | - | | 网络请求 | Axios | - | | 构建工具 | Vite | - | ### 后端 | 组件 | 技术 | 版本要求 | |------|------|----------| | 框架 | Go-zero | - | | 语言 | Go | 1.20+ | | 数据库 | MySQL | 8.0+ | | ORM | GORM | v1 | | 认证 | JWT | - | ### 服务端口 | 服务 | 端口 | |------|------| | 后端 API | 8000 | | 前端开发服务器 | 3000 | ## 核心功能 | 模块 | 功能 | |------|------| | 用户认证 | 登录、登出、Token刷新 | | 用户管理 | 创建、编辑、删除、角色分配 | | 角色管理 | 创建、编辑、删除、权限分配、菜单分配 | | 权限管理 | 创建、编辑、删除、树形展示 | | 菜单管理 | 创建、编辑、删除、树形结构 | | 活动日志 | 操作记录、按用户筛选 | | 数据权限 | 基于角色的数据访问控制 | ## 项目结构 ### 后端结构 ``` go-zero-admin-system/ ├── admin/ # 后端应用 │ ├── etc/ # 配置文件 │ │ └── admin-api.yaml # 主配置文件 │ ├── internal/ # 内部代码 │ │ ├── config/ # 配置结构体 │ │ ├── handler/ # HTTP处理器 │ │ ├── logic/ # 业务逻辑 │ │ ├── middleware/ # 中间件(认证、CORS、数据权限) │ │ ├── model/ # GORM数据模型 │ │ ├── svc/ # 服务上下文 │ │ ├── types/ # 请求/响应类型定义 │ │ └── util/ # 工具函数(JWT、IP获取) │ ├── admin.api # API定义(goctl) │ └── admin.go # 应用入口 ├── frontend/ # 前端应用 ├── docs/ # 项目文档 ├── go.mod # Go模块文件 └── go.sum # 依赖校验文件 ``` ### 前端结构 ``` frontend/ ├── src/ # 源代码 │ ├── api/ # API请求封装 │ ├── components/ # 公共组件 │ ├── directives/ # 自定义指令(权限指令) │ ├── router/ # 路由配置 │ ├── store/ # Pinia状态管理 │ ├── utils/ # 工具函数 │ ├── views/ # 页面组件 │ │ ├── login/ # 登录页面 │ │ ├── dashboard/ # 控制台 │ │ ├── user/ # 用户管理 │ │ ├── role/ # 角色管理 │ │ ├── permission/ # 权限管理 │ │ ├── menu/ # 菜单管理 │ │ └── activity/ # 活动日志 │ ├── App.vue # 根组件 │ └── main.js # 入口文件 ├── index.html # HTML模板 ├── vite.config.js # Vite配置(含代理) └── package.json # 依赖管理 ``` ## 安装与运行 ### 环境准备 1. Go 1.20+ 2. Node.js 16+ 3. MySQL 8.0+ ### 后端启动 ```bash cd admin go mod tidy # 安装依赖 go run admin.go -f etc/admin-api.yaml # 启动服务(端口8000) ``` ### 前端启动 ```bash cd frontend npm install # 安装依赖 npm run dev # 启动开发服务器(端口3000) npm run build # 构建生产版本 ``` ### 数据库配置 修改 `admin/etc/admin-api.yaml`: ```yaml DataSource: root:root@tcp(127.0.0.1:3306)/admin_system?charset=utf8mb4&parseTime=True&loc=Local ``` ### 初始化数据 系统启动时自动创建表结构,可通过接口初始化基础数据: ``` POST /system/init-data ``` ## API接口 ### 认证接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /auth/login | 用户登录 | | POST | /auth/logout | 用户登出 | | POST | /auth/refresh | 刷新Token | ### 用户管理接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /user/list | 获取用户列表 | | GET | /user/get/:id | 获取用户详情 | | POST | /user/create | 创建用户 | | POST | /user/update | 更新用户 | | POST | /user/delete | 删除用户 | | POST | /user/assign-roles | 分配角色 | ### 角色管理接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /role/list | 获取角色列表 | | GET | /role/get/:id | 获取角色详情 | | POST | /role/create | 创建角色 | | PUT | /role/update | 更新角色 | | DELETE | /role/delete | 删除角色 | | POST | /role/assign-permissions | 分配权限 | | POST | /role/assign-menus | 分配菜单 | ### 权限管理接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /permission/list | 获取权限列表 | | GET | /permission/get/:id | 获取权限详情 | | POST | /permission/create | 创建权限 | | PUT | /permission/update | 更新权限 | | DELETE | /permission/delete | 删除权限 | ### 菜单管理接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /menu/tree | 获取菜单树 | | GET | /menu/list | 获取菜单列表 | | POST | /menu/create | 创建菜单 | | POST | /menu/update | 更新菜单 | | POST | /menu/delete | 删除菜单 | | GET | /menu/get/:id | 获取菜单详情 | | POST | /menu/assign-permissions | 分配菜单权限 | ### 活动日志接口 | 方法 | 路径 | 说明 | |------|------|------| | GET | /activity/list | 获取活动日志 | ### 系统接口 | 方法 | 路径 | 说明 | |------|------|------| | POST | /system/init-data | 初始化数据 | ## 默认账号 | 用户名 | 密码 | 角色 | |--------|------|------| | admin | admin123 | 超级管理员 | ## 权限说明 ### 权限编码规范 ``` {模块}:{操作} 示例: - btn_user_create # 创建用户 - btn_user_update # 更新用户 - btn_role_assign # 分配角色权限 ``` ### 数据权限 - **管理员**:可查看所有数据 - **普通用户**:只能查看自己角色范围内的数据 ## 安全注意 1. JWT密钥默认使用 `your-secret-key`,生产环境请修改 2. CORS当前允许所有来源,生产环境请限制 3. 密码使用 bcrypt 加密存储 4. 建议生产环境启用HTTPS ## 许可证 MIT License