Skip to content

feat(onboarding): 优化向导流程与样式#98

Open
WindDrift wants to merge 2 commits into
SPlayer-Dev:devfrom
WindDrift:dev
Open

feat(onboarding): 优化向导流程与样式#98
WindDrift wants to merge 2 commits into
SPlayer-Dev:devfrom
WindDrift:dev

Conversation

@WindDrift

@WindDrift WindDrift commented Jul 21, 2026

Copy link
Copy Markdown

改动类型

  • 新功能(feat)
  • 缺陷修复(fix)
  • 重构 / 优化(不改变对外行为)
  • 文档(docs)
  • 其他(请在「改动说明」中注明)

是否包含破坏性变更

  • 是(请在「改动说明」中详细描述)

改动说明

重构并大幅扩展用户首次启动的引导向导流程,通过复用设置页配置项和统一布局,减少重复代码并提升首次使用体验。
还有一方面是设置页面设置项太多太杂了,所以挑选了一些变化明显和特色的设置项放在向导里,对不愿意折腾设置的用户而言方便了很多

主要变更:

  • 🎯 新增 5 个向导步骤组件:
    • StepNetease.vue:网易云账号登录,支持跳过/登录状态切换,集成 LoginDialog
    • StepPlayback.vue:播放与音质设置(音质、背景、封面布局、频谱)
    • StepLyric.vue:歌词配置(过滤 AMLL TTML DB 地址等高级项)
    • StepOther.vue:下载与缓存设置
    • StepPlugins.vue:插件市场与插件导入
  • 🔄 重构 StepHotkeys.vue:移除静态提示列表,改为动态快捷键表格,并新增全局快捷键开关
  • ⚙️ 扩展 StepPreferences.vue:新增外观风格、字体、布局等相关配置项
  • 🌐 简化 StepStreaming.vue:使用 pickItems() 动态获取配置项,移除静态服务器列表
  • 📁 优化 StepLibrary.vue:"下一步" 按钮增加箭头图标
  • 🛠️ 新增 src/settings/pickItems.ts 工具函数:按 key 顺序从 SettingCategory 中挑选顶层 SettingItem,支持静默跳过不存在的 key 和平台条件项
  • 🎨 SettingsItem.vue 新增 compact prop,为向导布局提供紧凑模式
  • 📝 补充 onboarding.netease / playback / lyric / other / plugins 等 i18n 翻译键
  • 📐 更新 Onboarding.vue 步骤数组,并在向导期间注入 SToastSDialogProviderSettingsDialog 等全局组件

关联 Issue

测试情况

  • 完整走一遍首次启动向导流程,验证步骤间导航正常
  • 验证 StepNetease 登录/跳过状态切换及下一步按钮文案变化
  • 验证 StepPlugins 导入插件和插件市场功能
  • 验证 StepLyricenableOnlineTTMLLyric 子项过滤逻辑(不显示 amllDbServer
  • 验证 pickItems() 对不存在 key 的静默跳过行为及跨平台条件项过滤
  • 验证所有新步骤在 SettingsItem 紧凑模式下的显示效果与滚动行为
  • 验证向导中修改的设置是否正确保存到 store
  • 已在 Windows 平台本地测试通过(macOS / Linux 请补充验证)

截图 / 录屏

更新前 VS 更新后

升级

新增的

新增

自查清单

  • 本 PR 只包含一个主要功能 / 修复,没有夹带无关改动
  • 已在本地完整测试通过;AI 生成的代码同样自行测试并审阅过,未做未经验证的提交
  • 已运行 pnpm format,并确认 pnpm typecheckpnpm lint 通过
  • 改动涉及原生模块时已 pnpm build:native 验证;未手写 native/*/index.d.ts
  • 已向 dev 分支提交

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant