From 2409beb7c22750a06ec384fb683d78f740917019 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=B5=85=E5=BF=B5?= Date: Wed, 23 Sep 2026 10:20:57 +0800 Subject: [PATCH] =?UTF-8?q?docs:=20register=20album=20soft-delete=20accept?= =?UTF-8?q?ance=20=E2=80=94=20full-chain=20verified=20on=20test=20server?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Code --- docs/plans/progress/UI06-验收记录.md | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/docs/plans/progress/UI06-验收记录.md b/docs/plans/progress/UI06-验收记录.md index a46ab1e..74dc40e 100644 --- a/docs/plans/progress/UI06-验收记录.md +++ b/docs/plans/progress/UI06-验收记录.md @@ -134,6 +134,22 @@ 修复 `1a52d0a`:补 `onGroupedItemClick`(handleMenuJump 统一外链/iframe/路由语义 + 移动端关抽屉), 部署 `ui06-1a52d0a-20260923` 后 Playwright 真实点击 5 个菜单项全部 PASS(manage/embed-slots/users/user-sync/usage)。 教训:交互行为改动必须真实点击验证,截图只覆盖静态视觉——已补进后续流程。 +- **展示位菜单无图标**(用户报告):`ri:picture-carousel-line` 非 Remix 有效名(Iconify 404 空白)。 + 修复 `d08d8f5`:`ri:slideshow-line`;部署后 5 个菜单 SVG 渲染全部确认。 +- **页面铺满**(用户调整):全局 `.ui06-page` 边距/限宽注释,边距交还 ElMain;`452cdf4` 同步 manage scoped 类。 + +## 5.y 相册软删除(2026-09-23 新功能,用户需求「可以做一个软删除」;commit `8e674a9`) + +决策(用户拍板):admin+owner 可删;删除后隐藏不可恢复(数据保留,仅运维可 SQL 恢复);**管理后台与 App 两端都加入口**。 + +- 契约 `deleteAlbum`(DELETE /albums/{albumId} → 204 幂等;status enum + deleted) +- 服务端 `softDelete`:canView 404→canManage 403(防枚举);乐观锁 claim + outbox `album.updated` **priority=high**(公开可见性类变更)+ audit `album.delete` +- 过滤面:列表/详情/更新/成员/资产/分类/水印/照片/展示位绑定全部 deleted→404;cn 公开端(status!=='active')与 ov(isAlbumVisibleOv)天然屏蔽;ov 副本经事件载荷 status 直投自动下线(无需 ov 侧改动) +- Admin:列表表格「删除」+ 详情页头「删除相册」(确认框含不可恢复说明) +- App:操作面板红字「删除相册」→ AlertDialog 二次确认 → SnackBar → 退回列表刷新(albumListProvider.refresh) +- 验证:API 56/56、App 397/397 analyze 0、admin 全绿;**测试服务器真实 API 全链路**:创建→DELETE 204→幂等 204→详情 404→列表不含→成员/照片/水印 404→未认证 401→ov 正常 +- 部署:cn+ov 双栈 `ui06-8e674a9-20260923`(server+web 均滚动;迁移无待办);模拟器 App 已装新包 +- 登记偏差:已删除相册的展示位绑定不自动解绑(拉取端容错已有;再次绑定校验拒绝 deleted) ### 6.1 A0 偏差复核(代码级,以 app-preview styles.css 实测为准)