feat(ui06): B2 shared components + B3a core pages — album cards, photo grid, viewer, summary header

- 类型补齐契约字段:Summary.cover / AdminPhoto.preview(SignedUrl;服务端已返回,B0 核对)
- AlbumCoverCard:封面卡(公开/状态/上传 pill,无封面中性占位,不显示 owner 名)
- 相册列表:默认封面卡片网格(3列/1700+4列)+ 表格切换 + 已加载内搜索 + 公开状态筛选 + 摘要行
- AlbumSummaryHeader:300×144 封面 + 两列紧凑资料 + 高级折叠(ownerId/统计时间收敛)
- 详情页壳:页头(编辑/分享固定主操作)替换 ElDescriptions 大区;banner 区 B3c 收纳
- PhotoGrid + PhotoPreviewDialog:照片网格默认(preview.thumb 签名 URL)+ 深色大图(browse URL、
  行内隐藏/恢复/软删除复用表格状态机);网格勾选与表格 selection 合并批量目标
- e2e 适配默认网格视图(albums/governance 断言前切表格);batchHide fixture 补 preview
- typecheck/lint/vitest 87 项全绿

Co-Authored-By: Claude Code <noreply@anthropic.com>
This commit is contained in:
浅念
2026-09-22 23:19:21 +08:00
parent cebe3d1e2e
commit 4f6790d630
13 changed files with 1767 additions and 215 deletions
@@ -17,7 +17,8 @@ function photoOf(photoId: string): Api.Album.AdminPhoto {
uploadedAt: '2026-09-01T00:00:00.000Z',
publishedAt: '2026-09-01T00:00:00.000Z',
likeCount: 0,
uploader: { userId: 'u1', account: 'staff', displayName: 'Staff' }
uploader: { userId: 'u1', account: 'staff', displayName: 'Staff' },
preview: null
}
}