From f02e962b22e49c9b6818f66040ad3a05b8529ccd Mon Sep 17 00:00:00 2001 From: root Date: Fri, 11 Jul 2025 12:20:27 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E6=8A=A5=E9=94=99?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/AICreationPanel.tsx | 6 +-- src/components/ProjectFiles.tsx | 69 ++++++++++++++++++++++-------- src/pages/ProjectDetailPage.tsx | 4 +- 3 files changed, 55 insertions(+), 24 deletions(-) diff --git a/src/components/AICreationPanel.tsx b/src/components/AICreationPanel.tsx index f89d48b..a7d419c 100644 --- a/src/components/AICreationPanel.tsx +++ b/src/components/AICreationPanel.tsx @@ -1,7 +1,7 @@ import React, { useState } from 'react' import { Sparkles, User, Video, Wand2, Play, Download } from 'lucide-react' import { Project } from '../services/projectService' -import { AudioFile as Model } from '../services/audioService' +import { Model } from '../services/modelService' interface AICreationPanelProps { project: Project @@ -181,9 +181,9 @@ const AICreationPanel: React.FC = ({
-
{model.filename}
+
{model.model_number}
- {model.tags.slice(0, 2).join(', ')} + 创建于 {new Date(model.created_at).toLocaleDateString()}
diff --git a/src/components/ProjectFiles.tsx b/src/components/ProjectFiles.tsx index 049fa1a..9a28a8c 100644 --- a/src/components/ProjectFiles.tsx +++ b/src/components/ProjectFiles.tsx @@ -35,25 +35,11 @@ const ProjectFiles: React.FC = ({ const loadProjectFiles = async () => { try { setLoading(true) - - // 调用Rust命令扫描项目目录 - const result = await invoke('scan_directory', { - directoryPath: project.local_directory - }) - - const projectFiles: ProjectFile[] = result.map(file => ({ - name: file.name, - path: file.path, - size: file.size, - type: getFileType(file.extension), - modified: file.modified, - extension: file.extension - })) - - onFilesChange(projectFiles) - } catch (error) { - console.error('Failed to load project files:', error) - // 如果扫描失败,使用模拟数据 + + // 暂时使用模拟数据,因为文件扫描功能还未完全实现 + console.log('Loading files for directory:', project.local_directory) + + // 模拟文件扫描结果 const mockFiles: ProjectFile[] = [ { name: 'project_video.mp4', @@ -78,9 +64,54 @@ const ProjectFiles: React.FC = ({ type: 'document', modified: Date.now() - 7200000, extension: 'txt' + }, + { + name: 'audio_track.mp3', + path: `${project.local_directory}/audio_track.mp3`, + size: 5242880, + type: 'audio', + modified: Date.now() - 1800000, + extension: 'mp3' + }, + { + name: 'project_notes.md', + path: `${project.local_directory}/project_notes.md`, + size: 2048, + type: 'document', + modified: Date.now() - 900000, + extension: 'md' } ] + onFilesChange(mockFiles) + + // TODO: 实现真实的文件扫描功能 + // try { + // const result = await invoke('scan_directory', { + // directoryPath: project.local_directory + // }) + // + // if (result && Array.isArray(result)) { + // const projectFiles: ProjectFile[] = result.map(file => ({ + // name: file.name, + // path: file.path, + // size: file.size, + // type: getFileType(file.extension), + // modified: file.modified, + // extension: file.extension + // })) + // onFilesChange(projectFiles) + // } else { + // onFilesChange(mockFiles) + // } + // } catch (scanError) { + // console.warn('File scan failed, using mock data:', scanError) + // onFilesChange(mockFiles) + // } + + } catch (error) { + console.error('Failed to load project files:', error) + onFilesChange([]) } finally { setLoading(false) } diff --git a/src/pages/ProjectDetailPage.tsx b/src/pages/ProjectDetailPage.tsx index 1e0fb17..e4e887b 100644 --- a/src/pages/ProjectDetailPage.tsx +++ b/src/pages/ProjectDetailPage.tsx @@ -3,7 +3,7 @@ import { useParams, useNavigate } from 'react-router-dom' import { ArrowLeft, User, Layout, Video, Sparkles, FolderOpen, Plus } from 'lucide-react' import { Project, ProjectService } from '../services/projectService' import { VideoSegment, MediaService } from '../services/mediaService' -import { AudioFile as Model, AudioService as ModelService } from '../services/audioService' +import { Model, ModelService } from '../services/modelService' import ProjectModels from '../components/ProjectModels' import ProjectTemplates from '../components/ProjectTemplates' import ProjectMaterials from '../components/ProjectMaterials' @@ -63,7 +63,7 @@ const ProjectDetailPage: React.FC = () => { const loadProjectModels = async (project: Project) => { try { // 获取所有模特,后续可以添加项目关联逻辑 - const response = await ModelService.getAllAudioFiles() + const response = await ModelService.getAllModels() if (response.status && response.data) { setProjectModels(response.data) }