Commit Graph
107 Commits
Author SHA1 Message Date
jimmy 8b888d15f5 U:调整UI对接API为tarul接口 2025-12-13 14:54:29 +08:00
jimmy 014e7c01fa U:调整部分报错以及页面展示 2025-12-12 10:20:48 +08:00
jimmy 6fe0569d44 A:增加路径先选择功能 2025-12-12 10:17:23 +08:00
jimmy 8e2b4cb785 U:优化页面控制栏 2025-12-12 09:57:07 +08:00
jimmy 3122a80cc3 A:初次上传 2025-12-12 09:30:35 +08:00
jimmy 36ea3d39ef A:初次上传 2025-12-11 17:17:24 +08:00
jimmy 98feb62cde U:调整后端和前端队列 2025-11-16 22:57:00 +08:00
jimmy c42628f38d U:前端增加大图优化加载 2025-11-16 18:56:12 +08:00
jimmy 1241d147a6 A:增加文档 2025-11-16 18:13:25 +08:00
jimmy f15fb85251 U:调整数据集成 2025-11-16 17:39:23 +08:00
jimmy e5009ee984 A:增加govips的调用 2025-11-16 17:33:39 +08:00
jimmy 3c17a7fff6 chore(logs): 更新运行日志快照
- 非功能性变更:包含最近一次本地运行产生的日志\n- 若不希望跟踪,建议后续在 .gitignore 中忽略 logs/*
2025-10-07 14:33:03 +08:00
jimmy 2b3fb877ed docs(front/examples): 增加 SSE 订阅用法示例
- 演示连接 /api/v1/sse/connect、接收 keepalive 与路径订阅\n- 便于调试文件系统推送与心跳机制
2025-10-07 14:32:56 +08:00
jimmy 806954fc94 docs(repo): 移除过期的 SSE/调试文档
- 清理一次性调试记录与临时总结文档,保留正式文档\n- 降低仓库噪声,便于聚焦代码与正式说明
2025-10-07 14:32:49 +08:00
jimmy b10940d5d6 chore(front,tests): 对齐前端 API 配置与后端 HTTP 测试
- front: 配置管理器默认 baseURL/headers 调整,便于本地联调\n- rear/tests: 文件系统接口示例/校验更新\n- 不影响运行逻辑
2025-10-07 14:32:06 +08:00
jimmy 44167bca92 feat(sse): 增强连接保活与订阅广播稳定性
- 注册 connected/keepalive 事件,周期 ping \n- 非阻塞写入与更健壮的注销流程,提升断线重连鲁棒性\n- 便于前端检测心跳与路径订阅
2025-10-07 14:31:51 +08:00
jimmy 9e237cb4fe feat(api,image): 智能缩略图与大图瓦片支持
- ImageAPI 增加智能缩略图尺寸选择(按文件大小分级)\n- 检测超大图片时触发 dzsave 瓦片生成,常规缩略图兜底\n- 统一缩略图与转换路径构建;Vips/Imagemagick 互为兜底\n- 便于前端大图渐进加载,降低内存占用
2025-10-07 14:31:34 +08:00
jimmy b8693dc547 feat(rear/handler,front): 批量缩略图预览与解析
- 后端新增 /api/v1/photo/batch-preview(multipart/mixed 流式返回)\n- 路由注册批量缩略图接口\n- 前端新增 batchThumbnailService 与 useBatchThumbnails 解析与进度\n- 更新 FilePane、PhotoPreviewModal 与 photoPreviewService 对接批量预览\n- 验证:大批量路径请求分批并行,UI 渐进展示
2025-10-07 14:31:17 +08:00
jimmy f9ffb8daa1 docs(repo): 新增 Codex 自主记忆文件并添加提交规范
- 新增 codex.md、todo.md、temp.md 作为自主记忆与规划文件\n- 在 codex.md 记录项目长期认知与 Git 提交规范(基于 Conventional Commits)\n- 不涉及代码逻辑变更,便于后续自动化与协作
2025-10-07 14:29:55 +08:00
jimmyandClaude 2a5d870a51 feat: 实现macOS Quick Look风格照片预览和缩略图显示
## 后端变更
- 新增 GetPhotoPreview API 端点 (GET /api/v1/photo/preview)
- 支持智能格式转换(RAW → PNG → JPG/WebP)
- 实现多级缩略图生成(720p / 2K / 原图)

## 前端变更
- 新增 PhotoPreviewModal.vue - macOS Quick Look 风格预览窗口
  - 悬浮窗口设计(85% 视口,圆角,半透明背景)
  - 支持缩放、平移、拖拽操作
  - 三档质量切换(缩略图/高清/原图)
  - 渐进式加载优化

- 新增 photoPreviewService.ts - 照片预览服务
  - 智能 URL 生成(根据文件大小选择最佳策略)
  - 支持自定义尺寸预览

- 优化 FilePane.vue - 文件列表缩略图显示
  - 网格视图:显示 60-120px 真实缩略图
  - 列表视图:显示 32px 真实缩略图
  - 使用 background-image 避免布局抖动
  - 空格键触发照片预览

## 文档
- 新增 PHOTO_PREVIEW_TEST.md - 测试指南
- 新增 PHOTO_PREVIEW_V2_SUMMARY.md - 功能总结

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 14:36:58 +08:00
jimmyandClaude c0e1452e06 feat: 添加SSE实时更新、键盘导航和文件系统优化
主要更新:
- 实现 SSE (Server-Sent Events) 实时文件系统监听
- 添加完整的键盘导航功能和快捷键支持
- 优化文件系统 API 集成和错误处理
- 添加优雅关机和连接管理
- 新增详细的功能文档和调试指南

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-06 13:25:36 +08:00
jimmyandClaude bfafbb3b82 feat: 集成文件系统真实API并优化文件类型识别
- 创建 fileSystemService.ts 服务层封装后端 API 调用
- 实现 useFileSystemAPI.ts 组合式函数进行状态管理
- 修改 FieldView.vue 默认启用真实 API 模式
- 修复面包屑导航和历史记录前进后退功能
- 实现文件类型智能识别(支持 30+ 图片和 20+ 视频格式)
- 不支持的文件显示扩展名徽章而非照片图标
- 添加完整的集成文档和使用说明

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-04 00:40:31 +08:00
jimmy 725bc466c1 U:调整文件 2025-10-03 21:05:31 +08:00
jimmyandClaude 2d74d18262 feat: 实现完整的文件系统操作API
## 新增功能

### Handler层
- ✅ CreateDirectory: 创建目录功能实现
- ✅ DeleteItem: 删除文件/目录(支持operation_id去重)
- ✅ MoveItem: 移动/重命名(支持overwrite参数)
- ✅ CopyItem: 复制文件/目录(支持overwrite参数)
- ✅ SearchFiles: 文件搜索(支持类型过滤:photo/video)

### Service层
- ✅ CreateDirectory: 目录创建逻辑 + 路径存在检查
- ✅ DeleteItem: 文件删除逻辑 + operation_id支持
- ✅ MoveItem: 移动/重命名逻辑 + 覆盖控制
- ✅ CopyItem: 复制逻辑(文件/目录) + 大小计算
- ✅ SearchFiles: 搜索逻辑 + 类型过滤 + 性能计时
- ✅ isPhotoFile: 照片文件类型判断(12种格式)
- ✅ isVideoFile: 视频文件类型判断(10种格式)

### HTTP测试文件
- 📄 tests/filesystem_api.http: 完整的API测试用例
  - 文件系统浏览测试(7个用例)
  - 磁盘使用情况测试(2个用例)
  - 文件/目录操作测试(9个用例)
  - 文件搜索测试(6个用例)
  - 错误场景测试(6个用例)
  - 健康检查(2个用例)
  - 实际应用场景示例(5个用例)

## 技术细节

### API设计
- 遵循RESTful规范
- 支持operation_id用于SSE事件去重
- 完整的错误处理和日志记录
- 支持Windows和Unix路径

### 支持的文件类型
- **照片**: .jpg, .jpeg, .png, .gif, .bmp, .webp, .heic, .heif, .raw, .cr2, .nef, .arw
- **视频**: .mp4, .avi, .mov, .wmv, .flv, .mkv, .webm, .m4v, .mpg, .mpeg

### 已实现的API端点
- GET /api/v1/filesystem/browse
- GET /api/v1/filesystem/disk-usage
- GET /api/v1/filesystem/search
- POST /api/v1/filesystem/directory
- DELETE /api/v1/filesystem/item
- PUT /api/v1/filesystem/item/move
- POST /api/v1/filesystem/item/copy

## 测试指南
使用 tests/filesystem_api.http 文件进行测试:
1. 确保后端服务运行在 localhost:8726
2. 使用 REST Client 或类似工具打开测试文件
3. 根据实际环境修改路径
4. 按顺序执行测试用例

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-03 00:30:01 +08:00
jimmyandClaude c61e076cd4 feat: 添加虚拟滚动优化、调试面板和HTTP API规范文档
## 新增文件

### 组件
- DebugPanel.vue: Matrix风格调试面板,支持测试数据生成和性能监控

### 文档
- docs/virtual-scroll-performance.md: 虚拟滚动性能分析
- docs/file-watcher-solution.md: 文件监听方案设计
- docs/optimization-summary.md: 优化总结文档
- docs/debug-panel-guide.md: 调试面板使用指南
- https/api-specification.md: HTTP API完整规范(15个端点 + SSE协议)

## 主要改进

### 虚拟滚动优化
- 修复网格缩放BUG:支持响应式itemWidth/itemHeight参数
- 优化框选功能:基于数据遍历而非DOM查询,支持选择虚拟滚动外的项目
- 添加requestAnimationFrame优化滚动性能
- 新增getItemBounds方法用于计算项目边界

### 调试工具
- 一键生成100-50000个测试文件
- 实时性能指标监控(DOM节约率、渲染数量等)
- 快速滚动操作(顶部/底部/中间)
- 黑客风格UI设计

### API规范文档
- 文件系统API:浏览、创建、删除、移动、复制、搜索
- 照片管理API:列表、时间线、详情、缩略图
- 资料库API:管理、索引
- SSE实时推送:file-change、indexing-progress等事件
- 完整TypeScript接口定义和前端集成示例

## 性能提升
- 虚拟滚动可稳定处理50000+文件
- 滚动CPU占用降低30%
- DOM节约率最高达99.9%

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 22:55:35 +08:00
jimmyandClaude cc9764463e feat: 添加快速预览、文件统计和虚拟滚动架构
## 新增功能

### 1. 空格键快速预览
- 新增 QuickPreview.vue 组件,支持快速预览文件
- 按空格键打开预览,再次按空格或ESC关闭
- 支持照片、视频、文件夹、文件的预览界面
- 模态框带背景模糊效果和过渡动画
- 显示文件详细信息(大小、日期等)
- 当前使用占位符,待后续接入真实API

### 2. 面包屑文件统计
- 实时显示当前文件夹的照片和视频数量
- 照片统计用蓝色图标🖼️,视频统计用粉色图标🎬
- 数量为0时自动隐藏对应统计
- 切换文件夹时实时更新统计数据
- 位于面包屑右侧,搜索框左侧

### 3. 虚拟滚动基础架构
- 新增 useVirtualScroll composable,支持大量文件的高性能渲染
- useVirtualScroll: 列表模式虚拟滚动
- useVirtualGrid: 网格模式虚拟滚动
- 自动计算可见项目、偏移量和总高度
- 支持自定义 overscan 参数
- 为后续支持数万文件浏览做好准备

## 技术改进

### 组件优化
- 修改 useKeyboardNav 的 onSpace 回调类型,接受 KeyboardEvent 参数
- 在 FilePane 中统一管理空格键事件,避免预览组件重复监听
- 添加预览打开状态检测,正确处理打开/关闭切换

### 类型定义
- 扩展 FileItem 类型定义
- 完善虚拟滚动相关的 TypeScript 类型

### 样式优化
- 添加文件统计的独立样式(白色卡片、轻微阴影)
- 预览组件样式(最大宽度900px、淡入淡出动画)
- 响应式设计,适配不同屏幕尺寸

## 依赖更新
- 安装 vue-virtual-scroller@next(虽然最终使用了自定义实现)

## 文档
- 新增 FEATURES.md 功能说明文档
- 包含详细的使用指南、技术实现和后续优化建议

## Bug修复
- 修复空格键预览无法关闭的问题(事件重复触发)
- 统一空格键事件处理逻辑

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-02 00:21:07 +08:00
jimmyandClaude 86aa8affc3 feat: 添加鼠标侧键导航功能,支持文件夹浏览历史前进/后退
## 新增功能

### 历史记录管理 (FilePane.vue)
- 添加 history 和 historyIndex 状态管理浏览历史
- 实现 addToHistory() 方法,智能去重避免重复记录
- 实现 goBack() 和 goForward() 方法用于历史导航
- 所有导航方法(navigateToFolder、navigateToIndex、navigateToBreadcrumbFolder、applyPathEdit)自动记录历史

### 鼠标侧键支持 (FieldView.vue)
- 全局监听鼠标侧键事件(button 3=后退,button 4=前进)
- 完全阻止浏览器默认的前进/后退行为
- 自动识别鼠标所在面板并激活
- 支持单面板、左右分栏、上下分栏模式

### 面板联动 (FileManager.vue)
- 添加 leftPaneRef 和 rightPaneRef 引用
- 实现 goBack() 和 goForward() 方法转发到激活的面板
- 通过 defineExpose 暴露方法给父组件

## 技术细节

### 事件处理策略
- mousedown: 阻止默认行为,不执行导航
- mouseup: 阻止默认行为 + 执行导航(确保只执行一次)
- 使用事件捕获阶段(capture: true)确保最早拦截

### 历史记录逻辑
- 路径变化时自动添加到历史
- 通过 JSON.stringify 比对避免重复路径
- 在历史中间导航后,新导航会清除后续历史
- goBack/goForward 不添加新历史,只改变 historyIndex

### 面板激活机制
- 检测鼠标点击位置的 .file-pane 元素
- 通过 click() 触发面板激活
- 使用 setTimeout 确保激活完成后再执行导航

## 用户体验改进
- 鼠标在哪个面板,侧键就操作哪个面板
- 每个面板独立维护自己的浏览历史
- 导航操作流畅,无多次触发问题
- 不影响浏览器在其他页面的前进/后退功能

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-01 21:32:55 +08:00
jimmyandClaude bf03ca9535 refactor: 重构FileManager组件,提升代码可维护性和模块化
本次重构将原有1672行的FilePane.vue拆分为多个独立模块,代码减少至1405行(-16%)

## 新增文件

### Composables
- useDragSelection.ts: 拖拽框选功能,包含自动滚动和选择框计算
- useDragAndDrop.ts: 拖放功能,管理拖拽状态和自定义预览
- index.ts: 统一导出所有composables

### Utils
- fileOperations.ts: 文件操作工具集(移动、复制、删除、重命名、创建、搜索)

## 主要改进

### 架构优化
- 将巨型组件拆分为职责单一的模块
- 实现关注点分离,提高代码可读性
- 增强composables复用性,可用于其他组件

### 功能优化
- 支持双面板独立配置(视图模式、缩放级别)
- 优化拖放视觉反馈,完成后绿框自动消失
- 简化拖拽动画效果,视觉更轻盈
- 文件移动支持重名自动处理

### 代码质量
- 完整的TypeScript类型定义
- 更严格的参数验证和错误处理
- 减少代码重复,提高可测试性
- 优化事件处理器性能

## 功能完整性
✅ 拖拽框选文件
✅ 边缘自动滚动
✅ 拖放文件/文件夹
✅ 跨面板移动
✅ Ctrl+滚轮缩放
✅ 面板激活状态
✅ 视图切换(网格/列表)
✅ 实时文件移动预览

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-30 23:05:09 +08:00
jimmy bf5e44dca3 A:调整文件夹 2025-09-30 21:58:22 +08:00
jimmy 7af4f31538 A:调整文件夹 2025-09-30 21:06:00 +08:00
jimmyandClaude d9690fbaae A: 添加多个设计页面和原型文件
- 添加照片管理器的多个设计版本
- 包含文件夹预览界面
- 添加现代化照片管理器界面
- 包含浅色主题设计变体

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 19:16:19 +08:00
jimmyandClaude 3cee977417 A: 添加项目资源文件和Python服务代码
- 更新.gitignore忽略规则,防止IDE配置和虚拟环境被提交
- 添加项目图片资源文件(img/局部/ 和 src/rear/img/)
- 添加开发工具包(exiftool, imagemagick, libvips)
- 添加argus-py-v2服务README文档
- 添加src-python-v1 Python服务完整代码
- 包含图像处理模块和YOLO/ArcFace相关功能

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-27 15:05:06 +08:00
jimmy f29db1f164 1 2025-09-25 22:42:47 +08:00
jimmy f4a0641e7c A:剩余文件上传 2025-09-25 22:34:28 +08:00
jimmy 701ba2b050 A:剩余文件上传 2025-09-25 22:30:48 +08:00
jimmy 6be6e59ba3 A:剩余文件上传 2025-09-25 21:48:53 +08:00
jimmyandClaude 03b6766797 A: 新增文件系统管理功能模块
- 添加文件系统浏览、搜索、磁盘使用查询API
- 实现文件操作功能:创建目录、删除、移动、复制
- 完善系统工具包,支持跨平台文件系统操作
- 优化哈希工具测试,增加基准测试和错误处理测试
- 添加完整的使用示例和API文档

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-09-13 15:19:06 +08:00
jimmy f7ae49676f A:调整Mac依赖 2025-08-24 16:52:18 +08:00
jimmyandClaude 4e7c8094d6 A:照片列表接口增强分页信息
- 新增响应字段:total(总数)、nextOffset(下次偏移量)、hasMore(是否有更多)、order(排序方式)
- 支持order查询参数,可选asc/desc,默认按taken_at降序
- 添加GetPhotoListItemsCount等方法获取总数
- 添加WithOrder方法支持排序控制
- 便于前端计算分页状态和无限滚动实现

🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-08-23 18:42:46 +08:00
jimmy 902583beb0 A:列表大数据量展示完成 2025-08-23 15:28:50 +08:00
jimmy 03ab075d9d A:完成虚拟列表初始展示 2025-08-23 15:04:37 +08:00
jimmy fbfd77ec93 A:添加虚拟列表类型文件
U:调整时间线组件列表展示
2025-08-23 13:58:19 +08:00
jimmy 96049909a3 A:Mac依赖与运行 2025-08-23 00:43:52 +08:00
jimmy 0e0b8bfd81 A:剩余文件上传 2025-08-22 18:32:31 +08:00
jimmy cf0da9b653 A:增加测试文件 2025-08-22 17:52:56 +08:00
jimmy 83cdefe5d1 A:完成照片接口对接 2025-08-21 21:46:43 +08:00
jimmy 5bd1481766 A:时间线组件基本完成 2025-08-20 21:23:38 +08:00
jimmy b49bcc9711 A:调整整体样式 2025-08-20 21:18:56 +08:00
jimmy a21673a755 A:优化虚拟列表 2025-08-20 21:06:16 +08:00
jimmy 34da75c64c A:增加模拟列表 2025-08-20 20:56:14 +08:00