还原顶栏、浮动卡片、时间侧栏与底部交互;照片路径改为 CameraDownloads 相对路径并兼容旧数据;格式 Chip 固定 JPG 且不可点击。 Co-authored-by: Cursor <cursoragent@cursor.com>
70 lines
2.7 KiB
Markdown
70 lines
2.7 KiB
Markdown
# 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 提示弹窗)
|