mirror of
https://github.com/GSManagerXZ/GameServerManager.git
synced 2025-10-04 22:02:03 +08:00
4 KiB
4 KiB
新手引导功能实现说明
功能概述
根据开发说明要求,实现了一个完整的新手引导系统,包含两个主要步骤:
- SteamCMD 设置 - 检测平台并配置 SteamCMD(可跳过)
- 游戏默认安装路径 - 设置游戏服务器的默认安装路径(不可跳过)
触发条件
- 用户首次登录时自动触发
- 检测条件:用户没有
lastLogin
记录,或者是 5 分钟内新创建的用户 - 可以在设置页面手动重新启动引导
技术实现
前端组件
-
OnboardingWizard.tsx - 主引导界面组件
- 进度指示器
- 步骤导航
- 统一的操作界面
-
引导步骤组件
SteamCMDOnboardingStep.tsx
- SteamCMD 检测和设置GamePathOnboardingStep.tsx
- 游戏路径设置
-
状态管理
onboardingStore.ts
- 使用 Zustand 管理引导状态- 持久化存储引导进度和完成状态
后端 API
-
设置路由 (
/api/settings
)POST /game-path
- 保存游戏默认安装路径GET /game-path
- 获取游戏默认安装路径
-
配置管理器扩展
- 在
ConfigManager
中添加游戏配置支持 - 支持游戏默认安装路径的存储和管理
- 在
集成点
-
认证流程集成
- 在用户登录成功后检测是否首次登录
- 自动启动新手引导流程
-
应用界面集成
- 在
App.tsx
中集成引导组件 - 只在已登录用户中显示引导
- 在
-
设置页面集成
- 添加游戏默认安装路径设置
- 提供重新启动引导的功能
功能特性
SteamCMD 步骤
- 自动检测操作系统平台
- 支持在线安装和手动路径设置两种模式
- 实时显示安装进度
- 复用现有的 SteamCMD 管理功能
游戏路径设置
- 根据平台提供默认路径建议
- 路径格式验证
- 路径示例和注意事项
- 同时保存到服务器和本地存储
用户体验
-
渐进式引导
- 每个步骤都有详细说明和功能介绍
- 清晰的进度指示器
- 可以前进、后退和跳过(部分步骤)
-
智能检测
- 自动检测已安装的组件
- 显示当前状态和配置信息
- 避免重复配置
-
灵活操作
- 支持跳过可选步骤
- 可以随时关闭引导
- 在设置中可重新启动
数据持久化
-
引导状态
- 使用 Zustand persist 中间件
- 存储在 localStorage 中
- 包含步骤完成状态和当前进度
-
配置数据
- 游戏路径保存到服务器配置文件
- 同时备份到本地存储
- 与现有设置系统集成
扩展性
-
步骤扩展
- 可以轻松添加新的引导步骤
- 步骤组件独立,便于维护
- 支持自定义跳过逻辑
-
配置扩展
- 配置管理器支持新的配置项
- API 路由可以扩展更多设置功能
- 前端组件可复用于其他设置场景
测试和调试
-
手动测试
- 在设置页面点击"重新启动新手引导"
- 清除浏览器存储模拟首次登录
- 创建新用户账户测试
-
状态检查
- 浏览器开发者工具查看 localStorage
- 网络面板检查 API 调用
- 控制台查看日志信息
注意事项
-
兼容性
- 确保在不同浏览器中正常工作
- 响应式设计适配移动设备
- 深色/浅色主题支持
-
错误处理
- API 调用失败时的降级处理
- 网络错误时的用户提示
- 配置保存失败的备用方案
-
性能优化
- 延迟加载引导组件
- 避免阻塞主界面渲染
- 合理的状态更新频率
后续优化建议
-
增强功能
- 添加引导完成后的欢迎页面
- 支持引导步骤的自定义顺序
- 添加引导进度的统计分析
-
用户体验
- 添加动画效果和过渡
- 支持键盘导航
- 提供引导视频或图片说明
-
管理功能
- 管理员可以自定义引导内容
- 支持多语言引导界面
- 引导数据的导入导出功能