docs(street): 审核页规格改为统一网格+勾选成组,记录并入上一张废弃
This commit is contained in:
@ -62,33 +62,28 @@ parent_image_id integer not null default 0 -- 副图指向所属主图的「
|
||||
|
||||
### 3.2 审核页交互(零 JS)
|
||||
|
||||
**当前主图**:由 URL 查询参数 `?main=<imgID>` 承载。页面顶部渲染一条常驻提示条「当前主图:#12 · 伦敦 Day 3 第 12 张」,直接在页面上可见,刷新后仍在。
|
||||
|
||||
**三个同步表单 POST 路由**(全部返回 302 回列表/详情,与后台现有风格一致):
|
||||
**两个同步表单 POST 路由**(全部返回 302 回详情页,与后台现有风格一致):
|
||||
|
||||
| 路由 | 作用 |
|
||||
| --- | --- |
|
||||
| `POST /admin/reviews/:kind/:id/images/attach` | 表单含 `main=<主图行id>` + 多个 `img=<副图行id>`(checkbox)→ **批量并入**。这是主路径 |
|
||||
| `POST /admin/reviews/:kind/:id/images/:img/attach-prev` | **并入上一张**(相邻快捷,零勾选)。覆盖「连拍同一个人」这一最常见场景 |
|
||||
| `POST /admin/reviews/:kind/:id/images/attach` | 表单含单选 `main=<主图行id>` + 多个勾选 `img=<副图行id>` → **合并选中为一组** |
|
||||
| `POST /admin/reviews/:kind/:id/images/:img/detach` | **拆出**:把副图恢复为主图(`is_detail=0, parent_image_id=0`) |
|
||||
|
||||
**不单设「设为主图」路由**:选定主图 = 点击某张主图的「设为主图」链接,它只是把 URL 变成 `?main=<imgID>`(普通 GET 链接,无需服务端写入),并带 `#i<imgID>` 锚点使刷新后回到原位置。
|
||||
**审核页布局**:街拍草稿详情页渲染为**一个统一图片网格**(与列表页同款 `.grid` / `.cell` 卡片样式,不再有"分组大卡片 + 小网格"两套风格):
|
||||
|
||||
**审核页布局(实际实现)**:街拍草稿详情页渲染为**一条「图片流」**(合并了原「分组」与「全部图片」两块,消除重复):
|
||||
- 每张图片一张卡片:缩略图 + 角色徽标 + 文件名。
|
||||
- **主图**卡片:徽标「主图 · N 副图」+ 勾选框「选入」+ 单选「主图」。
|
||||
- **副图**卡片:徽标「副图 → #主图」(显示沿链归并后的**实际**所属主图,非原始父 id)+ 勾选框「选入」+ 按钮「拆出」。
|
||||
- 每张卡片都带「删除」。
|
||||
- 底部常驻(sticky)按钮条:`合并选中为一组`。
|
||||
|
||||
- 主图卡片:徽标「主图 · N 张副图」+ `设为主图`(GET,带 `#i<id>` 锚点) + `并入上一张` + 批量勾选框 + `删除`;其副图以缩略小条紧跟在卡片下方,带 `并入上一张` / `拆出` / `删除`。
|
||||
- 底部常驻(sticky)提交条:把勾选的图 `并入到当前主图 #N`。
|
||||
- 顶部常驻提示条:显示「当前主图 #N」与两条操作路径。
|
||||
**操作只有一件事**:勾选属于同一个人的图片 → 在**其中一张主图**上点「主图」(单选)→ 点底部「合并选中为一组」(`main`=单选值,`img`=全部勾选值)。一次请求成组,无需刷新页面选主图。
|
||||
|
||||
> **「并入上一张」必须覆盖每一张图(除首张)**:这是「连拍同一个人」的快捷路径,无需先选主图。此前实现只在「已是副图」的行上渲染该按钮,导致新建草稿(全是主图)时该快捷完全不可用——已修正。
|
||||
|
||||
两条路径:
|
||||
- **连拍**:从上往下,对属于同一人的图逐张点「并入上一张」。
|
||||
- **非相邻**:先点目标主图的「设为主图」→ 勾选要并入的图 → 点底部「并入到当前主图」。
|
||||
> **历史(已废弃)**:早期版本用 URL 参数 `?main=` 承载"当前主图",并有一个按 `sort_order` 找"上一行"的 `attach-prev` 快捷。实践中发现**同一人的图往往不相邻**,该快捷用不上;且"先刷新选主图 → 再勾选 → 再提交"步骤过多。已改为本节的**单选主图 + 一次合并**,并删除 `attach-prev` 路由、`AttachPrevStreetDraftImage`、`?main=` 参数与 `DraftDetailView.MainID`。
|
||||
|
||||
### 3.3 详情页渲染(按组折叠)
|
||||
|
||||
**审核页**:见 §3.2「图片流」——主图卡片 + 其下副图缩略条,主图卡片显示「N 张副图」计数。
|
||||
**审核页**:见 §3.2——统一图片网格;主图卡片徽标显示「N 副图」,副图卡片显示所属主图。
|
||||
|
||||
**公开详情页**:`Images` 只含主图,副图挂在每张主图的 `Detail` 子数组下(与走秀详情同形,见 §3.5)。
|
||||
|
||||
@ -143,7 +138,7 @@ internal/repository/review_repository.go attach / attach-prev / detach 三个
|
||||
internal/repository/review_repository.go SaveStreetSnapFromDraft 重建父引用
|
||||
internal/service/review_service.go DraftImageRef 加分组信息;分组写入的校验
|
||||
internal/handler/backstage_handler.go 审核页「图片流」渲染 + 常驻主图条 + 三个表单
|
||||
internal/router/backstage.go 三个新路由
|
||||
internal/router/backstage.go 两个新路由(attach 合并 / detach 拆出)
|
||||
internal/dto/street_snap.go 详情改为嵌套(images 只含主图,复用 PublicArticleImage)
|
||||
internal/service/street_snap_service.go 详情组装嵌套 images(buildSnapImages)
|
||||
```
|
||||
|
||||
Reference in New Issue
Block a user