验收完成40%
This commit is contained in:
@@ -1,4 +1,5 @@
|
||||
$ErrorActionPreference = 'Stop'
|
||||
Add-Type -AssemblyName System.Drawing
|
||||
|
||||
$root = Split-Path -Parent $PSScriptRoot
|
||||
$requiredAssets = @(
|
||||
@@ -25,8 +26,7 @@ $requiredAssets = @(
|
||||
'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/opaque/genealogy-page-background-long.png',
|
||||
'static/assets/modules/genealogy/transparent/section-divider.png'
|
||||
)
|
||||
|
||||
@@ -76,12 +76,25 @@ foreach ($token in @('current-summary', 'current-meta-item', 'current-seal-frame
|
||||
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 @('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 -notmatch '<GenealogyPageBackground\s*/>') { throw 'G-01 does not consume the shared genealogy background component.' }
|
||||
if ($page -notmatch 'section-divider\.png') { throw 'G-01 does not consume the approved section divider asset.' }
|
||||
foreach ($legacyBackground in @('page-paper.jpg', 'footer-mountain-bamboo.png', 'page-paper-texture', 'page-footer-landscape')) {
|
||||
if ($page -match [regex]::Escape($legacyBackground)) { throw "G-01 must replace the legacy layered background: $legacyBackground" }
|
||||
}
|
||||
if ($page -match 'footer-mountain-bamboo-v2\.png') { throw 'G-01 still uses the solid mountain footer asset instead of the translucent watercolor landscape.' }
|
||||
if ($page -notmatch 'top:\s*calc\(124rpx\s*\+\s*var\(--status-bar-height,\s*0px\)\)') { throw 'G-01 paper texture does not begin below the system-safe root header.' }
|
||||
if ($page -notmatch '(?s)\.page-footer-landscape\s*\{.*?opacity:\s*0\.5') { throw 'G-01 footer landscape does not use the approved expanded watercolor contrast.' }
|
||||
$backgroundComponent = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'components/GenealogyPageBackground.vue')
|
||||
if ($backgroundComponent -notmatch 'mode="widthFix"') { throw 'G shared background must preserve the complete C artwork without horizontal cropping.' }
|
||||
if ($backgroundComponent -match 'aspectFill|scaleToFill') { throw 'G shared background must not crop or stretch the selected C artwork.' }
|
||||
if ($backgroundComponent -notmatch '(?s)\.genealogy-page-background\s*\{.*?position:\s*fixed;.*?inset:\s*0;.*?background:\s*#e7ded1;') { throw 'G shared background must extend the selected C artwork with the approved paper color.' }
|
||||
$backgroundPath = Join-Path $root 'static/assets/modules/genealogy/opaque/genealogy-page-background-long.png'
|
||||
$backgroundImage = [System.Drawing.Image]::FromFile($backgroundPath)
|
||||
try {
|
||||
if ($backgroundImage.Width -ne 1440 -or $backgroundImage.Height -ne 3600) { throw "G-01 approved long runtime background must be 1440x3600, got $($backgroundImage.Width)x$($backgroundImage.Height)." }
|
||||
}
|
||||
finally {
|
||||
$backgroundImage.Dispose()
|
||||
}
|
||||
$backgroundHash = (Get-FileHash -LiteralPath $backgroundPath -Algorithm SHA256).Hash.ToLowerInvariant()
|
||||
if ($backgroundHash -ne '9aa9ebdd231eddbc151e238ba340a00f8603f23143117ad8c93009947dcca2e2') { throw 'G-01 runtime background must be the user-selected flagship long output.' }
|
||||
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')
|
||||
@@ -118,6 +131,10 @@ if ($card -notmatch '(?s)\.card-meta\s*\{.*?font-size:\s*26rpx') { throw 'G-01 l
|
||||
if ($card -notmatch '(?s)\.card-updated\s*\{.*?font-size:\s*22rpx') { throw 'G-01 list update date is below the approved readable size.' }
|
||||
if ($page -notmatch '(?s)\.create-action\s*>\s*text\s*\{.*?white-space:\s*nowrap') { throw 'G-01 create action text can wrap onto multiple lines.' }
|
||||
if ($page -notmatch '(?s)\.application-record\s*\+\s*\.application-record\s*\{[^}]*margin-top:\s*12rpx') { throw 'G-01 adjacent application cards must keep the approved 12rpx separation.' }
|
||||
if ($page -notmatch '(?s)\.application-record__copy\s*\{[^}]*color:\s*#62584c;[^}]*font-size:\s*28rpx;[^}]*font-weight:\s*500;[^}]*line-height:\s*1\.4;') { throw 'G-01 application descriptions do not use the approved readable style.' }
|
||||
if ($page -notmatch '(?s)\.application-record__status\s*\{[^}]*color:\s*#7f4f16;[^}]*font-size:\s*27rpx;[^}]*font-weight:\s*600;') { throw 'G-01 application statuses do not use the approved readable base style.' }
|
||||
if ($page -notmatch '(?s)\.application-record__status--rejected\s*\{[^}]*color:\s*#a7160c;') { throw 'G-01 rejected status must preserve the approved semantic red.' }
|
||||
if ($page -notmatch '(?s)\.application-record__status--muted\s*\{[^}]*color:\s*#62584c;') { throw 'G-01 muted status does not use the approved readable color.' }
|
||||
|
||||
$manifest = Get-Content -Raw -Encoding UTF8 (Join-Path $root 'manifest.json')
|
||||
if ($manifest -notmatch '"statusbar"\s*:\s*\{\s*"immersed"\s*:\s*"supportedDevice"\s*,\s*"style"\s*:\s*"light"\s*,\s*"background"\s*:\s*"#B52E22"') { throw 'Android status bar is not configured for the cinnabar root header.' }
|
||||
|
||||
Reference in New Issue
Block a user