+
{formatFileSize(statistics.total_file_size)}
总文件大小
diff --git a/apps/desktop/src/components/Navigation.tsx b/apps/desktop/src/components/Navigation.tsx
index c4475f4..945b573 100644
--- a/apps/desktop/src/components/Navigation.tsx
+++ b/apps/desktop/src/components/Navigation.tsx
@@ -5,8 +5,7 @@ import {
UserGroupIcon,
CpuChipIcon,
DocumentDuplicateIcon,
- LinkIcon,
- DocumentArrowDownIcon
+ LinkIcon
} from '@heroicons/react/24/outline';
const Navigation: React.FC = () => {
@@ -42,12 +41,6 @@ const Navigation: React.FC = () => {
href: '/ai-classification-settings',
icon: CpuChipIcon,
description: '管理AI视频分类规则'
- },
- {
- name: '导出记录',
- href: '/export-records',
- icon: DocumentArrowDownIcon,
- description: '查看和管理导出记录'
}
];
diff --git a/apps/desktop/src/pages/ExportRecordsPage.tsx b/apps/desktop/src/pages/ExportRecordsPage.tsx
deleted file mode 100644
index 50de048..0000000
--- a/apps/desktop/src/pages/ExportRecordsPage.tsx
+++ /dev/null
@@ -1,16 +0,0 @@
-import React from 'react';
-import ExportRecordManager from '../components/ExportRecordManager';
-
-const ExportRecordsPage: React.FC = () => {
- return (
-
- );
-};
-
-export default ExportRecordsPage;
diff --git a/apps/desktop/src/pages/ProjectDetails.tsx b/apps/desktop/src/pages/ProjectDetails.tsx
index 914ab98..822ec5c 100644
--- a/apps/desktop/src/pages/ProjectDetails.tsx
+++ b/apps/desktop/src/pages/ProjectDetails.tsx
@@ -1,6 +1,6 @@
import React, { useEffect, useState, useCallback, useMemo, useRef } from 'react';
import { useParams, useNavigate } from 'react-router-dom';
-import { ArrowLeft, FolderOpen, Upload, FileVideo, FileAudio, FileImage, HardDrive, Brain, Loader2, Link, Layers, Calendar, MapPin, Users, CheckCircle, Filter, Shuffle } from 'lucide-react';
+import { ArrowLeft, FolderOpen, Upload, FileVideo, FileAudio, FileImage, HardDrive, Brain, Loader2, Link, Layers, Calendar, MapPin, Users, CheckCircle, Filter, Shuffle, Download } from 'lucide-react';
import { invoke } from '@tauri-apps/api/core';
import { useProjectStore } from '../store/projectStore';
import { useMaterialStore } from '../store/materialStore';
@@ -16,6 +16,7 @@ import { MaterialEditDialog } from '../components/MaterialEditDialog';
import { VideoClassificationProgress } from '../components/VideoClassificationProgress';
import { AiAnalysisLogViewer } from '../components/AiAnalysisLogViewer';
import MaterialCardSkeleton from '../components/MaterialCardSkeleton';
+import ExportRecordManager from '../components/ExportRecordManager';
import { ProjectTemplateBindingList } from '../components/ProjectTemplateBindingList';
import { ProjectTemplateBindingForm } from '../components/ProjectTemplateBindingForm';
import { MaterialMatchingResultDialog } from '../components/MaterialMatchingResultDialog';
@@ -123,7 +124,7 @@ export const ProjectDetails: React.FC = () => {
const [editingBinding, setEditingBinding] = useState
(null);
const [showMaterialEditDialog, setShowMaterialEditDialog] = useState(false);
const [editingMaterial, setEditingMaterial] = useState(null);
- const [activeTab, setActiveTab] = useState<'overview' | 'materials' | 'segments' | 'templates' | 'matching-results' | 'usage-stats' | 'ai-logs'>('overview');
+ const [activeTab, setActiveTab] = useState<'overview' | 'materials' | 'segments' | 'templates' | 'matching-results' | 'export-records' | 'usage-stats' | 'ai-logs'>('overview');
const [_batchClassificationResult, setBatchClassificationResult] = useState(null);
// 素材匹配状态
@@ -976,6 +977,20 @@ export const ProjectDetails: React.FC = () => {
匹配