From 0fb5f18c739e9f0e7359cb3b826208353913c4ed Mon Sep 17 00:00:00 2001 From: unknown Date: Mon, 3 Aug 2026 21:53:55 +0800 Subject: [PATCH] docs(plan): stage VIP sidebar entry work --- .specs/plans/user-center-sidebar-vip-entry.md | 61 +++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 .specs/plans/user-center-sidebar-vip-entry.md diff --git a/.specs/plans/user-center-sidebar-vip-entry.md b/.specs/plans/user-center-sidebar-vip-entry.md new file mode 100644 index 00000000..8121e74e --- /dev/null +++ b/.specs/plans/user-center-sidebar-vip-entry.md @@ -0,0 +1,61 @@ +# Plan: 用户中心侧栏 VIP 入口卡片 + +## Architectural Decisions + +Durable decisions that apply across all phases: + +- **现有会员导航契约**:完整点击卡片复用现有用户中心 `tab=vip` URL;不打开购买弹窗,也不新增客户端标签切换逻辑。 +- **现有配置决定可见性**:仅当现有 VIP 配置中至少一个等级启用时渲染入口;不新增设置项、管理员例外或不可用占位。 +- **现有数据决定展示状态**:复用既有 VIP 等级、过期等级和到期状态读取能力及文案语义;不增加数据字段、迁移或新的会员状态计算。 +- **侧栏组合层决定顺序**:侧栏组合器将独立 VIP 入口渲染器放在统计信息与账户资产之间;渲染器封装卡片状态和输出。 +- **用户中心样式保持局部**:会员横卡样式限定在用户中心侧栏范围,沿用现有响应式侧栏抽屉,不新增移动端内容区入口。 +- **单一会员入口位置**:删除资产页中仅作导航用途的 VIP 入口,保留独立“我的会员”页面及其购买、续费、升级、兑换和支付能力。 + +--- + +## Phase 1 — 会员入口可从侧栏进入 + +**User stories**: 1、2、3、4、7 + +### What to build + +在统计信息和账户资产之间接入独立的服务端 VIP 入口渲染器。入口根据现有配置和当前用户会员状态,展示未开通引导、有效会员等级与既有到期状态,或过期状态;整个卡片通过现有用户中心 URL 进入“我的会员”页面。此阶段先交付完整行为与基础结构,视觉增强和资产页去重留到下一阶段。 + +### Done when + +- [ ] `inc/helpers/user-center-renderers/profile-sidebar.php` 在 `sidebar-stats.php` 后、`sidebar-commerce.php` 前加载独立的侧栏 VIP 入口渲染器。 +- [ ] 新的侧栏 VIP 入口渲染器复用现有 VIP 配置、会员等级、过期等级和到期状态,并在没有启用任何 VIP 等级时不输出 HTML。 +- [ ] [agent:test-auditor] 人工检查渲染器的四种服务端输出:未开通显示权益引导;有效会员显示等级和既有状态文案;过期会员显示过期状态;VIP 未启用时无入口,并确认未引入新的精确日期格式。 +- [ ] 新入口的完整可点击区域使用 `aksrt_get_user_center_tab_url('vip')` 生成目标地址,人工检查所得 URL 可进入 `tab=vip`。 +- [ ] 运行 `php tools/audit-admin-contracts.php`,命令退出码为 0 且报告为 `errors=0`。 + +--- + +## Phase 2 — 会员横卡完成视觉落地并消除重复入口 + +**User stories**: 5、6 + +### What to build + +为侧栏 VIP 入口增加与账户资产双卡明显区分的金色或会员感渐变视觉、会员图标、动态状态文本、右侧箭头及交互反馈,并确保其随既有侧栏在移动端抽屉中正确展示。同时删除资产页内容区中重复的 VIP 导航卡,保持余额、积分、签到和记录功能不变。 + +### Done when + +- [ ] `assets/css/routes/user-center/shell.css` 包含限定在用户中心侧栏的 VIP 卡样式,覆盖会员渐变、图标、状态文本、右侧箭头、完整卡片悬停/聚焦状态和窄屏文本约束。 +- [ ] `inc/helpers/user-center-renderers/profile-credits.php` 不再输出 `uc-vip-assets-entry` 导航卡,文件中原有余额、积分、签到和资产记录组合逻辑仍被保留。 +- [ ] [agent:test-auditor] 人工在桌面宽度验收“统计信息 → VIP 入口 → 账户资产”的顺序、整卡跳转和 VIP 卡与余额/积分双卡的视觉区分。 +- [ ] [agent:test-auditor] 人工在既有移动侧栏抽屉验收相同顺序、整卡可点击性、状态文本无溢出,并确认页面内容区没有额外复制 VIP 入口。 +- [ ] 运行 `php tools/audit-admin-contracts.php`,命令退出码为 0 且报告为 `errors=0`。 + +## Out of Scope + +- 修改“我的会员”页面的布局、文案、套餐卡、权益内容或购买流程。 +- 修改支付弹窗、支付渠道、续费、升级、兑换、卡密兑换或订单逻辑。 +- 新增、修改或迁移会员数据、会员状态算法、到期日期格式、数据库表或 REST API。 +- 新增后台会员配置、侧栏开关、管理员例外显示规则或运营统计。 +- 记录 VIP 入口的曝光、点击或转化数据。 +- 在移动端内容区额外置顶或复制 VIP 入口。 + +## Open Questions + +无。