Commit Graph

7 Commits

Author SHA1 Message Date
imeepos ba34481052 fix: 修复MaterialCard中get_model命令未找到的错误
- 将MaterialCard组件中的'get_model'命令调用修改为'get_model_by_id'
- 确保前端调用的命令名称与后端注册的命令名称一致
- 解决'Command get_model not found'错误
- 修复素材卡片中获取关联模特信息失败的问题
2025-07-15 13:44:07 +08:00
imeepos 9aa2cdd49f feat: 添加素材删除和重新处理功能
- 在MaterialCard组件中添加删除按钮,使用DeleteConfirmDialog替代window.confirm
- 在MaterialCard组件中添加重新处理按钮,当素材状态为Pending时显示
- 在ProjectDetails页面中添加删除和重新处理的处理函数
- 遵循Tauri开发规范和前端开发规范
- 实现了统一的删除确认对话框UI交互
2025-07-15 13:12:01 +08:00
imeepos 730402aba0 feat: 实现项目-模板绑定和素材-模特绑定管理功能
新功能:
- 项目-模板绑定管理系统
  - 支持主要/次要模板绑定类型
  - 绑定优先级和状态管理
  - 批量绑定操作
  - 绑定关系的CRUD操作

- 素材-模特绑定管理系统
  - 素材与模特的关联管理
  - 批量绑定/解绑操作
  - 绑定统计和分析
  - 素材编辑对话框

 架构改进:
- 新增项目-模板绑定数据模型和仓库层
- 新增素材-模特绑定业务服务层
- 完善的API命令层实现
- 响应式前端界面设计

 用户体验优化:
- 统一的通知系统
- 增强的加载状态组件
- 流畅的交互动画
- 优雅的确认对话框

 测试覆盖:
- 单元测试和集成测试
- 业务逻辑验证
- API接口测试

 技术栈:
- 后端: Rust + Tauri + SQLite
- 前端: React + TypeScript + TailwindCSS
- 状态管理: Zustand
- 测试: Vitest + Rust测试框架

 配置更新:
- 更新数据库迁移脚本
- 完善测试配置
- 优化构建流程
2025-07-15 12:50:30 +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 d36475ff35 feat: 大幅增强MaterialCard显示信息 - 添加丰富的统计信息
功能增强:
为素材列表的MaterialCard添加了更多详细的统计信息,
让用户能够更全面地了解每个素材的详细情况。

新增信息展示:
1. 基本信息:
   - 文件大小(格式化显示,如 MB/GB)
   - 创建时间(本地化日期格式)

2. 视频元数据(蓝色主题):
   - 视频时长(mm:ss格式)
   - 分辨率(宽高)
   - 比特率(自动单位转换)
   - 帧率(fps)
   - 编解码器
   - 音频信息(如果有)

3. 音频元数据(绿色主题):
   - 音频时长
   - 比特率
   - 采样率
   - 音频编解码器

4. 图片元数据(紫色主题):
   - 图片分辨率
   - 图片格式
   - DPI信息(如果有)

5. 处理统计信息(灰色主题):
   - 场景检测结果(场景数量)
   - 切分片段数量
   - 处理状态

技术实现:
1. 辅助函数:
   - formatTime: 时间格式化(秒转mm:ss)
   - formatFileSize: 文件大小格式化
   - formatBitrate: 比特率格式化
   - formatResolution: 分辨率格式化
   - formatDate: 日期本地化格式化

2. 响应式布局:
   - 使用Grid布局优化信息展示
   - 不同类型元数据使用不同颜色主题
   - 图标+文字的直观展示方式

3. 条件渲染:
   - 根据素材类型显示对应的元数据
   - 智能检测元数据存在性
   - 优雅处理缺失信息

用户体验提升:
 一目了然的素材详细信息
 颜色编码的信息分类
 直观的图标标识
 格式化的数据展示
 响应式的布局设计

现在用户可以在素材列表中快速了解每个文件的详细技术参数和处理状态!
2025-07-13 22:20:01 +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 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