diff --git a/docs/superpowers/specs/2026-07-21-g01-role-shortcut-design.md b/docs/superpowers/specs/2026-07-21-g01-role-shortcut-design.md new file mode 100644 index 0000000..93a2da7 --- /dev/null +++ b/docs/superpowers/specs/2026-07-21-g01-role-shortcut-design.md @@ -0,0 +1,37 @@ +# G01 当前家谱角色与快捷入口联动设计 + +## 目标 + +修复 G01 切换到“我加入的家谱”后仍显示“管理员”和“申请审核”的状态错误,使当前家谱身份与可见入口始终由家谱自身的 `membership` 字段决定。 + +## 单一规则 + +`data/mock.js` 中每条家谱记录的 `membership` 是 G01 当前身份的唯一来源: + +- `created`:当前用户是管理员,顶部显示“管理员”,快捷入口包含“世系图、成员、字辈诗、申请审核”。 +- `joined`:当前用户是普通成员,顶部显示“成员”,隐藏“申请审核”,仅显示“世系图、成员、字辈诗”。 + +不增加兼容字段,不根据家谱所在列表、当前索引或名称推断身份。 + +## 页面行为 + +- 首次进入页面时,根据当前选中家谱立即显示正确身份和入口。 +- 在切换弹层选择另一家谱后,身份文字和快捷入口同步更新。 +- 三个或四个快捷入口继续使用现有等宽布局,不增加占位项。 +- 切换家谱后维持现有的列表滚动归零行为。 +- 普通成员状态不提供“申请审核”的隐藏点击区域或导航路径。 + +## 修改范围 + +- `pages/genealogy/g01-my-genealogies.vue`:从当前家谱计算身份文字和可见快捷入口。 +- G01 相关契约或运行时测试:覆盖管理员与普通成员双向切换。 + +不修改其他页面、视觉资产、数据结构和权限接口。 + +## 验收标准 + +1. `created` 家谱显示“管理员”和四个快捷入口。 +2. `joined` 家谱显示“成员”,且页面中不存在“申请审核”入口。 +3. 从管理员切到成员,再切回管理员,两种状态都立即恢复正确。 +4. 现有 G01 布局、弹层、空态、加载态、错误态和滚动行为测试继续通过。 +5. MuMu 模拟器中管理员态与成员态均无错位、空白占位或底部遮挡。