优化代码逻辑

This commit is contained in:
LJH-rgsze
2026-01-08 10:10:39 +08:00
parent 40a6b7434b
commit c1959e0795
+17 -24
View File
@@ -599,17 +599,12 @@ export default {
this.voiceOptions = data.data.map((voice) => ({ this.voiceOptions = data.data.map((voice) => ({
value: voice.id, value: voice.id,
label: voice.name, label: voice.name,
// 复制音频相关字段,确保hasAudioPreview能检测到 // 只保留后端实际返回的音频相关字段
voiceDemo: voice.voiceDemo, voiceDemo: voice.voiceDemo,
demoUrl: voice.demoUrl,
audioUrl: voice.audioUrl,
voice_demo: voice.voice_demo, voice_demo: voice.voice_demo,
sample_voice: voice.sample_voice, // 使用后端实际返回的 isClone 字段
referenceAudio: voice.referenceAudio, isClone: Boolean(voice.isClone),
// 新增:添加克隆音频相关字段 // 保存训练状态字段
cloneAudioUrl: voice.cloneAudioUrl,
hasCloneAudio: voice.hasCloneAudio || false,
// 保存训练状态字段,用于判断是否为克隆音频
train_status: voice.trainStatus, train_status: voice.trainStatus,
})); }));
// 保存完整的音色信息,添加调试信息 // 保存完整的音色信息,添加调试信息
@@ -746,11 +741,15 @@ export default {
}, },
// 检查是否有音频预览 // 检查是否有音频预览
hasAudioPreview(item) { hasAudioPreview(item) {
// 极度简化逻辑: // 检查是否为克隆音频
// 1. 如果hasCloneAudio字段存在且不为false/0,就显示播放按钮 // 使用后端实际返回的 isClone 字段
// 2. 否则检查是否有有效的音频URL const isCloneAudio = Boolean(item.isClone);
return (item.hasCloneAudio && item.hasCloneAudio !== 'false' && item.hasCloneAudio !== '0') ||
!!((item.voice_demo || item.voiceDemo || item.demoUrl || item.audioUrl || item.sample_voice || item.referenceAudio || item.cloneAudioUrl)?.trim()); // 检查是否有有效的音频URL,只使用后端实际返回的字段
const hasValidAudioUrl = !!((item.voice_demo || item.voiceDemo)?.trim());
// 克隆音频始终显示播放按钮,普通音频需要有有效URL才显示
return isCloneAudio || hasValidAudioUrl;
}, },
// 播放/暂停音频切换 // 播放/暂停音频切换
@@ -809,10 +808,8 @@ export default {
let isCloneAudio = false; let isCloneAudio = false;
if (voiceDetail) { if (voiceDetail) {
// 首先检查是否克隆音频(通过ID格式判断,非TTS开头的ID) // 使用后端实际返回的 isClone 字段判断是否克隆音频
isCloneAudio = isCloneAudio = Boolean(voiceDetail.isClone);
voiceDetail.hasCloneAudio ||
(voiceDetail.id && !voiceDetail.id.startsWith("TTS"));
console.log( console.log(
"克隆音频判断结果:", "克隆音频判断结果:",
isCloneAudio, isCloneAudio,
@@ -912,14 +909,10 @@ export default {
// 返回,避免继续执行下面的普通音频播放逻辑 // 返回,避免继续执行下面的普通音频播放逻辑
return; return;
} else { } else {
// 对于普通音频,尝试各种可能的URL字段 // 对于普通音频,只使用后端实际返回的字段
audioUrl = audioUrl =
voiceDetail.voiceDemo || voiceDetail.voiceDemo ||
voiceDetail.demoUrl || voiceDetail.voice_demo;
voiceDetail.audioUrl ||
voiceDetail.voice_demo ||
voiceDetail.sample_voice ||
voiceDetail.cloneAudioUrl; // 克隆音频URL
} }
// 如果没有找到,尝试检查是否有URL格式的字段 // 如果没有找到,尝试检查是否有URL格式的字段