diff --git a/components/ModulePage.vue b/components/ModulePage.vue
index cfb4fe7..32e02ea 100644
--- a/components/ModulePage.vue
+++ b/components/ModulePage.vue
@@ -1,185 +1,551 @@
-
+
-
+
-
-
-
- {{ page.number }}{{ page.subtitle }}
+
+
+
+
+
+
+
+ {{ page.subtitle }}
-
-
-
- {{ page.title }}
- {{ page.subtitle }}
-
- {{ field }}
-
- {{ normalizedNote }}
-
+
+ 填写信息
+
+
+ {{ field }}
+
+ {{ normalizedNote }}
+
-
-
- {{ item[0] }}{{ item[1] }}点按查看详情
+
+
+
+ {{ item[0] }}
+ {{ item[1] }}
+ 查看详情
+
-
-
-
- {{ page.number }} · 家族档案
- {{ page.title }}
- {{ page.subtitle }}
-
- {{ item[0] }}{{ item[1] }}
-
-
-
-
-
-
-
-
- 第 {{ index + 1 }} 则{{ item[0] }}{{ item[1] }}
+
+ 档案详情
+
+
+ {{ item[0] }}{{ item[1] }}
-
-
-
- {{ page.title }}{{ page.subtitle }}
-
- {{ item[0] }}{{ item[1] }}查看
-
-
+
+
+
+ 第 {{ index + 1 }} 则{{ item[0] }}{{ item[1] }}
+
-
-
-
- {{ page.badge }} · 服务说明{{ page.lead }}{{ normalizedNote }}
+
+ 服务与设置
+
+
+ {{ item[0] }}{{ normalizedSectionCopy(item[1]) }}
+ 查看
+
+
+
+
+
+
+
+ {{ page.badge }} · 服务说明
+ {{ page.lead }}
+ {{ normalizedNote }}
-
-
-
- {{ stateCopy.eyebrow }}{{ stateCopy.title }}{{ stateCopy.copy }}
-
+
+
+
+ {{ stateCopy.eyebrow }}
+ {{ stateCopy.title }}
+ {{ stateCopy.copy }}
+
+
diff --git a/docs/design/assets/candidates/2026-07-19/g01-add-sheet-background-source-magenta-v2.png b/docs/design/assets/candidates/2026-07-19/g01-add-sheet-background-source-magenta-v2.png
new file mode 100644
index 0000000..8626ef4
Binary files /dev/null and b/docs/design/assets/candidates/2026-07-19/g01-add-sheet-background-source-magenta-v2.png differ
diff --git a/docs/superpowers/plans/2026-07-16-g01-fixed-header-independent-list-scroll.md b/docs/superpowers/plans/2026-07-16-g01-fixed-header-independent-list-scroll.md
new file mode 100644
index 0000000..b5a9b83
--- /dev/null
+++ b/docs/superpowers/plans/2026-07-16-g01-fixed-header-independent-list-scroll.md
@@ -0,0 +1,275 @@
+# G01 Fixed Header And Independent List Scroll Implementation Plan
+
+> **For agentic workers:** REQUIRED SUB-SKILL: Use superpowers:executing-plans to implement this plan task-by-task. The user forbids subagents, worktrees, git add, commit, push, reset, and checkout; execute inline in the existing workspace and preserve every pre-existing change.
+
+**Goal:** Make G01's normal genealogy state keep its header, current genealogy card, shortcut grid, divider, and bottom tabbar fixed while only the three list groups and add action scroll vertically.
+
+**Architecture:** Add one G01-only split-layout modifier for the normal `hasGenealogies` state. Keep the existing header/background/tabbar outside a single vertical `scroll-view`, place the current card/shortcuts/divider in a fixed flex section, and allocate all remaining viewport height to the list scroller. Loading, error, and empty states retain the existing normal-flow layout.
+
+**Tech Stack:** Vue 3 `
diff --git a/pages/auth/a04-register.vue b/pages/auth/a04-register.vue
index a777f4b..35708ef 100644
--- a/pages/auth/a04-register.vue
+++ b/pages/auth/a04-register.vue
@@ -2,66 +2,151 @@
-
-
+
+
-
+
注册账号
创建属于你的家谱账号
-
+
-
+
手机号
-
+
- {{ fieldErrors.phone }}
+ {{
+ fieldErrors.phone
+ }}
-
+
设置密码
-
+
- {{ fieldErrors.password }}
+ {{
+ fieldErrors.password
+ }}
-
+
确认密码
-
+
- {{ fieldErrors.confirmPassword }}
+ {{
+ fieldErrors.confirmPassword
+ }}
-
-
+
+
注册账号
-
+
-
+
我已阅读并同意
- 《用户协议》
+ 《用户协议》
与
- 《隐私政策》
+ 《隐私政策》
- 请先阅读并同意用户协议与隐私政策
+ 请先阅读并同意用户协议与隐私政策
已有账号?
- 登录
+ 登录
@@ -73,72 +158,73 @@
diff --git a/pages/auth/a05-reset-password.vue b/pages/auth/a05-reset-password.vue
index 2bc92de..2142a82 100644
--- a/pages/auth/a05-reset-password.vue
+++ b/pages/auth/a05-reset-password.vue
@@ -2,76 +2,174 @@
-
-
+
+
-
+
重设密码
验证手机号后设置新的登录密码
-
+
-
+
手机号
-
+
- {{ fieldErrors.phone }}
+ {{
+ fieldErrors.phone
+ }}
-
+
验证码
-
- 获取验证码
+
+ 获取验证码
- {{ fieldErrors.verificationCode }}
+ {{
+ fieldErrors.verificationCode
+ }}
-
+
新密码
-
+
- {{ fieldErrors.password }}
+ {{
+ fieldErrors.password
+ }}
-
+
确认新密码
-
+
- {{ fieldErrors.confirmPassword }}
+ {{
+ fieldErrors.confirmPassword
+ }}
-
-
+
+
确认重设
重设成功后,请使用新密码登录
想起密码了?
- 返回登录
+ 返回登录
-
+
✓
密码已重设
请返回登录页,使用新密码登录
-
-
+
+
返回登录
@@ -85,71 +183,78 @@
diff --git a/pages/auth/a06-auth-status.vue b/pages/auth/a06-auth-status.vue
index 97f0580..56bd26a 100644
--- a/pages/auth/a06-auth-status.vue
+++ b/pages/auth/a06-auth-status.vue
@@ -2,58 +2,114 @@
-
-
+
+
-
+
登录受限
请根据当前账号状态完成恢复
-
+
-
+
{{ currentState.eyebrow }}
{{ currentState.title }}
{{ currentState.description }}
- {{ currentState.reasonLabel }}
- {{ currentState.reason }}
+ {{
+ currentState.reasonLabel
+ }}
+ {{
+ currentState.reason
+ }}
- {{ currentState.impactLabel }}
- {{ currentState.impact }}
+ {{
+ currentState.impactLabel
+ }}
+ {{
+ currentState.impact
+ }}
- {{ currentState.recoveryLabel }}
- {{ currentState.recovery }}
+ {{
+ currentState.recoveryLabel
+ }}
+ {{
+ currentState.recovery
+ }}
-
-
+
+
查看恢复方式
- 返回登录
+ 返回登录
-
+
{{ currentState.recoveryTitle }}
{{ currentState.recoveryDetail }}
- 账号恢复服务将在功能阶段接入,当前仅审核页面样式与状态位置。
-
-
+ 账号恢复服务将在功能阶段接入,当前仅审核页面样式与状态位置。
+
+
我知道了
@@ -63,77 +119,87 @@
diff --git a/pages/genealogy/g05-genealogy-overview.vue b/pages/genealogy/g05-genealogy-overview.vue
index 6f996c8..9cd8431 100644
--- a/pages/genealogy/g05-genealogy-overview.vue
+++ b/pages/genealogy/g05-genealogy-overview.vue
@@ -3,42 +3,93 @@
-
-
+
+
-
+
- {{ genealogy.hall || '堂号待补' }} · {{ genealogy.location || '所在地待补' }}
+ {{ genealogy.hall || "堂号待补" }} ·
+ {{ genealogy.location || "所在地待补" }}
{{ genealogy.name }}
- {{ genealogy.motto || '敦亲睦族,敬祖传家。' }}
+ {{
+ genealogy.motto || "敦亲睦族,敬祖传家。"
+ }}
共 {{ genealogy.memberCount || 0 }} 人
已激活 {{ genealogy.activeCount || 0 }} 人
- {{ genealogy.visibility || '仅成员可见' }}
+ {{ genealogy.visibility || "仅成员可见" }}
-
+
- 世系树查看家脉关系
+ 世系树查看家脉关系
-
- 录入族人从首代开始完善
+
+ 录入族人从首代开始完善
-
- 字辈谱传承行辈次序
+
+ 录入族人仅管理员可用
-
- 入谱审核处理加入申请
+
+ 字辈谱传承行辈次序
+
+
+ 入谱审核处理加入申请
+
+
+ 入谱审核仅管理员可用
- 家族近况进入家族圈查看动态查看
+ 家族近况进入家族圈查看动态查看
家谱资料,仅向家人开放
@@ -47,40 +98,97 @@
-
+
公开家谱
{{ genealogy.name }}
{{ genealogy.source }}
- 姓氏{{ genealogy.surname }}氏
- 地区{{ genealogy.location }}
- 堂号{{ genealogy.hall }}
- 当前支系{{ genealogy.branchName }}
- 所属上级谱{{ genealogy.parentName }}
+ 姓氏{{ genealogy.surname }}氏
+ 地区{{ genealogy.location }}
+ 堂号{{ genealogy.hall }}
+ 当前支系{{ genealogy.branchName }}
+ 所属上级谱{{ genealogy.parentName }}
公开说明
{{ genealogy.publicDescription }}
-
+
申请加入这部家谱
-
- {{ stateTitle }}
- {{ stateCopy }}
-
-
- {{ overviewState === 'error' ? '重新查看' : '返回我的家谱' }}
+
+
+
+
+
+
+
+
+ {{ stateTitle }}
+ {{ stateCopy }}
+
+
+ {{
+ overviewState === "error" ? "重新查看" : "返回我的家谱"
+ }}
+
@@ -88,126 +196,452 @@
diff --git a/pages/genealogy/g10-application-review.vue b/pages/genealogy/g10-application-review.vue
index 0b04e40..460bc26 100644
--- a/pages/genealogy/g10-application-review.vue
+++ b/pages/genealogy/g10-application-review.vue
@@ -2,23 +2,39 @@
-
+
-
-
+
+
核实亲属关系后再决定
审核结果会通过消息告知申请人
-
+
-
-
+
+
{{ item.name }}
{{ item.phone }}
@@ -26,34 +42,93 @@
{{ item.relation }}
- 拒绝
+ 拒绝申请
- 通过
+ 通过申请
- {{ item.status === 'APPROVED' ? '已通过' : '已拒绝' }}
+
+
+ {{
+ item.status === "APPROVED" ? "已通过" : "已拒绝"
+ }}
+
+
-
+
{{ stateTitle }}
{{ stateCopy }}
-
- 重新查看
+
+ 重新查看
-
+
{{ feedbackMessage }}
diff --git a/pages/genealogy/g11-genealogy-settings.vue b/pages/genealogy/g11-genealogy-settings.vue
index 0578ff6..adf67d0 100644
--- a/pages/genealogy/g11-genealogy-settings.vue
+++ b/pages/genealogy/g11-genealogy-settings.vue
@@ -4,142 +4,433 @@
-
-
+
+
-
+
+
谱主可见 · 基础设置
完善家谱访问规则
- 这里仅安排接口支持的名称、公开范围与访问说明;管理权转让将在成员选择场景中单独处理。
+ 这里仅安排接口支持的名称、公开范围与访问说明;管理权转让将在成员选择场景中单独处理。
-
+
家谱名称
-
+
- {{ nameError }}
+ {{
+ nameError
+ }}
公开范围
-
-
- {{ option.label }}
+
+
+ {{ option.label }}
{{ visibilityHint }}
-
+
访问说明
-
+
-
+
保存设置
- {{ settingsState === 'success' ? '设置已保存' : settingsState === 'no-permission' ? '权限不足' : '设置未保存' }}
- {{ settingsState === 'success' ? '新的访问规则已经生效' : settingsState === 'no-permission' ? '当前账号不能修改家谱' : '暂时无法打开家谱设置' }}
- {{ settingsState === 'success' ? `${genealogyDraft.name} · ${visibilityLabel}` : settingsState === 'no-permission' ? '只有家谱所有者可以修改名称、公开范围和访问说明。' : '请从家谱总览重新进入,当前修改不会被保留。' }}
+ {{
+ settingsState === "success"
+ ? "设置已保存"
+ : settingsState === "no-permission"
+ ? "权限不足"
+ : "设置未保存"
+ }}
+ {{
+ settingsState === "success"
+ ? "新的访问规则已经生效"
+ : settingsState === "no-permission"
+ ? "当前账号不能修改家谱"
+ : "暂时无法打开家谱设置"
+ }}
+ {{
+ settingsState === "success"
+ ? `${genealogyDraft.name} · ${visibilityLabel}`
+ : settingsState === "no-permission"
+ ? "只有家谱所有者可以修改名称、公开范围和访问说明。"
+ : "请从家谱总览重新进入,当前修改不会被保留。"
+ }}
-
- {{ settingsState === 'success' ? '继续调整' : '重新查看' }}
+
+ {{
+ settingsState === "success" ? "继续调整" : "重新查看"
+ }}
-
+
设置已保存
diff --git a/pages/genealogy/g12-generation-poems.vue b/pages/genealogy/g12-generation-poems.vue
index 8c1b4b3..dc77d28 100644
--- a/pages/genealogy/g12-generation-poems.vue
+++ b/pages/genealogy/g12-generation-poems.vue
@@ -2,164 +2,511 @@
-
+
-
-
+
+
-
+
+
汤氏家谱 · 传承字序
启宗敦本,继世传芳
- 按世代查看字辈,当前家谱使用到“敦”字辈。
+ 按世代查看字辈,当前家谱使用到“敦”字辈。
-
-
+
+
第 {{ item.generationNo }} 世
{{ item.character }}
- {{ item.current ? '当前字辈' : '传承字序' }}
+ {{
+ item.current ? "当前字辈" : "传承字序"
+ }}
- 维护字辈诗
+ 维护字辈诗
批量维护
录入连续字辈
- 按照接口支持的连续文本录入,每个汉字对应一代;保存前可预览新字序。
+ 按照接口支持的连续文本录入,每个汉字对应一代;保存前可预览新字序。
-
+
字辈内容
-
+
{{ poemError }}
缺失旧世代时
-
-
- {{ stopMissingOldGeneration ? '停止并提醒' : '继续补录' }}
+
+
+ {{ stopMissingOldGeneration ? "停止并提醒" : "继续补录" }}
- 预览:{{ previewCharacters || '尚未录入字辈' }}
+ 预览:{{ previewCharacters || "尚未录入字辈" }}
- 取消
+ 取消
- 保存字辈
+ 保存字辈
- {{ poemState === 'empty' ? '尚未建立字辈' : poemState === 'no-permission' ? '权限不足' : '字辈暂不可用' }}
- {{ poemState === 'empty' ? '从第一段传承字序开始' : poemState === 'no-permission' ? '当前账号不能维护字辈' : '暂时无法读取字辈诗' }}
- {{ poemState === 'empty' ? '管理员可以一次录入连续字辈,系统会按世代拆分展示。' : poemState === 'no-permission' ? '普通成员可以查看字辈,但只有具备管理权限的成员可以维护。' : '请从家谱总览重新进入,或稍后再试。' }}
-
- {{ poemState === 'empty' ? '开始录入' : '重新查看' }}
+ {{
+ poemState === "empty"
+ ? "尚未建立字辈"
+ : poemState === "no-permission"
+ ? "权限不足"
+ : "字辈暂不可用"
+ }}
+ {{
+ poemState === "empty"
+ ? "从第一段传承字序开始"
+ : poemState === "no-permission"
+ ? "当前账号不能维护字辈"
+ : "暂时无法读取字辈诗"
+ }}
+ {{
+ poemState === "empty"
+ ? "管理员可以一次录入连续字辈,系统会按世代拆分展示。"
+ : poemState === "no-permission"
+ ? "普通成员可以查看字辈,但只有具备管理权限的成员可以维护。"
+ : "请从家谱总览重新进入,或稍后再试。"
+ }}
+
+ {{ poemState === "empty" ? "开始录入" : "重新查看" }}
-
+
字辈预览已更新
diff --git a/pages/tree/t01-tree-overview.vue b/pages/tree/t01-tree-overview.vue
index d9c9963..504ef20 100644
--- a/pages/tree/t01-tree-overview.vue
+++ b/pages/tree/t01-tree-overview.vue
@@ -1,17 +1,23 @@
-
+
-
+
-
+
-
+
- 汤氏家谱主支 · 第 12—14 世
+ 汤氏家谱
+ 主支 · 第 12—14 世
阅读提示
@@ -19,46 +25,137 @@
-
-
-
+
+
+
-
- 第十二世
- 第十三世
- 第十四世
-
-
+
+
+ 同代分支可左右查看
+
+
+
+
+ 第十二世 · 始祖
+
+
+
+ 第十三世 · 两房
+
+
+
+ 第十四世 · 三支
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
{{ member.name }}
- {{ member.relation }}
+ {{ member.relation }} · {{ member.branch }}
{{ member.years }}
- {{ stateCopy.eyebrow }}
- {{ stateCopy.title }}
- {{ stateCopy.copy }}
-
-
- {{ stateCopy.action }}
+
+
+ {{
+ stateCopy.eyebrow
+ }}
+ {{ stateCopy.title }}
+ {{ stateCopy.copy }}
+
+
+ {{ stateCopy.action }}
+
-
+
{{ selected.name }}
- 第 {{ selected.generation }} 世 · {{ selected.relation }} · {{ selected.branch }}
+ 第 {{ selected.generation }} 世 · {{ selected.relation }} ·
+ {{ selected.branch }}
- 查看资料
+
+ 查看资料
- 添加亲属
+
+ 添加亲属
@@ -66,99 +163,523 @@
diff --git a/scripts/capture-chrome-page.js b/scripts/capture-chrome-page.js
index 4d8e26a..090b088 100644
--- a/scripts/capture-chrome-page.js
+++ b/scripts/capture-chrome-page.js
@@ -6,7 +6,7 @@ const renderSettleMilliseconds = 900
const chromeDebuggingPort = process.env.CHROME_DEBUGGING_PORT || '9222'
if (!url || !selector || !output) {
- throw new Error('Usage: node scripts/capture-chrome-page.js