diff --git a/apps/desktop/src/pages/tools/ImageEditingTool.tsx b/apps/desktop/src/pages/tools/ImageEditingTool.tsx index 649c9c1..5fc3bd5 100644 --- a/apps/desktop/src/pages/tools/ImageEditingTool.tsx +++ b/apps/desktop/src/pages/tools/ImageEditingTool.tsx @@ -50,14 +50,14 @@ const ImageEditingTool: React.FC = () => { // 单张图片编辑状态 const [selectedImage, setSelectedImage] = useState(''); const [outputPath, setOutputPath] = useState(''); - const [prompt, setPrompt] = useState(''); + const [prompt, setPrompt] = useState('去掉模特手上的物品,让模特双手自然放在身体两侧,手里不要拿或者握着物品'); const [isProcessing, setIsProcessing] = useState(false); const [result, setResult] = useState(''); // 批量处理状态 const [inputFolder, setInputFolder] = useState(''); const [outputFolder, setOutputFolder] = useState(''); - const [batchPrompt, setBatchPrompt] = useState(''); + const [batchPrompt, setBatchPrompt] = useState('去掉模特手上的物品,让模特双手自然放在身体两侧,手里不要拿或者握着物品'); const [batchTask, setBatchTask] = useState(null); // 任务管理状态 @@ -77,14 +77,12 @@ const ImageEditingTool: React.FC = () => { // 加载任务列表 const loadTasks = useCallback(async () => { try { - // TODO: 实现后端API调用 - // const [allTasks, allBatchTasks] = await Promise.all([ - // invoke('get_all_image_editing_tasks'), - // invoke('get_all_batch_editing_tasks'), - // ]); - // setTasks(allTasks); - // setBatchTasks(allBatchTasks); - console.log('加载任务列表(演示模式)'); + const [allTasks, allBatchTasks] = await Promise.all([ + invoke('get_all_image_editing_tasks'), + invoke('get_all_batch_editing_tasks'), + ]); + setTasks(allTasks); + setBatchTasks(allBatchTasks); } catch (error) { console.error('加载任务失败:', error); } @@ -98,10 +96,9 @@ const ImageEditingTool: React.FC = () => { } try { - // TODO: 实现后端API调用 - // await invoke('set_image_editing_api_key', { apiKey: apiKeyInput }); + await invoke('set_image_editing_api_key', { apiKey: apiKeyInput }); setConfig(prev => ({ ...prev, api_key: apiKeyInput })); - alert('API密钥设置成功(演示模式)'); + alert('API密钥设置成功'); setShowConfig(false); } catch (error) { console.error('设置API密钥失败:', error); @@ -205,20 +202,15 @@ const ImageEditingTool: React.FC = () => { setResult(''); try { - // TODO: 实现后端API调用 - // const result = await invoke('edit_single_image', { - // inputPath: selectedImage, - // outputPath: outputPath, - // prompt: prompt, - // params: params, - // }); + await invoke('edit_single_image', { + inputPath: selectedImage, + outputPath: outputPath, + prompt: prompt, + params: params, + }); - // 模拟处理时间 - await new Promise(resolve => setTimeout(resolve, 2000)); - - const mockResult = `图像编辑完成(演示模式),输出路径: ${outputPath}`; - setResult(mockResult); - alert('图片编辑完成!(演示模式)'); + setResult(`图像编辑完成,输出路径: ${outputPath}`); + alert('图片编辑完成!'); loadTasks(); // 刷新任务列表 } catch (error) { console.error('图片编辑失败:', error); @@ -245,21 +237,20 @@ const ImageEditingTool: React.FC = () => { setBatchTask(null); try { - // TODO: 实现后端API调用 - // const taskId = await invoke('edit_batch_images', { - // inputFolder: inputFolder, - // outputFolder: outputFolder, - // prompt: batchPrompt, - // params: params, - // }); + const taskId = await invoke('edit_batch_images', { + inputFolder: inputFolder, + outputFolder: outputFolder, + prompt: batchPrompt, + params: params, + }); - // 模拟批量处理进度 - const mockTask: BatchImageEditingTask = { - id: 'mock-batch-task', + // 创建任务对象用于UI显示 + const newTask: BatchImageEditingTask = { + id: taskId, input_folder_path: inputFolder, output_folder_path: outputFolder, prompt: batchPrompt, - total_images: 5, + total_images: 0, // 将由后端更新 processed_images: 0, successful_images: 0, failed_images: 0, @@ -280,33 +271,10 @@ const ImageEditingTool: React.FC = () => { updated_at: new Date().toISOString(), }; - setBatchTask(mockTask); - - // 模拟进度更新 - let progress = 0; - const progressInterval = setInterval(() => { - progress += 0.2; - if (progress >= 1) { - clearInterval(progressInterval); - setBatchTask(prev => prev ? { - ...prev, - status: ImageEditingTaskStatus.Completed, - progress: 1, - processed_images: 5, - successful_images: 5, - failed_images: 0, - } : null); - setIsProcessing(false); - alert('批量处理完成!(演示模式)'); - } else { - setBatchTask(prev => prev ? { - ...prev, - progress, - processed_images: Math.floor(progress * 5), - successful_images: Math.floor(progress * 5), - } : null); - } - }, 1000); + setBatchTask(newTask); + setIsProcessing(false); + alert('批量处理任务已启动!'); + loadTasks(); // 刷新任务列表 } catch (error) { console.error('批量编辑失败:', error);