完成50%

This commit is contained in:
2026-07-23 08:23:59 +08:00
parent 9b0ad62df4
commit f1edc6b533
218 changed files with 24318 additions and 5514 deletions
+13 -6
View File
@@ -27,11 +27,9 @@ $pagePath = Join-Path $root 'pages/tree/t01-tree-overview.vue'
$t02Path = Join-Path $root 'pages/tree/t02-tree-states.vue'
$page = Get-Content -LiteralPath $pagePath -Raw -Encoding utf8
$pages = Get-Content -LiteralPath (Join-Path $root 'pages.json') -Raw -Encoding utf8
$catalog = Get-Content -LiteralPath (Join-Path $root 'data/page-catalog.js') -Raw -Encoding utf8
if (Test-Path -LiteralPath $t02Path) { throw 'T02 duplicate route file must be removed' }
if ($pages -match 'pages/tree/t02-tree-states') { throw 'T02 duplicate route must be removed from pages.json' }
if ($catalog -match 't02:') { throw 'T02 duplicate catalog entry must be removed' }
if ($page -match "@/utils/api\.js|\bappApi\b") { throw 'T01 design phase must not connect the API layer' }
foreach ($required in @(
@@ -56,11 +54,14 @@ foreach ($required in @(
't01-member-node-selected.png',
't01-state-panel.png',
't01-member-drawer.png',
'/pages/tree/t03-member-profile',
'/pages/tree/t04-add-relative',
'/pages/tree/t06-edit-relationship',
'/pages/tree/t07-member-directory',
'openPage("T03"',
'openPage("T04"',
'openPage("T06"',
'openPage("T07"',
'query.genealogyId',
'getGenealogyFixtureAccess',
'genealogyContext.isCurrentGenealogyInvalidated()',
'["owner", "member"].includes(access.accessRole)',
':id="`tree-member-${member.id}`"',
':scroll-left="treeState === ''tree'' ? treeScrollLeft : 0"',
'@scroll="handleTreeScroll"',
@@ -72,6 +73,12 @@ foreach ($required in @(
'class="tree-recenter"'
)) { Assert-Contains $page $required "Missing T01 contract: $required" }
$invalidatedGuardIndex = $page.IndexOf('genealogyContext.isCurrentGenealogyInvalidated()')
$contextWriteIndex = $page.IndexOf('genealogyContext.setCurrentGenealogyId(genealogyId.value)')
if ($invalidatedGuardIndex -lt 0 -or $contextWriteIndex -le $invalidatedGuardIndex) {
throw 'T01 must reject an invalidated genealogy before any route can rewrite the current context'
}
foreach ($forbidden in @(
'g03-create-flow-panel.png',
'g06-search-input-wide.png',