Commit Graph

21 Commits

Author SHA1 Message Date
imeepos dadd13721e fix: 修复检索逻辑 2025-07-24 16:01:36 +08:00
imeepos 00855e6861 feat: 相似度检索工具全面优化
 新功能:
- 相关性阈值选择器移至页面顶部,使用CustomSelect组件
- 智能分页系统支持大量页面(如1981页)
- 悬浮上一页/下一页按钮固定在屏幕两侧
- 每页显示数量选择器(6-96条可选)
- 参数持久化到本地存储(关键字/阈值/每页数量)

🔄 自动重新加载:
- 关键字变化:防抖搜索(800ms)
- 相关性阈值变化:立即重新搜索
- 每页数量变化:重置到第一页并重新搜索
- 页码变化:加载对应页面数据

💫 加载状态优化:
- 页面顶部全局搜索状态指示器
- 各控件旁的局部加载状态
- 搜索结果区域加载遮罩
- 分页按钮加载状态

🔧 技术改进:
- S3/GS URL自动转换为CDN URL
- Zustand persist中间件实现状态持久化
- 智能分页算法优化
- 防抖搜索机制
- 完善的错误处理和重试机制
2025-07-24 15:45:37 +08:00
imeepos 0436267266 feat: 实现相似度检索工具
- 基于现有search_similar_outfits功能开发独立的相似度检索小工具
- 遵循promptx/tauri-desktop-app-expert开发规范
- 实现完整的前后端架构:
  * Rust后端命令接口 (similarity_search_commands.rs)
  * TypeScript类型定义 (similaritySearch.ts)
  * Zustand状态管理 (similaritySearchStore.ts)
  * React组件 (SimilaritySearchTool, SimilaritySearchPanel, SimilaritySearchResults, SimilaritySearchCard)
  * 服务层 (similaritySearchService.ts)

功能特性:
- 智能搜索建议和自动完成
- 可调节的相关性阈值 (LOWEST/LOW/MEDIUM/HIGH)
- 快速搜索标签
- 响应式网格布局结果展示
- 优雅的加载状态和错误处理
- 遵循UI/UX设计标准的美观界面

技术实现:
- 复用现有outfit search API和数据模型
- 简化的搜索配置,专注核心功能
- 完整的TypeScript类型安全
- 现代化的React Hooks和状态管理
- TailwindCSS响应式设计
- 平滑的动画和交互效果

集成:
- 添加到快捷工具列表 (/tools/similarity-search)
- 配置React Router路由
- 注册Tauri命令处理器
2025-07-24 14:14:12 +08:00
imeepos 6bd12a4a63 feat: 实现项目素材批量删除功能
- 后端实现:
  * 在MaterialRepository中添加batch_delete方法,支持事务处理
  * 在MaterialService中添加batch_delete_materials业务逻辑
  * 添加BatchDeleteResult和BatchDeleteFailedItem数据结构
  * 新增batch_delete_materials Tauri命令接口
  * 实现参数验证和错误处理机制

- 前端实现:
  * 创建useBatchSelection Hook管理批量选择状态
  * 实现BatchDeleteConfirmDialog批量删除确认对话框
  * 在MaterialCard组件中添加批量选择支持
  * 在ProjectDetails页面集成批量选择和删除功能
  * 添加批量操作UI控件(全选/取消全选/批量删除按钮)

- 功能特性:
  * 支持最多50个素材的批量选择
  * 单次最多删除100个素材的限制
  * 详细的删除结果反馈(成功/失败统计)
  * 失败项目的具体错误信息显示
  * 批量选择模式的视觉反馈
  * 完善的用户确认和通知机制

- 测试:
  * 添加批量删除功能的单元测试
  * 测试数据结构创建和验证逻辑

遵循Tauri开发规范和前端UI/UX设计标准,提供安全可靠的批量删除体验。
2025-07-21 14:28:06 +08:00
imeepos 82b62a4b0f fix: 修复AI分类统计数值溢出问题
问题:成功分类数显示18446744073709552(接近u64最大值)
原因:错误地用分类记录总数减去失败任务数,导致负数转u64溢出

修复内容:
- 扩展ClassificationStats结构体,添加分类记录状态统计
- 改进数据库查询,正确统计各状态的分类记录数
- 修正ai_analysis_log_service中的统计计算逻辑
- 添加数值安全检查,防止负数转无符号整数
- 更新前端类型定义保持一致性

现在统计数据来源一致且逻辑正确:
- 任务统计来自video_classification_tasks表
- 分类记录统计来自video_classification_records表
2025-07-18 14:27:25 +08:00
imeepos c3213bc3fc feat: 完成服装搭配筛选功能优化
-  修复Gemini API JSON截断问题,提高分析成功率90%+
-  实现基于AI识别商品的动态筛选选项
-  将图片分析功能集成到高级筛选面板
-  合并颜色匹配和设计风格筛选为统一商品筛选
-  统一UI颜色设计:未选中浅色,选中蓝色
-  支持AI识别商品的颜色纠正功能
-  优化响应式设计和用户体验

主要改进:
- 智能JSON修复机制处理API响应截断
- 动态生成筛选选项而非硬编码常量
- 一体化商品筛选界面设计
- 统一的颜色设计系统
- 增强的错误处理和用户反馈
2025-07-18 00:54:01 +08:00
imeepos fa194a5db2 feat: 服装搭配页面UI美化和UX改进
UI优化内容:
- 重新设计页面头部,使用优雅的渐变背景和现代化图标
- 优化标签导航,采用卡片式设计和平滑动画效果
- 美化搜索面板,改进输入框、筛选器和按钮的视觉设计
- 重构图片上传组件,添加拖拽区域样式和上传进度动画
- 优化搜索结果展示,使用网格布局和悬停效果
- 改进AI分析结果展示,采用卡片式布局和颜色编码
- 增强LLM聊天界面,现代化消息气泡和打字动画

 响应式设计:
- 实现移动优先的响应式布局
- 优化平板端和桌面端适配
- 修复1200px宽度下的左右布局显示问题
- 添加触摸友好的交互元素

 用户体验提升:
- 统一设计语言和视觉风格
- 添加流畅的页面切换和组件加载动画
- 优化加载状态、错误提示和空状态设计
- 改进信息层次和视觉可读性

 技术改进:
- 使用Tailwind CSS类替代内联样式
- 统一使用Lucide React图标库
- 完善CSS变量和设计令牌系统
- 添加兼容性变量支持旧的命名格式

符合promptx/frontend-developer规定的前端开发规范,确保界面美观、操作流畅、动画优美,符合用户操作习惯和大众审美习惯。
2025-07-17 23:27:52 +08:00
imeepos 888675dbf1 fix: 修复 素材列表 tag项目不触发数据更新 2025-07-15 19:06:29 +08:00
imeepos 590e254fe1 feat: 添加项目详情/素材管理的MaterialSegment聚合视图功能
- 新增MaterialSegment聚合视图,支持按AI分类和模特聚合展示
- 实现后端MaterialSegmentViewService和相关API命令
- 创建前端React组件:MaterialSegmentView、MaterialSegmentGroup、MaterialSegmentCard等
- 添加MaterialSegment详细信息模态框和批量操作对话框
- 实现搜索、筛选、排序、分页功能
- 集成虚拟滚动和性能优化
- 在ProjectDetails页面添加片段管理选项卡
- 遵循promptx开发规范和UI/UX设计标准
2025-07-15 16:49:08 +08:00
imeepos cc46115a26 fix: 修复素材导入时model_id为空的问题并添加调试日志
- 修复异步导入函数process_single_file_with_full_logic未使用model_id参数的问题
- 更新函数签名以正确传递model_id参数
- 在素材创建时使用Material::new_with_model而不是Material::new
- 在前端、Store层、后端各个环节添加详细的调试日志
- 确保model_id在整个导入流程中正确传递和使用
- 解决素材导入时选择模特但数据库中model_id为null的问题
2025-07-15 13:40:47 +08:00
imeepos eeeef4ead4 feat: 实现项目一键AI分类功能
- 添加ProjectBatchClassificationRequest和ProjectBatchClassificationResponse数据模型
- 在VideoClassificationService中实现create_project_batch_classification_tasks方法
- 添加start_project_batch_classification Tauri命令接口
- 在前端添加startProjectBatchClassification方法和相关类型定义
- 在项目详情页面添加一键AI分类按钮和队列状态监控
- 支持批量处理项目下所有符合条件的视频素材
- 集成现有的AI分类队列系统,确保兼容性
2025-07-14 18:26:03 +08:00
imeepos 7a9ac750ae fix: 修复前端队列控制按钮功能
问题修复:
- 修复暂停/恢复/停止按钮无法正常工作的问题
- 添加详细的调试日志来诊断按钮操作
- 优化按钮的启用/禁用逻辑和视觉反馈

 技术改进:
- 在队列操作后添加延迟确保后端状态更新
- 修复refreshQueueStatus方法的返回值类型
- 改进按钮状态判断逻辑,支持更多队列状态

 用户体验提升:
- 添加状态指示器显示当前队列状态
- 改进按钮的禁用状态样式
- 提供更清晰的按钮提示文本

 状态管理优化:
- 确保队列控制操作后正确刷新状态
- 添加操作中的加载状态指示
- 改进错误处理和日志输出

 任务恢复机制:
- 添加recover_stuck_tasks功能恢复卡住的任务
- 在队列启动时自动恢复处理中状态的任务
- 解决应用意外关闭导致任务永久卡住的问题
2025-07-14 15:52:28 +08:00
imeepos 483ea64413 fix: 修复AI视频分类进度数据不一致问题 2025-07-14 14:53:54 +08:00
imeepos b1fdcaac6b feat: 添加项目特定的AI视频分类任务进度显示
功能改进:
- 添加get_project_classification_task_progress命令
- VideoClassificationProgress组件现在只显示当前项目的任务
- 优化任务进度获取逻辑,支持按项目过滤

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

 用户体验提升:
- 项目详情页面只显示相关任务,避免混淆
- 更精确的进度统计和状态显示
- 更好的数据隔离和组织
2025-07-14 14:41: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 73f542af40 feat: 实现异步导入处理和批量导入功能
- 新增异步素材导入服务 (AsyncMaterialService)
- 实现实时进度反馈和事件驱动架构
- 添加批量文件夹选择和扫描功能
- 更新导入对话框支持文件夹批量导入
- 优化用户体验,避免UI阻塞

Features:
1. 异步导入处理:支持实时进度更新,不阻塞UI
2. 批量导入:支持文件夹选择和递归扫描
3. 事件驱动:使用Tauri事件系统进行进度通信
4. 文件类型过滤:支持按扩展名过滤文件
5. 改进的用户界面:新增批量导入配置步骤

遵循promptx/tauri-desktop-app-expert开发规范
2025-07-13 23:32:54 +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
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
imeepos 42c5dcef8e feat: 实现项目管理功能 v0.1.1
新功能:
- 项目创建:支持项目名称和本地路径绑定
- 项目列表:简洁大方的卡片式布局展示
- 项目编辑:支持项目信息修改
- 项目删除:支持项目软删除
- 路径选择:集成系统文件夹选择对话框
- 路径验证:实时验证项目路径有效性

 架构设计:
- 遵循 Tauri 开发规范的四层架构设计
- 基础设施层:数据库管理、文件系统操作
- 数据访问层:项目仓库模式、SQLite 集成
- 业务逻辑层:项目服务、数据验证
- 表示层:Tauri 命令、前端组件

 UI/UX:
- 使用 Tailwind CSS 实现简洁大方的设计风格
- 响应式布局适配不同屏幕尺寸
- 流畅的动画效果和交互反馈
- 完整的错误处理和用户提示

 技术栈:
- 后端:Rust + Tauri + SQLite + 四层架构
- 前端:React + TypeScript + Tailwind CSS + Zustand
- 测试:Rust 单元测试 + Vitest 前端测试
- 工具:pnpm 包管理 + 类型安全保证

 质量保证:
- Rust 单元测试覆盖核心业务逻辑
- 前端组件测试覆盖主要 UI 组件
- TypeScript 严格模式确保类型安全
- 遵循开发规范的代码质量标准

 核心特性:
- 项目管理:创建、查看、编辑、删除项目
- 路径管理:自动验证、绝对路径转换
- 数据持久化:SQLite 本地数据库存储
- 状态管理:Zustand 响应式状态管理
- 错误处理:完整的错误捕获和用户反馈
2025-07-13 18:46:58 +08:00