## 修复内容 ### 1. 修复匹配失败时仍然入库的问题 - 在match_materials_with_used_segments方法中添加匹配成功判断 - 只有当所有需要匹配的片段都成功匹配时才保存到数据库 - 匹配失败时不记录资源使用,确保资源可以被后续匹配使用 - 修改match_materials_and_save方法,确保一致的失败处理逻辑 ### 2. 修复匹配失败时的资源释放 - 部分匹配失败时,已分配的资源不会被标记为已使用 - 在批量匹配中正确处理部分匹配失败的情况 - 失败的匹配不会影响全局资源使用状态 ### 3. 修复成功率计算超过100%的问题 - 统一所有地方的成功率计算逻辑,确保基于可匹配片段计算 - 在前端显示时添加Math.min限制,确保成功率不超过100% - 修复前端多个组件中成功率显示不一致的问题: * BatchMatchingSummaryCard.tsx * BatchMatchingResultDialog.tsx * TemplateMatchingResultCard.tsx * TemplateMatchingResultDetailModal.tsx * TemplateMatchingResultStatsPanel.tsx * materialMatchingService.ts ### 4. 改进批量匹配逻辑 - 区分完全匹配失败和部分匹配失败 - 部分匹配失败时提供详细的失败原因 - 保持匹配结果用于分析,但不保存到数据库 ## 技术细节 - 后端成功率统一为0-1的小数格式 - 前端显示时统一乘以100并限制最大值为100 - 确保匹配失败时的事务一致性 - 添加详细的日志输出便于调试 |
||
|---|---|---|
| .. | ||
| docs | ||
| public | ||
| scripts | ||
| src | ||
| src-tauri | ||
| test_data | ||
| .gitignore | ||
| CHANGELOG.md | ||
| DATABASE_OPTIMIZATION_GUIDE.md | ||
| README.md | ||
| TOOLS_FEATURE.md | ||
| index.html | ||
| package.json | ||
| postcss.config.js | ||
| tailwind.config.js | ||
| test_parallel_processing.md | ||
| tsconfig.json | ||
| tsconfig.node.json | ||
| vite.config.ts | ||
| vitest.config.ts | ||
README.md
@mixvideo/desktop
MixVideo 桌面应用 - 基于 Tauri + React + TypeScript 构建的跨平台桌面应用。
🚀 快速开始
开发环境要求
- Node.js 18+
- Rust 1.70+
- PNPM 8+
安装依赖
pnpm install
开发模式
pnpm dev
# 或
pnpm tauri:dev
构建应用
pnpm tauri:build
📁 项目结构
apps/desktop/
├── src/ # React 前端源码
│ ├── components/ # React 组件
│ ├── pages/ # 页面组件
│ ├── hooks/ # 自定义 Hooks
│ ├── services/ # API 服务
│ ├── types/ # TypeScript 类型
│ └── utils/ # 工具函数
├── src-tauri/ # Rust 后端源码
│ ├── src/ # Rust 源码
│ ├── Cargo.toml # Rust 依赖配置
│ └── tauri.conf.json # Tauri 配置
├── public/ # 静态资源
└── package.json # 前端依赖配置
🛠️ 技术栈
- 前端: React 18 + TypeScript + Vite
- 后端: Rust + Tauri 2.0
- UI: 待定 (可选择 Ant Design、Material-UI 等)
- 状态管理: 待定 (可选择 Zustand、Redux Toolkit 等)