From 7a591b6bad0791ef0a4b08114f67e5f2a4198565 Mon Sep 17 00:00:00 2001 From: sligter <1771322848@qq.com> Date: Tue, 7 Jul 2026 15:34:04 +0800 Subject: [PATCH] fix(web): track queued export tasks in editor --- .../project/slides_editor/projectEditorShareExport.js | 6 +++--- tests/test_web_route_modularization.py | 7 +++++++ 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/src/landppt/web/static/js/pages/project/slides_editor/projectEditorShareExport.js b/src/landppt/web/static/js/pages/project/slides_editor/projectEditorShareExport.js index d7e65d6..1fb1410 100644 --- a/src/landppt/web/static/js/pages/project/slides_editor/projectEditorShareExport.js +++ b/src/landppt/web/static/js/pages/project/slides_editor/projectEditorShareExport.js @@ -34,7 +34,7 @@ async function exportToPDF() { throw new Error('服务器返回了未知的响应格式。'); } - if (data.status === 'processing' && data.task_id) { + if ((data.status === 'processing' || data.status === 'queued' || data.status === 'pending') && data.task_id) { const slideCount = data.slide_count || '多个'; updateProgressToast(progressToast, `PDF生成任务已启动(共${slideCount}页),正在后台处理...`, 15); await trackPdfExportTask(data.task_id, progressToast); @@ -170,7 +170,7 @@ async function exportToPPTX() { throw new Error('服务器返回了未知的响应格式。'); } - if (data.status === 'processing' && data.task_id) { + if ((data.status === 'processing' || data.status === 'queued' || data.status === 'pending') && data.task_id) { updateProgressToast(progressToast, 'PPTX转换任务已启动,正在后台处理...', 20); await trackPptxExportTask(data.task_id, progressToast); } else if (data.download_url) { @@ -330,7 +330,7 @@ async function exportToPPTXAsImages() { throw new Error('服务器返回了未知的响应格式。'); } - if (data.status === 'processing' && data.task_id) { + if ((data.status === 'processing' || data.status === 'queued' || data.status === 'pending') && data.task_id) { updateProgressToast(progressToast, '图片PPTX生成任务已启动,正在后台处理...', 25); await trackPptxExportTask(data.task_id, progressToast, { startProgress: 25, diff --git a/tests/test_web_route_modularization.py b/tests/test_web_route_modularization.py index 507538b..1b4fe23 100644 --- a/tests/test_web_route_modularization.py +++ b/tests/test_web_route_modularization.py @@ -458,6 +458,13 @@ def test_editor_page_modules_own_their_responsibilities(): assert marker in narration_text +def test_editor_export_polling_accepts_queued_task_responses(): + share_text = _read("src/landppt/web/static/js/pages/project/slides_editor/projectEditorShareExport.js") + + assert "data.status === 'queued'" in share_text + assert share_text.count("data.status === 'queued'") >= 3 + + def test_enhanced_ppt_service_delegates_file_outline_workflow_to_extracted_service(): service_text = _read("src/landppt/services/enhanced_ppt_service.py")