From ff60119277f2267e6104d1ea33df041ec8e1f06c Mon Sep 17 00:00:00 2001
From: rain <982766701@qq.com>
Date: Tue, 21 Jul 2026 07:53:03 +0800
Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=8C=E6=88=90?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
.gitignore | 10 +
components/AppButton.vue | 29 +-
components/AppDialog.vue | 53 ++-
components/AppLoading.vue | 13 +-
components/AppToast.vue | 9 +-
components/GenealogyCard.vue | 82 ++--
components/ModulePage.vue | 93 +----
components/PageHeader.vue | 73 +++-
components/tree/TreeMemberForm.vue | 49 +--
data/mock.js | 2 +
...age-business-ownership-audit_2026-07-20.md | 45 +++
docs/data-driven-layout-audit_2026-07-20.md | 58 +++
...26-07-20-active-page-business-ownership.md | 66 +++
...-07-20-project-data-driven-layout-audit.md | 193 +++++++++
...6-07-20-project-document-flow-migration.md | 61 ++-
...0-active-page-business-ownership-design.md | 50 +++
...project-data-driven-layout-audit-design.md | 72 ++++
...-project-document-flow-migration-design.md | 21 +-
docs/交接记录.md | 36 +-
docs/夜间批量收敛交接_2026-07-20.md | 41 +-
docs/验收规划.md | 29 +-
pages/auth/a01-entry.vue | 82 ++--
pages/auth/a04-register.vue | 54 ++-
pages/auth/a05-reset-password.vue | 90 ++---
pages/auth/a06-auth-status.vue | 74 ++--
pages/family/f01-family-feed.vue | 84 ++--
pages/family/f02-publish-feed.vue | 43 +-
pages/family/f03-feed-detail.vue | 154 ++++++-
pages/family/f04-article-list.vue | 118 +++++-
pages/family/f05-article-detail.vue | 114 +++++-
pages/family/f06-article-editor.vue | 65 ++-
pages/family/f07-album-list.vue | 132 +++++-
pages/family/f08-album-detail.vue | 33 +-
pages/family/f09-media-upload.vue | 20 +-
pages/family/f10-video-list.vue | 23 +-
pages/genealogy/g01-my-genealogies.vue | 264 ++++--------
pages/genealogy/g03-create-genealogy.vue | 162 +++-----
pages/genealogy/g05-genealogy-overview.vue | 219 ++++------
pages/genealogy/g06-search-genealogies.vue | 152 ++-----
pages/genealogy/g08-join-application.vue | 138 +++----
pages/genealogy/g09-my-applications.vue | 142 +++----
pages/genealogy/g10-application-review.vue | 163 ++++----
pages/genealogy/g11-genealogy-settings.vue | 159 ++++----
pages/genealogy/g12-generation-poems.vue | 166 ++++----
pages/notification/n01-message-center.vue | 58 +--
pages/notification/n02-message-detail.vue | 112 +++++-
pages/profile/m01-profile-home.vue | 126 +++---
pages/profile/m02-edit-profile.vue | 78 +++-
pages/profile/m03-security-settings.vue | 48 ++-
pages/profile/m04-change-password.vue | 60 ++-
pages/profile/m05-change-phone.vue | 56 ++-
pages/profile/m06-help-center.vue | 49 ++-
pages/profile/m07-feedback.vue | 53 ++-
pages/profile/m08-promotion.vue | 47 ++-
pages/profile/m09-vip-orders.vue | 40 +-
pages/profile/m10-about-settings.vue | 43 +-
pages/records/r01-people-list.vue | 78 +---
pages/records/r02-person-detail.vue | 64 ++-
pages/records/r03-gift-list.vue | 194 ++++++++-
pages/records/r04-gift-editor.vue | 261 +++++++++++-
pages/records/r05-ritual-list.vue | 182 ++++++++-
pages/records/r06-ritual-detail.vue | 223 ++++++++++-
pages/records/r07-ritual-editor.vue | 228 ++++++++++-
pages/records/r08-growth-journal.vue | 254 +++++++++++-
pages/records/r09-life-events.vue | 261 +++++++++++-
pages/records/r10-memo-list.vue | 247 +++++++++++-
pages/records/r11-merit-records.vue | 267 ++++++++++++-
pages/tree/t01-tree-overview.vue | 377 ++++++++++--------
pages/tree/t03-member-profile.vue | 362 ++++++-----------
pages/tree/t04-add-relative.vue | 245 +++++++++++-
pages/tree/t05-edit-member.vue | 194 ++++++++-
pages/tree/t06-edit-relationship.vue | 216 +++++++++-
pages/tree/t07-member-directory.vue | 91 ++---
pages/tree/t08-member-states.vue | 265 ++++--------
scripts/capture-chrome-page.js | 14 +
tests/a01-a02-ui-contract.ps1 | 17 +-
tests/a02-route-removal-contract.ps1 | 2 +-
tests/a04-registration-contract.ps1 | 4 +-
tests/a05-reset-password-contract.ps1 | 4 +-
tests/a05-reset-password-runtime-smoke.js | 23 +-
tests/a05-success-asset-contract.ps1 | 8 +
tests/a06-auth-status-contract.ps1 | 3 +-
...ctive-page-business-ownership-contract.ps1 | 57 +++
tests/app-loading-contract.ps1 | 15 +-
tests/core-flow-contract.ps1 | 4 +-
tests/data-driven-layout-contract.ps1 | 84 ++++
tests/data-driven-layout-risk-allowlist.json | 1 +
tests/data-driven-layout-runtime-smoke.js | 188 +++++++++
tests/document-flow-position-allowlist.json | 296 ++------------
tests/document-flow-position-contract.ps1 | 24 +-
tests/f-business-flow-contract.ps1 | 50 +++
tests/f-business-flow-runtime-smoke.js | 90 +++++
tests/f-series-all-states-visual-contract.ps1 | 23 +-
tests/f01-document-flow-contract.ps1 | 16 +-
tests/f01-module-baseline-contract.ps1 | 5 +-
tests/f01-product-entry-contract.ps1 | 9 +
tests/f02-document-flow-contract.ps1 | 15 +
tests/f06-article-editor-contract.ps1 | 2 +
tests/f06-editor-context-contract.ps1 | 8 +
tests/f08-album-detail-contract.ps1 | 17 +-
tests/f08-album-detail-runtime-smoke.js | 6 +-
tests/f08-f09-album-context-contract.ps1 | 11 +
tests/f09-media-upload-contract.ps1 | 9 +
tests/f10-video-status-contract.ps1 | 11 +
.../family-editors-document-flow-contract.ps1 | 16 +-
tests/g-series-app-loading-contract.ps1 | 11 +-
tests/g01-document-flow-contract.ps1 | 23 ++
tests/g01-empty-state-contract.ps1 | 8 +-
tests/g01-empty-state-runtime-smoke.js | 4 +-
tests/g01-error-state-contract.ps1 | 4 +-
tests/g01-genealogy-context-contract.ps1 | 11 +
tests/g01-switch-dialog-runtime-smoke.js | 47 ++-
tests/g01-visual-contract.ps1 | 16 +-
.../g03-ancestor-semantic-fields-contract.ps1 | 7 +
tests/g03-create-flow-contract.ps1 | 2 +-
tests/g03-document-flow-contract.ps1 | 15 +
tests/g05-all-states-visual-contract.ps1 | 11 +-
tests/g05-data-ownership-contract.ps1 | 8 +
tests/g05-document-flow-contract.ps1 | 40 ++
tests/g05-overview-contract.ps1 | 8 +-
tests/g06-document-flow-contract.ps1 | 37 ++
tests/g06-g08-context-contract.ps1 | 11 +
tests/g06-screenshot-consistency.ps1 | 2 +-
tests/g06-search-flow-contract.ps1 | 24 +-
tests/g08-document-flow-contract.ps1 | 14 +
tests/g08-g10-application-flow-contract.ps1 | 18 +-
.../g08-g10-application-flow-runtime-smoke.js | 10 +-
tests/g09-document-flow-contract.ps1 | 15 +
tests/g09-g10-business-state-contract.ps1 | 11 +
tests/g10-document-flow-contract.ps1 | 20 +
tests/g11-document-flow-contract.ps1 | 16 +
tests/g11-g12-all-states-visual-contract.ps1 | 2 +-
tests/g11-g12-settings-poems-contract.ps1 | 10 +-
tests/g11-settings-data-contract.ps1 | 7 +
tests/g12-document-flow-contract.ps1 | 15 +
.../g12-generation-poem-capacity-contract.ps1 | 8 +
tests/handoff-documentation-contract.ps1 | 2 +-
tests/m01-module-baseline-contract.ps1 | 13 +
tests/m01-service-entry-contract.ps1 | 8 +
tests/module-app-loading-contract.ps1 | 10 +-
tests/module-page-document-flow-contract.ps1 | 3 +-
tests/module-page-runtime-smoke.js | 47 ++-
tests/module-page-visual-contract.ps1 | 27 +-
.../module-series-responsive-runtime-smoke.js | 8 +-
tests/n-series-all-states-visual-contract.ps1 | 2 +-
tests/n01-module-baseline-contract.ps1 | 13 +
tests/n01-n02-message-flow-contract.ps1 | 11 +
tests/nm-business-runtime-smoke.js | 110 +++++
tests/nm-page-business-contract.ps1 | 29 ++
tests/r-business-flow-contract.ps1 | 23 ++
tests/r-business-flow-runtime-smoke.js | 9 +
tests/r01-document-flow-contract.ps1 | 14 +-
tests/r01-module-baseline-contract.ps1 | 2 +
tests/r01-r02-person-flow-contract.ps1 | 11 +
tests/r02-background-runtime-smoke.js | 20 +-
tests/r02-person-detail-contract.ps1 | 20 +-
tests/r02-person-detail-runtime-smoke.js | 17 +-
...hared-component-document-flow-contract.ps1 | 63 +++
...red-interaction-accessibility-contract.ps1 | 36 ++
tests/t01-all-states-visual-contract.ps1 | 14 +-
tests/t01-relation-layout-contract.ps1 | 8 +
tests/t01-tree-state-contract.ps1 | 54 ++-
tests/t01-tree-state-runtime-smoke.js | 96 ++++-
tests/t03-document-flow-contract.ps1 | 12 +
...3-t08-business-specialization-contract.ps1 | 110 +++++
...8-business-specialization-runtime-smoke.js | 136 +++++++
tests/t03-t08-member-flow-contract.ps1 | 23 +-
tests/t03-t08-member-flow-runtime-smoke.js | 12 +-
tests/t07-module-baseline-contract.ps1 | 7 +-
tests/t07-t08-all-states-visual-contract.ps1 | 2 +-
tests/t07-t08-document-flow-contract.ps1 | 17 +
...ree-member-form-document-flow-contract.ps1 | 10 +-
172 files changed, 7982 insertions(+), 2999 deletions(-)
create mode 100644 docs/active-page-business-ownership-audit_2026-07-20.md
create mode 100644 docs/data-driven-layout-audit_2026-07-20.md
create mode 100644 docs/superpowers/plans/2026-07-20-active-page-business-ownership.md
create mode 100644 docs/superpowers/plans/2026-07-20-project-data-driven-layout-audit.md
create mode 100644 docs/superpowers/specs/2026-07-20-active-page-business-ownership-design.md
create mode 100644 docs/superpowers/specs/2026-07-20-project-data-driven-layout-audit-design.md
create mode 100644 tests/a05-success-asset-contract.ps1
create mode 100644 tests/active-page-business-ownership-contract.ps1
create mode 100644 tests/data-driven-layout-contract.ps1
create mode 100644 tests/data-driven-layout-risk-allowlist.json
create mode 100644 tests/data-driven-layout-runtime-smoke.js
create mode 100644 tests/f-business-flow-contract.ps1
create mode 100644 tests/f-business-flow-runtime-smoke.js
create mode 100644 tests/f01-product-entry-contract.ps1
create mode 100644 tests/f02-document-flow-contract.ps1
create mode 100644 tests/f06-editor-context-contract.ps1
create mode 100644 tests/f08-f09-album-context-contract.ps1
create mode 100644 tests/g01-document-flow-contract.ps1
create mode 100644 tests/g01-genealogy-context-contract.ps1
create mode 100644 tests/g03-ancestor-semantic-fields-contract.ps1
create mode 100644 tests/g03-document-flow-contract.ps1
create mode 100644 tests/g05-data-ownership-contract.ps1
create mode 100644 tests/g05-document-flow-contract.ps1
create mode 100644 tests/g06-document-flow-contract.ps1
create mode 100644 tests/g06-g08-context-contract.ps1
create mode 100644 tests/g08-document-flow-contract.ps1
create mode 100644 tests/g09-document-flow-contract.ps1
create mode 100644 tests/g09-g10-business-state-contract.ps1
create mode 100644 tests/g10-document-flow-contract.ps1
create mode 100644 tests/g11-document-flow-contract.ps1
create mode 100644 tests/g11-settings-data-contract.ps1
create mode 100644 tests/g12-document-flow-contract.ps1
create mode 100644 tests/g12-generation-poem-capacity-contract.ps1
create mode 100644 tests/m01-service-entry-contract.ps1
create mode 100644 tests/n01-n02-message-flow-contract.ps1
create mode 100644 tests/nm-business-runtime-smoke.js
create mode 100644 tests/nm-page-business-contract.ps1
create mode 100644 tests/r-business-flow-contract.ps1
create mode 100644 tests/r-business-flow-runtime-smoke.js
create mode 100644 tests/r01-r02-person-flow-contract.ps1
create mode 100644 tests/shared-component-document-flow-contract.ps1
create mode 100644 tests/shared-interaction-accessibility-contract.ps1
create mode 100644 tests/t01-relation-layout-contract.ps1
create mode 100644 tests/t03-document-flow-contract.ps1
create mode 100644 tests/t03-t08-business-specialization-contract.ps1
create mode 100644 tests/t03-t08-business-specialization-runtime-smoke.js
create mode 100644 tests/t07-t08-document-flow-contract.ps1
diff --git a/.gitignore b/.gitignore
index 4328ac1..d42b7b8 100644
--- a/.gitignore
+++ b/.gitignore
@@ -51,3 +51,13 @@ nbdist/
robots.txt
sitemap.xml
+
+# Regenerable local output and audit caches
+**/node_modules/
+/tmp/
+/unpackage/
+/.vite/
+/design-pipeline/generated/
+/docs/design/screens/runtime/
+/docs/superpowers/specs/design/
+/tmp-g01-icon-audit.png
diff --git a/components/AppButton.vue b/components/AppButton.vue
index 89db12e..1164a35 100644
--- a/components/AppButton.vue
+++ b/components/AppButton.vue
@@ -1,10 +1,12 @@
-
@@ -12,7 +14,7 @@
{{ label }}
-
+
diff --git a/pages/family/f04-article-list.vue b/pages/family/f04-article-list.vue
index b3cb585..66f475a 100644
--- a/pages/family/f04-article-list.vue
+++ b/pages/family/f04-article-list.vue
@@ -1,5 +1,117 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ category }}
+
+
+
+
+
+ {{ article.category }}
+ {{ article.title }}
+ {{ article.summary }}
+ {{ article.author }}{{ article.updatedAt }}
+
+
+
+
+
+ {{ keyword || activeCategory !== '全部' ? '没有找到相关谱文' : '还没有谱文' }}
+ {{ keyword || activeCategory !== '全部' ? '换一个关键词或分类继续查找。' : '从第一篇家训、序言或家族往事开始记录。' }}
+
+
+
+
+
+ {{ listState === 'empty' ? '还没有谱文' : '谱文列表暂不可用' }}
+ {{ listState === 'empty' ? '记录第一篇家风家训或家族往事。' : '请稍后重新查看,已有谱文不会受到影响。' }}
+
+
+
+
+
+
+
+
diff --git a/pages/family/f05-article-detail.vue b/pages/family/f05-article-detail.vue
index fe083e9..5562b44 100644
--- a/pages/family/f05-article-detail.vue
+++ b/pages/family/f05-article-detail.vue
@@ -1,5 +1,113 @@
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+ {{ article.category }}
+ {{ article.title }}
+ {{ article.author }}{{ article.updatedAt }}
+
+ {{ paragraph }}
+
+
+
+
+
+
+
+
+
+ {{ stateCopy.title }}
+ {{ stateCopy.copy }}
+
+
+
+
+
+
+
+
+
diff --git a/pages/family/f06-article-editor.vue b/pages/family/f06-article-editor.vue
index d66b3c3..2fe48e0 100644
--- a/pages/family/f06-article-editor.vue
+++ b/pages/family/f06-article-editor.vue
@@ -47,7 +47,6 @@
class="editor-control"
:class="{ 'editor-control--error': fieldErrors.title }"
>
-
-
-