修改未完成

This commit is contained in:
rain
2026-07-13 17:31:05 +08:00
parent 965fff1621
commit 355f47976a
95 changed files with 1112 additions and 721 deletions
+38 -39
View File
@@ -2,33 +2,32 @@ $ErrorActionPreference = 'Stop'
$root = Split-Path -Parent $PSScriptRoot
$requiredAssets = @(
'static/assets/icons/brand/jiapu-seal-logo.png',
'static/assets/icons/brand/jiapu-seal-logo-header.png',
'static/assets/icons/common/notice-v3.png',
'static/assets/icons/common/chevron-right-v2.png',
'static/assets/icons/common/location-v1.png',
'static/assets/icons/common/member-meta-v1.png',
'static/assets/icons/common/admin-v1.png',
'static/assets/icons/genealogy/tree-v2.png',
'static/assets/icons/genealogy/members-v2.png',
'static/assets/icons/genealogy/generation-poem-v2.png',
'static/assets/icons/genealogy/application-v2.png',
'static/assets/icons/genealogy/seal-current-frame-v1.png',
'static/assets/icons/genealogy/seal-row-frame-v1.png',
'static/assets/icons/action/add-v2.png',
'static/assets/icons/action/create-cloud-v2.png',
'static/assets/icons/tab/genealogy-v4.png',
'static/assets/icons/tab/genealogy-active-v4.png',
'static/assets/icons/tab/family-v4.png',
'static/assets/icons/tab/family-active-v4.png',
'static/assets/icons/tab/profile-v4.png',
'static/assets/icons/tab/profile-active-v4.png',
'static/assets/backgrounds/genealogy-current-slip-frame.png',
'static/assets/backgrounds/genealogy-list-slip-frame.png',
'static/assets/backgrounds/header-cinnabar-texture-v2.jpg',
'static/assets/backgrounds/paper-rice-texture-v2.jpg',
'static/assets/backgrounds/footer-mountain-bamboo.png',
'static/assets/backgrounds/genealogy-section-divider-v2.png'
'static/assets/foundation/transparent/brand-seal.png',
'static/assets/foundation/transparent/notice.png',
'static/assets/foundation/transparent/chevron-right.png',
'static/assets/foundation/transparent/meta-location.png',
'static/assets/foundation/transparent/meta-member.png',
'static/assets/foundation/transparent/meta-admin.png',
'static/assets/modules/genealogy/transparent/shortcut-tree.png',
'static/assets/modules/genealogy/transparent/shortcut-members.png',
'static/assets/modules/genealogy/transparent/shortcut-generation-poem.png',
'static/assets/modules/genealogy/transparent/shortcut-application.png',
'static/assets/modules/genealogy/transparent/current-seal-frame.png',
'static/assets/modules/genealogy/transparent/row-seal-frame.png',
'static/assets/modules/genealogy/transparent/add.png',
'static/assets/modules/genealogy/transparent/create-cloud.png',
'static/assets/foundation/transparent/tab-genealogy.png',
'static/assets/foundation/transparent/tab-genealogy-active.png',
'static/assets/foundation/transparent/tab-family.png',
'static/assets/foundation/transparent/tab-family-active.png',
'static/assets/foundation/transparent/tab-profile.png',
'static/assets/foundation/transparent/tab-profile-active.png',
'static/assets/modules/genealogy/transparent/current-slip-frame.png',
'static/assets/modules/genealogy/transparent/list-slip-frame.png',
'static/assets/foundation/opaque/root-header-cinnabar.jpg',
'static/assets/foundation/opaque/page-paper.jpg',
'static/assets/foundation/transparent/footer-mountain-bamboo.png',
'static/assets/modules/genealogy/transparent/section-divider.png'
)
foreach ($asset in $requiredAssets) {
@@ -40,14 +39,14 @@ foreach ($asset in $requiredAssets) {
$header = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'components/PageHeader.vue')
$tabbar = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'components/AppTabbar.vue')
if ($header -notmatch 'jiapu-seal-logo-header\.png') { throw 'Header does not use the approved tight brand PNG.' }
if ($header -notmatch 'jiapu-seal-logo-header\.png') { throw 'Header does not use the tight header Logo asset.' }
if ($header -notmatch 'notice-v3\.png') { throw 'Header does not use the approved notice PNG.' }
if ($header -notmatch 'brand-seal\.png') { throw 'Header does not use the approved tight brand PNG.' }
if ($header -notmatch 'brand-seal\.png') { throw 'Header does not use the tight header Logo asset.' }
if ($header -notmatch 'notice\.png') { throw 'Header does not use the approved notice PNG.' }
if ($header -notmatch 'unreadCount\s*>\s*0') { throw 'Header badge is not conditional on unread count.' }
if ($header -notmatch 'class="header-hall"') { throw 'Header does not isolate the hall line-art as a low-contrast background layer.' }
if ($header -match 'background-image: url') { throw 'Header still applies hall line-art directly to the red header surface.' }
if ($header -notmatch 'opacity:\s*\.29') { throw 'Header hall line-art is not visible enough for the approved eave layer.' }
if ($header -notmatch 'header-cinnabar-texture-v2\.jpg') { throw 'Header does not use the approved cinnabar texture asset.' }
if ($header -notmatch 'root-header-cinnabar\.jpg') { throw 'Header does not use the approved cinnabar texture asset.' }
if ($header -notmatch 'height:\s*calc\(124rpx\s*\+\s*var\(--status-bar-height,\s*0px\)\)') { throw 'Header does not preserve the approved visual height above the system status bar.' }
if ($header -notmatch 'padding-top:\s*var\(--status-bar-height,\s*0px\)') { throw 'Header does not reserve the real system status-bar height.' }
if ($tabbar -match '/static/icons/tab-') { throw 'Tabbar still references rejected legacy tab assets.' }
@@ -55,20 +54,20 @@ if ($tabbar -notmatch 'safe-area-inset-bottom') { throw 'Tabbar has no Android s
if ($tabbar -notmatch 'font-size:\s*30rpx') { throw 'Tabbar label size does not match the approved visual weight.' }
if ($tabbar -notmatch 'width:\s*64rpx') { throw 'Tabbar icon size does not match the approved visual weight.' }
$page = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'pages/genealogy/index.vue')
$page = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'pages/genealogy/g01-my-genealogies.vue')
if ($page -match "from '@/utils/api\.js'") { throw 'G-01 visual phase must not call the remote API.' }
foreach ($state in @('isLoading', 'hasGenealogies', 'createdGenealogies', 'joinedGenealogies')) {
if ($page -notmatch $state) { throw "G-01 is missing presentation state: $state" }
}
foreach ($asset in @('tree-v2.png', 'members-v2.png', 'generation-poem-v2.png', 'application-v2.png', 'add-v2.png')) {
foreach ($asset in @('shortcut-tree.png', 'shortcut-members.png', 'shortcut-generation-poem.png', 'shortcut-application.png', 'add.png')) {
if ($page -notmatch [regex]::Escape($asset)) { throw "G-01 does not consume $asset" }
}
if ($page -notmatch 'genealogy-current-slip-frame\.png') { throw 'G-01 does not use the approved current genealogy frame asset.' }
foreach ($token in @('current-summary', 'current-meta-item', 'current-seal-frame', 'location-v1.png', 'member-meta-v1.png', 'admin-v1.png', 'create-cloud-v2.png')) {
if ($page -notmatch 'current-slip-frame\.png') { throw 'G-01 does not use the approved current genealogy frame asset.' }
foreach ($token in @('current-summary', 'current-meta-item', 'current-seal-frame', 'meta-location.png', 'meta-member.png', 'meta-admin.png', 'create-cloud.png')) {
if ($page -notmatch $token) { throw "G-01 current panel is missing $token" }
}
if ($page -notmatch 'width:\s*82rpx') { throw 'G-01 shortcut icons remain below the reference visual size.' }
foreach ($asset in @('paper-rice-texture-v2.jpg', 'footer-mountain-bamboo.png', 'genealogy-section-divider-v2.png')) {
foreach ($asset in @('page-paper.jpg', 'footer-mountain-bamboo.png', 'section-divider.png')) {
if ($page -notmatch [regex]::Escape($asset)) { throw "G-01 does not consume the approved background asset: $asset" }
}
if ($page -match 'footer-mountain-bamboo-v2\.png') { throw 'G-01 still uses the solid mountain footer asset instead of the translucent watercolor landscape.' }
@@ -77,13 +76,13 @@ if ($page -notmatch '(?s)\.page-footer-landscape\s*\{.*?opacity:\s*0\.5') { thro
if ($page -match 'background:\s*rgba\(255,\s*249,\s*238,\s*\.88\)') { throw 'G-01 current genealogy card retains a rectangular pale backing behind its transparent corners.' }
$card = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'components/GenealogyCard.vue')
if ($card -notmatch 'genealogy-list-slip-frame\.png') { throw 'G-01 list rows do not use the approved slip frame asset.' }
if ($card -notmatch 'list-slip-frame\.png') { throw 'G-01 list rows do not use the approved slip frame asset.' }
if ($card -match 'background:\s*rgba\(255,\s*249,\s*238,\s*\.(9|96)\)') { throw 'G-01 list cards retain a rectangular pale backing behind their transparent corners.' }
foreach ($token in @('seal-row-frame-v1.png', 'card-main', 'card-title-row', 'card-detail-row', 'card-updated')) {
foreach ($token in @('row-seal-frame.png', 'card-main', 'card-title-row', 'card-detail-row', 'card-updated')) {
if ($card -notmatch $token) { throw "G-01 list card is missing $token" }
}
if ($card -match 'background:\s*#b93b2e') { throw 'G-01 list seal is still a plain CSS red block.' }
foreach ($asset in @('location-v1.png', 'member-meta-v1.png', 'admin-v1.png', 'seal-current-frame-v1.png', 'seal-row-frame-v1.png', 'create-cloud-v2.png')) {
foreach ($asset in @('meta-location.png', 'meta-member.png', 'meta-admin.png', 'current-seal-frame.png', 'row-seal-frame.png', 'create-cloud.png')) {
if ($page -notmatch [regex]::Escape($asset) -and $card -notmatch [regex]::Escape($asset)) {
throw "G-01 does not consume $asset"
}