Commit Graph

11 Commits

Author SHA1 Message Date
imeepos b1fdcaac6b feat: 添加项目特定的AI视频分类任务进度显示
功能改进:
- 添加get_project_classification_task_progress命令
- VideoClassificationProgress组件现在只显示当前项目的任务
- 优化任务进度获取逻辑,支持按项目过滤

 技术实现:
- 后端添加项目任务进度查询接口
- 前端store支持按项目获取任务进度
- 使用useCallback优化组件性能

 用户体验提升:
- 项目详情页面只显示相关任务,避免混淆
- 更精确的进度统计和状态显示
- 更好的数据隔离和组织
2025-07-14 14:41:16 +08:00
imeepos 4b26c0406c feat: 优化项目详情页布局为上下布局
布局优化:
- 从左右布局改为上下布局,提升用户体验
- 统计信息移至顶部,采用卡片式设计
- 选项卡导航采用现代化设计风格

 响应式设计:
- 统计卡片支持2-4列自适应布局
- 选项卡在小屏幕上显示简化文本
- 操作按钮在移动端仅显示图标
- 素材网格支持1-5列响应式布局

 用户体验提升:
- 更好的信息层次结构
- 更高效的空间利用
- 移动端友好的交互设计
- 符合现代UI设计规范

遵循promptx/frontend-developer开发规范,确保:
- 移动优先的响应式设计
- 良好的可访问性支持
- 一致的设计语言
- 优秀的性能表现
2025-07-14 14:26:16 +08:00
imeepos b8dfaf8af8 feat: 实现AI视频分类功能
新功能:
- 集成Google Gemini API进行视频智能分类
- 实现任务队列系统支持批量处理
- 添加实时进度显示和状态管理
- 自动文件整理到分类文件夹

 架构改进:
- 遵循Tauri开发规范的分层架构设计
- 完整的数据模型和仓库层实现
- 异步任务处理和错误处理机制
- 类型安全的前后端通信接口

 用户界面:
- MaterialCard组件添加AI分类按钮
- VideoClassificationProgress进度显示组件
- 优美的动画效果和响应式设计
- 符合前端开发规范的UI/UX优化

 数据库扩展:
- 新增video_classification_records表
- 新增video_classification_tasks表
- 完整的索引优化和外键约束

 技术实现:
- Rust后端服务层完整实现
- React/TypeScript前端状态管理
- Zustand状态存储和API封装
- 完善的错误处理和用户提示

 文档:
- 完整的功能文档和API说明
- 架构设计和使用流程说明
- 开发规范遵循情况说明

Closes #AI视频分类功能开发
2025-07-14 12:52:30 +08:00
imeepos 91062ccf4c feat: 优化前端loading状态和用户体验
- 新增MaterialCardSkeleton骨架屏组件
- 优化MaterialImportDialog的进度显示
- 添加详细的导入进度动画和状态指示器
- 改进项目统计信息的loading状态
- 新增LoadingState通用加载组件
- 优化按钮状态和禁用逻辑
- 改进空状态显示和交互

UI/UX改进:
1. 骨架屏loading:替换简单spinner为详细骨架屏
2. 进度指示器:添加阶段指示器和动画效果
3. 状态反馈:实时显示当前处理文件和进度
4. 按钮状态:导入过程中禁用相关按钮
5. 视觉优化:添加图标、颜色和动画效果
2025-07-13 23:51:39 +08:00
imeepos c2e7b2c70f feat: 大幅增强ProjectCard - 添加统计信息和打开文件夹功能
功能增强:
为首页项目列表中的ProjectCard添加了丰富的统计信息展示和便捷的文件夹操作功能,
让用户能够快速了解项目状态并方便地访问项目文件。

新增功能:
1. 项目统计信息展示:
   - 自动加载项目素材统计数据
   - 显示素材总数和总文件大小
   - 按类型分类显示(视频、音频、图片、其他)
   - 使用颜色编码区分不同文件类型

2. 打开文件夹功能:
   - 底部按钮栏新增文件夹图标按钮
   - 下拉菜单中添加'打开文件夹'选项
   - 支持Windows长路径格式处理
   - 双重备用机制确保兼容性

3. 加载状态优化:
   - 统计信息加载时显示加载状态
   - 静默处理加载失败,不影响卡片显示
   - 优雅的动画效果

技术实现:
1. 统计数据获取:
   - 使用get_project_material_stats命令
   - React hooks管理状态
   - useEffect自动加载数据

2. 文件夹操作:
   - 集成@tauri-apps/plugin-opener
   - 路径标准化处理
   - 错误处理和用户提示

3. UI设计:
   - 统计信息卡片式展示
   - 图标+数字的直观显示
   - 响应式布局适配

4. 数据格式化:
   - formatFileSize函数处理文件大小
   - 智能单位转换(B/KB/MB/GB/TB)

视觉效果:
 项目统计信息一目了然
 文件类型分布清晰展示
 便捷的文件夹访问按钮
 加载状态友好提示
 颜色编码增强可读性

用户体验:
- 快速了解项目规模和内容
- 一键打开项目文件夹
- 直观的文件类型分布
- 流畅的交互体验

现在首页的项目卡片功能更加完善,用户可以快速了解项目状态并便捷地进行文件管理!
2025-07-13 22:26:18 +08:00
imeepos 822bbd8b64 feat: 大幅增强MaterialCard显示信息 2025-07-13 22:20:36 +08:00
imeepos 4a377be983 fix: 实现MaterialCard中的打开文件位置功能
问题分析:
MaterialCard组件中的openFileLocation函数只是打印路径,
没有实际实现打开文件位置的功能,导致点击分片文件无响应。

修复内容:
1. 实现openFileLocation函数:
   - 使用revealItemInDir在文件管理器中显示并选中文件
   - 添加路径标准化处理,移除Windows长路径前缀
   - 提供备用方案:如果revealItemInDir失败,尝试openPath打开目录

2. 错误处理优化:
   - 双重备用机制确保功能可用性
   - 用户友好的错误提示
   - 详细的调试日志

3. TypeScript类型修复:
   - 添加MaterialSegment类型导入到materialStore
   - 在MaterialState接口中添加getMaterialSegments方法定义
   - 清理未使用的导入项

4. 技术实现:
   `	ypescript
   // 主要方法:在文件管理器中显示文件
   await revealItemInDir(normalizedPath);

   // 备用方法:打开文件所在目录
   await openPath(normalizedDirPath);
   `

功能特点:
 点击分片文件的外链图标可以打开文件位置
 自动处理Windows长路径格式
 双重备用机制确保兼容性
 用户友好的错误处理

现在用户可以方便地通过点击分片列表中的外链图标来打开文件位置了!
2025-07-13 22:12:15 +08:00
imeepos 6978b8bbfd fix: 修复项目详情页打开文件夹功能
问题分析:
1. 权限问题:Tauri opener插件缺少必要的权限配置
2. 路径格式问题:Windows长路径格式(\\?\前缀)导致opener插件无法处理

修复方案:
1. 权限配置修复:
   - 在capabilities/default.json中添加opener:allow-open-path权限
   - 添加opener:allow-reveal-item-in-dir权限
   - 同时添加fs和dialog相关权限以支持完整功能

2. 路径处理优化:
   - 检测并移除Windows长路径前缀(\\?\)
   - 添加备用方案:如果openPath失败,尝试revealItemInDir
   - 增加错误处理和用户友好的提示信息
   - 添加调试日志便于问题排查

技术细节:
- openPath: 直接打开文件夹
- revealItemInDir: 在文件管理器中显示文件夹
- 路径标准化处理确保跨平台兼容性

现在项目详情页的打开文件夹功能应该可以正常工作了!
2025-07-13 22:00:30 +08:00
imeepos 704e6d8fff feat: 添加视频切分片段查看功能
新增功能:
1. MaterialCard组件 - 增强的素材卡片
   - 显示素材基本信息和状态
   - 支持展开查看切分片段详情
   - 片段时间格式化显示
   - 文件位置快速访问

2. get_material_segments命令
   - 获取指定素材的所有切分片段
   - 返回完整的片段信息包括文件路径

3. 前端store集成
   - getMaterialSegments方法
   - 错误处理和加载状态

4. 用户界面改进
   - 状态颜色编码(完成/处理中/失败/等待)
   - 可折叠的片段列表
   - 时间格式化显示(分:秒)
   - 片段索引和时长信息

视频切分结果保存位置:
- 文件系统: 原视频路径_segments/原视频名_001.mp4
- 数据库: material_segments表存储片段元信息
- 前端: 通过MaterialCard组件可视化查看

现在用户可以:
 查看每个素材的切分状态
 展开查看具体的切分片段
 了解每个片段的时间范围和文件位置
 快速访问切分后的文件
2025-07-13 21:12:01 +08:00
imeepos dbcd98118c feat: 修复FFmpeg场景检测功能并添加调试工具
主要修复:
- 重构场景检测算法,使用正确的FFmpeg命令
- 添加备用的简单场景检测方法
- 改进FFmpeg可用性检查,同时检查ffmpeg和ffprobe
- 添加详细的FFmpeg状态信息获取功能

新增功能:
- FFmpegDebugPanel调试面板组件
- test_scene_detection测试命令用于调试
- get_ffmpeg_status命令获取详细状态
- 项目详情页面添加调试工具选项卡

技术改进:
- 更可靠的场景检测实现,支持降级到时间间隔方法
- 完善的错误处理和日志记录
- 用户友好的调试界面
- 实时测试和诊断工具

这个版本应该能够正确处理场景检测,即使在FFmpeg配置有问题的情况下也能提供备用方案。
2025-07-13 21:04:46 +08:00
imeepos 036488e13b fix: 完善前端组件和类型定义
- 添加素材导入对话框组件
- 实现项目详情页面完整功能
- 添加素材状态管理store
- 完善TypeScript类型定义
- 更新项目列表路由导航
2025-07-13 20:49:04 +08:00