From eced3d1e6ed92648ce353e8dac38c31e04045e8e Mon Sep 17 00:00:00 2001 From: rain <982766701@qq.com> Date: Wed, 22 Jul 2026 07:41:27 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E6=88=90=E5=85=A8=E9=A1=B9=E7=9B=AE?= =?UTF-8?q?=E5=93=8D=E5=BA=94=E5=BC=8F=E5=AE=A1=E6=A0=B8=E4=B8=8E=E6=8D=A2?= =?UTF-8?q?=E6=9C=BA=E4=BA=A4=E6=8E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- App.vue | 1 + components/AppDialog.vue | 9 +- components/AppTabbar.vue | 9 +- components/GenealogyCard.vue | 15 +- components/PageHeader.vue | 1 + ...ject-wide-audit-and-expert-optimization.md | 252 +++++++++ ...whole-product-enrichment-implementation.md | 154 ++++++ ...6-07-21-whole-product-enrichment-design.md | 171 ++++++ docs/交接记录.md | 2 + docs/换机继续任务交接_2026-07-22.md | 304 +++++++++++ pages/auth/a04-register.vue | 7 +- pages/auth/a05-reset-password.vue | 7 +- pages/family/f02-publish-feed.vue | 2 +- pages/family/f06-article-editor.vue | 1 + pages/family/f09-media-upload.vue | 2 + pages/family/f10-video-list.vue | 17 +- pages/genealogy/g01-my-genealogies.vue | 27 +- pages/genealogy/g03-create-genealogy.vue | 42 +- pages/genealogy/g06-search-genealogies.vue | 23 +- pages/genealogy/g10-application-review.vue | 29 +- pages/genealogy/g11-genealogy-settings.vue | 1 - pages/genealogy/g12-generation-poems.vue | 1 - pages/profile/m04-change-password.vue | 13 +- pages/records/r01-people-list.vue | 27 +- pages/tree/t01-tree-overview.vue | 78 ++- pages/tree/t03-member-profile.vue | 2 +- pages/tree/t04-add-relative.vue | 2 +- pages/tree/t05-edit-member.vue | 2 +- pages/tree/t06-edit-relationship.vue | 2 +- styles/adaptive-frame-profiles.scss | 1 + styles/global.scss | 5 + tests/a04-registration-contract.ps1 | 3 +- tests/a05-reset-password-contract.ps1 | 3 +- ...app-dialog-responsive-content-contract.ps1 | 4 +- tests/data-driven-layout-contract.ps1 | 1 + tests/data-driven-layout-risk-allowlist.json | 507 +++++++++++++++++- tests/document-flow-position-allowlist.json | 320 +++++------ tests/document-flow-position-contract.ps1 | 2 +- tests/f01-document-flow-contract.ps1 | 15 +- tests/f01-module-baseline-contract.ps1 | 6 +- tests/f02-document-flow-contract.ps1 | 9 +- tests/f06-article-editor-contract.ps1 | 9 +- tests/f09-media-upload-contract.ps1 | 3 + tests/f10-video-status-contract.ps1 | 8 +- .../family-editors-document-flow-contract.ps1 | 7 +- tests/fixed-navigation-position-contract.ps1 | 3 + tests/foundation-asset-audit.ps1 | 3 +- tests/g-series-app-loading-contract.ps1 | 2 +- tests/g01-empty-state-contract.ps1 | 10 +- tests/g01-error-state-contract.ps1 | 4 +- tests/g03-create-flow-contract.ps1 | 4 +- tests/g03-document-flow-contract.ps1 | 2 +- tests/g05-all-states-visual-contract.ps1 | 4 +- tests/g05-document-flow-contract.ps1 | 4 +- tests/g06-document-flow-contract.ps1 | 6 +- tests/g08-document-flow-contract.ps1 | 4 +- tests/g09-document-flow-contract.ps1 | 2 +- tests/g09-g10-business-state-contract.ps1 | 14 +- tests/g11-document-flow-contract.ps1 | 10 +- tests/g12-document-flow-contract.ps1 | 10 +- tests/m01-module-baseline-contract.ps1 | 19 +- tests/module-page-visual-contract.ps1 | 2 +- tests/n01-module-baseline-contract.ps1 | 13 +- tests/native-route-query-contract.ps1 | 29 + tests/password-policy-contract.ps1 | 24 + tests/password-policy-runtime-smoke.js | 19 + tests/r01-document-flow-contract.ps1 | 18 +- tests/r01-module-baseline-contract.ps1 | 6 +- tests/r02-person-detail-contract.ps1 | 15 +- tests/root-pages-visual-contract.ps1 | 8 +- ...red-interaction-accessibility-contract.ps1 | 12 +- tests/t01-all-states-visual-contract.ps1 | 13 +- tests/t01-tree-state-contract.ps1 | 13 +- tests/t03-document-flow-contract.ps1 | 15 +- ...3-t08-business-specialization-contract.ps1 | 15 + tests/t07-module-baseline-contract.ps1 | 8 +- utils/validation.js | 13 + 77 files changed, 2052 insertions(+), 378 deletions(-) create mode 100644 docs/superpowers/plans/2026-07-21-project-wide-audit-and-expert-optimization.md create mode 100644 docs/superpowers/plans/2026-07-21-whole-product-enrichment-implementation.md create mode 100644 docs/superpowers/specs/2026-07-21-whole-product-enrichment-design.md create mode 100644 docs/换机继续任务交接_2026-07-22.md create mode 100644 tests/native-route-query-contract.ps1 create mode 100644 tests/password-policy-contract.ps1 create mode 100644 tests/password-policy-runtime-smoke.js create mode 100644 utils/validation.js diff --git a/App.vue b/App.vue index 91156d5..febd78f 100644 --- a/App.vue +++ b/App.vue @@ -7,5 +7,6 @@ export default { diff --git a/components/AppDialog.vue b/components/AppDialog.vue index be8fa61..d45649c 100644 --- a/components/AppDialog.vue +++ b/components/AppDialog.vue @@ -93,18 +93,23 @@ const cancel = () => { align-items: center; justify-content: center; box-sizing: border-box; - padding: 40rpx; + padding: calc(40rpx + env(safe-area-inset-top)) 40rpx calc(40rpx + env(safe-area-inset-bottom)); background: rgba(35, 18, 10, 0.62); } .app-dialog { + display: flex; width: 650rpx; max-width: 100%; + max-height: calc(var(--app-viewport-height, 100vh) - 80rpx - env(safe-area-inset-top) - env(safe-area-inset-bottom)); + flex-direction: column; + overflow: hidden; @include adaptive.adaptive-auth-dialog; } .app-dialog__content { z-index: 1; display: flex; - max-height: calc(var(--app-viewport-height, 100vh) - 160rpx); + min-height: 0; + flex: 1; flex-direction: column; align-items: center; box-sizing: border-box; diff --git a/components/AppTabbar.vue b/components/AppTabbar.vue index 639a1a9..5cd1440 100644 --- a/components/AppTabbar.vue +++ b/components/AppTabbar.vue @@ -1,10 +1,14 @@