feat(voices): 任务3.12 克隆音色卡片组件 #170
Reference in New Issue
Block a user
Delete Branch "feature/task-312-clone-voice-card"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
任务 3.12:克隆音色卡片组件
改动内容
功能点
关联
代码审查报告:任务3.12 克隆音色卡片组件
结论: ✅ 有条件通过 — 组件结构清晰、功能完整,有几处 P2 需修复
P2 问题
P2-1:语言显示未本地化
CloneVoiceCard和CloneDetailModal中voice.language直接显示原始值(如 "zh"),而预置音色使用了languageLabel()映射。应保持一致:P2-2:克隆音色播放功能仅为 UI 壳
duration_seconds始终为 0(硬编码),播放按钮点击后进度条假走但无音频。建议在duration === 0时禁用或隐藏播放控件,避免误导用户。P2-3:「使用」按钮仅弹 Toast,无实际行为
handleCloneUse只显示 toast,无后续操作。建议至少导航到配音页面navigate('/app/tts?voiceId=...')或提示"功能开发中"。P3 建议
toastIdSeq全局变量建议改用useRef或Date.now()genderLabel()⚠️ 与 PR #171 冲突警告
PR #171(后端 P2 修复)中包含了与本 PR 重叠的前端变更(voiceClone.ts、VoiceLibrary.tsx)。实测先合并本 PR 后,PR #171 会在 VoiceLibrary.tsx 产生 merge conflict。
建议合并顺序:先合并本 PR → 后端编程移除 PR #171 中的前端文件 → 再合并 PR #171。
亮点