# 角色管理前后台交互指南 ## 概述 本文档介绍如何将前台角色管理功能连接到真实的后端API,实现完整的前后台交互。 ## 功能特性 ### ✅ 已实现功能 1. **角色CRUD操作** - 获取角色列表(支持分页) - 创建新角色 - 更新角色信息 - 删除角色 2. **API测试模式** - 支持测试模式切换(无需JWT认证) - 支持正式模式(需要JWT认证) - 实时API连接测试 3. **错误处理** - 统一的错误响应格式 - 友好的错误提示 - 网络连接异常处理 4. **用户体验** - 加载状态显示 - 操作确认提示 - 实时数据刷新 ## 快速开始 ### 1. 启动服务 使用完整启动脚本同时启动前后台: ```powershell # 标准模式启动 .\start-full.ps1 # 调试模式启动 .\start-full.ps1 -Debug # 测试模式启动 .\start-full.ps1 -Test ``` ### 2. 访问应用 - **前端应用**: http://localhost:8081 - **后端API**: http://localhost:8080 - **API文档**: http://localhost:8080/swagger/index.html ### 3. 测试API连接 1. 进入角色管理页面 2. 点击"测试模式"按钮切换到测试模式 3. 点击"新建角色"测试创建功能 4. 查看角色列表测试获取功能 ## API接口说明 ### 基础信息 - **API基础路径**: `/api/auth/roles` - **测试路径**: `/api/auth/roles/test` - **认证方式**: JWT Bearer Token - **响应格式**: JSON ### 接口列表 #### 1. 获取角色列表 ```http GET /api/auth/roles?page=1&pageSize=10 ``` **响应格式**: ```json { "code": 200, "message": "获取角色列表成功", "data": { "data": [ { "id": 1, "name": "管理员", "code": "ADMIN", "description": "系统管理员", "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } ], "page": 1, "size": 10, "total": 1 } } ``` #### 2. 创建角色 ```http POST /api/auth/roles Content-Type: application/json { "name": "新角色", "code": "NEW_ROLE", "description": "角色描述" } ``` **响应格式**: ```json { "code": 200, "message": "角色创建成功", "data": { "id": 2, "name": "新角色", "code": "NEW_ROLE", "description": "角色描述", "created_at": "2024-01-01T00:00:00Z", "updated_at": "2024-01-01T00:00:00Z" } } ``` #### 3. 更新角色 ```http PUT /api/auth/roles/{id} Content-Type: application/json { "name": "更新后的角色", "code": "UPDATED_ROLE", "description": "更新后的描述" } ``` #### 4. 删除角色 ```http DELETE /api/auth/roles/{id} ``` **响应格式**: ```json { "code": 200, "message": "角色删除成功", "data": null } ``` ## 前端组件使用 ### 1. 角色管理主页面 ```vue ``` ### 2. API测试页面 ```vue ``` ### 3. 直接使用服务 ```javascript import { roleService } from '@/modules/role-management' // 获取角色列表 const roles = await roleService.getRoles(1, 10) // 创建角色 const newRole = await roleService.createRole({ name: '测试角色', code: 'TEST_ROLE', description: '测试描述' }) // 更新角色 const updatedRole = await roleService.updateRole(1, { name: '更新后的角色', code: 'UPDATED_ROLE', description: '更新后的描述' }) // 删除角色 await roleService.deleteRole(1) ``` ## 配置说明 ### 1. API基础URL配置 前端配置文件: `app/src/config/app.config.js` ```javascript export const appConfig = { development: { apiBaseUrl: 'http://localhost:8080/api', // ... } } ``` ### 2. 测试模式配置 通过localStorage控制测试模式: ```javascript // 启用测试模式 localStorage.setItem('role-test-mode', 'true') // 禁用测试模式 localStorage.setItem('role-test-mode', 'false') // 检查测试模式状态 const isTestMode = localStorage.getItem('role-test-mode') === 'true' ``` ### 3. JWT认证配置 ```javascript // 设置JWT token localStorage.setItem('token', 'your-jwt-token') // 清除JWT token localStorage.removeItem('token') ``` ## 错误处理 ### 1. 网络错误 ```javascript try { const response = await roleService.getRoles() } catch (error) { if (error.code === 0) { console.error('网络连接失败') } else if (error.code === 401) { console.error('认证失败,请重新登录') } else { console.error('请求失败:', error.message) } } ``` ### 2. 业务错误 ```javascript const response = await roleService.createRole(roleData) if (response.code !== 200) { console.error('业务错误:', response.message) } ``` ## 开发调试 ### 1. 启用调试模式 ```powershell # 启动调试模式 .\start-full.ps1 -Debug ``` ### 2. 查看API日志 后端日志文件: `backend/logs/app.log` ### 3. 使用API测试页面 访问角色管理API测试页面,可以: - 查看API配置信息 - 手动测试各个接口 - 查看详细的请求响应 - 切换测试模式 ### 4. 浏览器开发者工具 - 打开Network面板查看API请求 - 查看Console面板的错误信息 - 使用Application面板查看localStorage ## 常见问题 ### Q1: API连接失败 **解决方案**: 1. 检查后端服务是否启动 2. 确认API基础URL配置正确 3. 检查防火墙设置 4. 查看后端日志 ### Q2: 认证失败 **解决方案**: 1. 切换到测试模式(无需认证) 2. 检查JWT token是否有效 3. 重新登录获取新token ### Q3: 数据不显示 **解决方案**: 1. 检查API响应格式 2. 确认数据库中有数据 3. 查看浏览器控制台错误 ### Q4: 创建/更新失败 **解决方案**: 1. 检查必填字段是否填写 2. 确认角色名称和代码唯一性 3. 查看后端验证错误信息 ## 扩展功能 ### 1. 权限管理 可以扩展角色管理功能,添加: - 角色权限分配 - 权限树形展示 - 批量权限操作 ### 2. 用户角色分配 可以添加: - 用户角色分配页面 - 批量角色分配 - 角色继承关系 ### 3. 角色模板 可以添加: - 角色模板管理 - 快速创建角色 - 角色导入导出 ## 技术栈 ### 前端 - Vue 3 (Composition API) - Axios (HTTP客户端) - Vue Router (路由管理) ### 后端 - Go (Gin框架) - GORM (ORM) - JWT (认证) ### 数据库 - MySQL/PostgreSQL - Redis (缓存) ## 贡献指南 1. Fork项目 2. 创建功能分支 3. 提交代码 4. 创建Pull Request ## 许可证 MIT License