diff --git a/web/client/src/components/chat/PipelineProgress.tsx b/web/client/src/components/chat/PipelineProgress.tsx new file mode 100644 index 0000000..6e5576e --- /dev/null +++ b/web/client/src/components/chat/PipelineProgress.tsx @@ -0,0 +1,41 @@ +import { cn } from '@/lib/utils'; + +interface Props { + phase: string; + progress: number; + currentItem?: number; + totalItems?: number; + status?: string; +} + +export function PipelineProgress({ phase, progress, currentItem, totalItems, status }: Props) { + const phaseLabel: Record = { + images: '生成图片', + upload: '上传素材', + videos: '生成视频', + tts: '配音', + assemble: '成片组装', + }; + + return ( +
+
+ + {phaseLabel[phase] || phase} + {currentItem && totalItems ? ` (${currentItem}/${totalItems})` : ''} + + {progress}% +
+
+
+
+ {status &&

{status}

} +
+ ); +}