Commit Graph

20 Commits

Author SHA1 Message Date
imeepos 6b21a389c0 feat: 优化模特管理界面UI/UX设计
界面精致化优化:
- 优化模特卡片尺寸,宽高比调整为4:5,更加紧凑
- 精致化按钮设计,统一尺寸规范和间距
- 优化搜索框和筛选器,提升视觉精致度
- 修复下拉选择组件图标间距问题

 组件优化:
- ModelCard: 减少内边距,优化文字和图标尺寸
- ModelList: 精致化头部工具栏和按钮设计
- ModelSearch: 重新设计搜索框和筛选器布局
- 创建CustomSelect组件,解决原生select样式问题

 用户体验提升:
- 修复筛选按钮功能,添加展开/收起动画
- 优化网格布局,支持更多列显示
- 提高信息密度,在相同空间显示更多内容
- 统一设计语言,建立完整的设计系统

 响应式优化:
- 优化移动端显示效果
- 在大屏幕上支持5列布局
- 改进触摸目标尺寸和间距

技术改进:
- 建立统一的设计令牌系统
- 优化CSS动画和过渡效果
- 改进组件可维护性和复用性
- 遵循前端开发规范和视觉设计标准
2025-07-14 10:45:08 +08:00
imeepos 5cf1f8bfca feat: 实现模特管理功能
- 新增模特数据模型和数据库表结构
- 实现模特的完整CRUD操作
- 添加模特照片管理功能
- 实现素材与模特关联功能
- 创建模特管理前端界面
- 集成到主应用导航和路由
- 修复数据库连接死锁问题

功能特性:
- 模特基本信息管理(姓名、艺名、性别、年龄等)
- 照片管理和封面设置
- 标签系统
- 状态管理(活跃、不活跃、退役、暂停)
- 评分系统
- 搜索和过滤功能
- 素材关联功能
2025-07-14 01:39:14 +08:00
imeepos af2897d314 chore: bump version to 0.1.5
- 更新package.json版本号到0.1.5
- 更新Cargo.toml版本号到0.1.5
- 更新tauri.conf.json版本号到0.1.5
- 准备发布0.1.5版本
2025-07-14 00:30:09 +08:00
imeepos c366261008 feat: UI美化和UX改进 v0.1.5
- 优化设计系统和主题配置
  - 增强Tailwind配置,添加更丰富的色彩系统
  - 新增多种动画效果和过渡动画
  - 改进字体系统和间距设置
  - 添加阴影变体和渐变效果

- 改进项目列表页面UI/UX
  - 重新设计页面头部,添加渐变背景和统计信息
  - 优化项目卡片布局和响应式设计
  - 增强加载和错误状态的视觉效果
  - 添加交错动画效果

- 优化项目卡片组件
  - 重新设计卡片布局,添加背景装饰
  - 改进统计信息展示,使用渐变背景和徽章
  - 增强悬停效果和交互反馈
  - 优化菜单和按钮设计

- 改进表单和模态框体验
  - 重新设计模态框头部和布局
  - 增强表单字段的视觉设计和验证反馈
  - 添加加载状态和成功状态指示
  - 改进按钮样式和交互效果

- 增强加载状态和反馈机制
  - 重新设计EmptyState组件,添加装饰效果
  - 增强LoadingSpinner,支持多种动画样式
  - 改进ErrorMessage组件,支持多种消息类型
  - 新增SkeletonLoader组件用于骨架屏加载

- 添加微交互和动画效果
  - 新增AnimatedButton组件,支持涟漪效果
  - 创建PageTransition组件用于页面过渡
  - 添加多种动画工具组件
  - 增强按钮和卡片的微交互效果

- 优化响应式设计和移动端体验
  - 改进容器布局和间距设置
  - 优化移动端的触摸体验
  - 确保所有组件在不同屏幕尺寸下的完美适配

遵循前端开发规范,提升界面美观性和用户体验
2025-07-14 00:23:58 +08:00
imeepos ae854ef871 fix: 完善前端事件处理逻辑
- 移除handleStartImport中的手动完成状态设置
- 完全依赖事件监听器处理导入完成状态
- 优化日志输出和错误处理
- 确保异步导入流程的一致性
2025-07-14 00:00:39 +08:00
imeepos 44b4084eb9 fix: 修复异步导入业务逻辑和loading状态
问题修复:
1. 异步导入没有调用完整业务逻辑 - 只创建了Material记录,没有处理元数据、场景检测、视频切分
2. 导入动画一闪而逝 - 缺少实际的处理时间
3. 后台无素材处理日志 - 简化版本跳过了所有业务处理

解决方案:
1. 替换简化处理函数为完整业务逻辑处理
2. 调用MaterialService的完整处理流程
3. 添加详细的处理日志和进度事件
4. 添加适当延迟确保用户看到loading动画
5. 修复前端事件处理逻辑

技术改进:
- process_single_file_with_full_logic: 完整的素材处理流程
- 元数据提取、场景检测、视频切分全流程
- 详细的tracing日志输出
- 实时进度事件发送
- 正确的错误处理和状态更新
2025-07-13 23:57:56 +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 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 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 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 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
imeepos 7537342b43 fix: 修复 TypeScript 测试配置类型错误
修复内容:
- 修复 IntersectionObserver mock 缺少必需属性的类型错误
- 修复 localStorage mock 缺少 length 和 key 属性的类型错误
- 添加正确的类型断言确保测试环境兼容性

 构建准备:
- 解决构建过程中的 TypeScript 编译错误
- 确保生产构建能够正常完成
- 为 release 0.1.1 做好准备
2025-07-13 19:40:14 +08:00
imeepos 2f7ed4ae99 fix: 修复 UNIQUE 约束冲突和应用架构完善
问题修复:
- 修复项目路径 UNIQUE 约束冲突导致的创建失败问题
- 修复应用启动时数据库清理导致的卡住问题
- 修复编译错误和类型安全问题

 架构完善:
- 完善四层架构设计,符合 Tauri 开发规范
- 添加性能监控系统,支持启动时间、内存、CPU 监控
- 添加事件总线系统,实现事件驱动架构
- 增强应用状态管理,集成性能监控和事件系统

 技术优化:
- 优化数据库 PRAGMA 配置,提高数据可靠性
- 改进项目创建逻辑,自动处理路径冲突
- 添加手动清理功能,用户可主动清理无效记录
- 完善错误处理和用户反馈机制

 新增功能:
- 项目路径冲突自动处理
- 无效项目记录清理功能
- 性能监控报告生成
- 事件驱动的组件通信

 UI 改进:
- 在项目列表添加清理按钮
- 优化按钮布局和用户交互
- 增强加载状态和错误提示

 质量保证:
- 遵循 Tauri 开发规范的安全第一原则
- 实现类型安全的错误处理
- 添加详细的调试日志和状态监控
- 确保数据库操作的事务安全性

 性能优化:
- 优化数据库连接和查询性能
- 实现性能指标监控和报告
- 添加启动时间和响应时间监控
- 符合 Tauri 性能标准要求
2025-07-13 19:33:51 +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
imeepos 1a5fcf6485 Initial commit: MixVideo Desktop v0.1.0
Features:
-  Cross-platform Tauri desktop application
-  React + TypeScript + Vite frontend
-  Rust backend with Tauri 2.0
-  Multi-package management (PNPM + Cargo workspaces)
-  GitHub Actions CI/CD pipeline
-  Modern project structure and configuration

 Build artifacts:
- Windows MSI and NSIS installers
- Cross-platform executable
- Automated release workflow

 Tech stack:
- Frontend: React 18 + TypeScript + Vite
- Backend: Rust + Tauri 2.0
- Package management: PNPM Workspace + Cargo Workspace
- CI/CD: GitHub Actions
2025-07-13 17:57:52 +08:00