Files
suixinkan_ios_new/suixinkan/Features/TravelAlbum/TravelAlbum.md
汉秋 c71b45bdfd 对齐有线传图页 Android UI,并改用相对路径持久化本地照片。
还原顶栏、浮动卡片、时间侧栏与底部交互;照片路径改为 CameraDownloads 相对路径并兼容旧数据;格式 Chip 固定 JPG 且不可点击。

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-06-30 11:16:28 +08:00

70 lines
2.7 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# TravelAlbum
## 职责
旅拍相册(新增相册 / 新建相册任务)模块,包含任务创建、相册详情、小程序码与 USB 有线传图上传。
## 入口
- 权限 URI`travel_album``TravelAlbumEntryView`
- Android 对照:`ui/travelalbum``WiredCameraTransferScreen.kt`
## 核心页面
| 页面 | 说明 |
| --- | --- |
| `TravelAlbumEntryView` | 新增相册列表、新建任务入口;卡片主区域点击进入详情,底部保留「拍传」「相册码」 |
| `CreateTravelAlbumSheet` | 先拍再买 / 买了再拍创建弹窗 |
| `TravelAlbumDetailView` | 相册详情与素材管理 |
| `WiredCameraTransferView` | 有线传图页UI 对齐 Android |
## 有线传图 UI 结构
Android 对照:`zhiflyfollow/.../WiredCameraTransferScreen.kt`
```
WiredTransferHeaderView # 蓝色顶栏:相册名 + 手机号
WiredTransferControlCard # 浮动白卡片:设备存储 / 连接状态 / 筛选 Chip / Tab
WiredTransferSelectAllBar # 勾选模式全选栏(条件显示)
WiredTransferPhotoListPanel # 时间侧栏 + 30 分钟分组列表
WiredTransferBottomBar # 批量上传 + 指定上传
SpecifyUploadBottomSheet # 指定上传选项弹层
```
## 有线传图交互流程
1. **刷新**:顶部连接区「刷新」按钮 → `refreshCameraFiles()` → 同步相机历史文件
2. **批量上传三态**
- 首次点击 → 进入勾选模式
- 有选中项 → 上传选中照片
- 无选中项 → 取消选择
3. **指定上传**:底部 Sheet 选择「上传所有未上传的照片」或「上传所有今日拍摄的照片」
4. **时间侧栏**:按 30 分钟时间段分组,点击侧栏滚动到对应 section
5. **格式 Chip**:当前固定展示 JPG与「不修图」一样不可点击RAW 等格式后续扩展
## 业务流程
1. 创建任务:`POST .../travel-album/create`
2. 进入有线传图Sony 相机 PTP 下载(`Core/CameraTethering`
3. OSS 上传:复用 `OSSUploadService.uploadAlbumFile`
4. 素材登记:`POST .../travel-album/upload-material`
5. 本地照片路径以相对 Documents 的路径持久化(如 `CameraDownloads/xxx.JPG`),加载时自动迁移旧版绝对路径
## 解耦关系
- `CameraTransferPipeline` 只依赖 `CameraAssetUploadSink` 协议
- `TravelAlbumMaterialUploader` 实现 OSS + 后端登记
- 与「相册管理」(`Features/Assets`API、Store、路由完全隔离
## 依赖模块
- `Core/CameraTethering` — USB/PTP 相机
- `Core/CameraTransfer` — 传输编排
- `Core/Upload` — OSS STS 上传
## 二期待补齐
- RAW 预览
- 格式 Chip 扩展 RAW / JPEG+RAW并与 `CameraTransferPipeline` 联动
- 设备存储不足时的业务侧限制(当前仅 UI 提示弹窗)