From 52a1094144e0683821249c89a7d996d2ec4fa806 Mon Sep 17 00:00:00 2001 From: sion123 <450702724@qq.com> Date: Thu, 5 Mar 2026 23:43:27 +0800 Subject: [PATCH] feat(kling): add validation error display in timeline panel and update UI components - Remove unused audio base64 reference and error message in VoiceSelector - Rename CSS class from 'result-banner' to 'result-inline' and update button styling - Pass validationError prop from GenerateStep to TimelinePanel - Add validation error display in TimelinePanel with error state styling - Update conditional rendering to show either validation error or duration diff - Add CloseCircleOutlined icon for error status display --- .../web-gold/src/components/VoiceSelector.vue | 3 -- .../web-gold/src/views/kling/IdentifyFace.vue | 17 +-------- .../views/kling/components/GenerateStep.vue | 1 + .../views/kling/components/TimelinePanel.vue | 16 +++++++- .../kling/components/VoiceConfigStep.vue | 1 + .../kling/stores/useDigitalHumanStore.ts | 15 +++++++- .../digital-human-task/index.vue | 17 ++------- .../service/TikUserVoiceServiceImpl.java | 37 ------------------- 8 files changed, 36 insertions(+), 71 deletions(-) diff --git a/frontend/app/web-gold/src/components/VoiceSelector.vue b/frontend/app/web-gold/src/components/VoiceSelector.vue index b286625487..6a17f4894b 100644 --- a/frontend/app/web-gold/src/components/VoiceSelector.vue +++ b/frontend/app/web-gold/src/components/VoiceSelector.vue @@ -103,7 +103,6 @@ const playerContainer = ref(null) const audioUrl = ref('') const currentVoiceName = ref('') const isPlayerInitializing = ref(false) -const currentAudioBase64 = ref('') // 保存当前音频的 base64 数据 // 默认封面图片(音频波形图标) const defaultCover = `data:image/svg+xml;base64,${btoa(` @@ -208,7 +207,6 @@ const handlePlayVoiceSample = (voice) => { (data) => { const url = data.audioUrl || data.objectUrl if (!url) return - currentAudioBase64.value = data.audioBase64 || '' initPlayer(url) }, undefined, // 错误静默处理 @@ -259,7 +257,6 @@ const initPlayer = (url) => { player.on('error', (e) => { console.error('APlayer 播放错误:', e) - message.error('音频播放失败,请重试') }) player.on('canplay', () => { diff --git a/frontend/app/web-gold/src/views/kling/IdentifyFace.vue b/frontend/app/web-gold/src/views/kling/IdentifyFace.vue index 656900da37..cb2d481d6b 100644 --- a/frontend/app/web-gold/src/views/kling/IdentifyFace.vue +++ b/frontend/app/web-gold/src/views/kling/IdentifyFace.vue @@ -850,7 +850,7 @@ onMounted(async () => { justify-content: flex-end; } -.result-banner { +.result-inline { display: flex; align-items: center; justify-content: flex-end; @@ -870,17 +870,7 @@ onMounted(async () => { color: @accent-red; } - .banner-icon { - font-size: 16px; - flex-shrink: 0; - } - - .banner-text { - flex: 1; - text-align: right; - } - - .retry-btn { + .inline-btn { padding: 4px 12px; border-radius: 6px; border: 1px solid currentColor; @@ -890,9 +880,6 @@ onMounted(async () => { font-weight: 500; cursor: pointer; transition: all 0.2s ease; - display: flex; - align-items: center; - gap: 4px; &:hover { background: rgba(16, 185, 129, 0.1); diff --git a/frontend/app/web-gold/src/views/kling/components/GenerateStep.vue b/frontend/app/web-gold/src/views/kling/components/GenerateStep.vue index 4a83eda996..893c124f31 100644 --- a/frontend/app/web-gold/src/views/kling/components/GenerateStep.vue +++ b/frontend/app/web-gold/src/views/kling/components/GenerateStep.vue @@ -55,6 +55,7 @@ :audio-duration-ms="store.timeline.audioDurationMs" :face-start-time="store.timeline.faceStartTime" :face-end-time="store.timeline.faceEndTime" + :validation-error="store.validationError" /> diff --git a/frontend/app/web-gold/src/views/kling/components/TimelinePanel.vue b/frontend/app/web-gold/src/views/kling/components/TimelinePanel.vue index 61c2cd900f..e953973c6c 100644 --- a/frontend/app/web-gold/src/views/kling/components/TimelinePanel.vue +++ b/frontend/app/web-gold/src/views/kling/components/TimelinePanel.vue @@ -72,8 +72,13 @@ + +