This commit is contained in:
rain
2026-07-24 18:03:02 +08:00
parent c7f278fe79
commit ec8486b035
86 changed files with 7943 additions and 1841 deletions
+39
View File
@@ -0,0 +1,39 @@
$ErrorActionPreference = 'Stop'
$root = Split-Path -Parent $PSScriptRoot
function Read-Utf8([string]$relativePath) {
Get-Content -Raw -Encoding UTF8 (Join-Path $root $relativePath)
}
function Assert-Contains([string]$text, [string]$token, [string]$message) {
if (-not $text.Contains($token)) { throw $message }
}
$f02 = Read-Utf8 'pages/family/f02-publish-feed.vue'
foreach ($token in @('form.feedType', 'mediaReceipts', 'mediaOssIds', 'form.sortOrder', 'pickAndUploadImage', 'class="required-mark"')) {
Assert-Contains $f02 $token "F02 is missing full feed field owner: $token"
}
$f06 = Read-Utf8 'pages/family/f06-article-editor.vue'
foreach ($token in @('form.articleSummary', 'coverOssId', 'form.authorName', 'form.sortOrder', 'pickAndUploadImage', 'toConsumerOssId', 'class="required-mark"')) {
Assert-Contains $f06 $token "F06 is missing full article field owner: $token"
}
if ($f06 -match 'v-model="(?:form\.)?coverOssId"') { throw 'F06 must not expose a raw cover OSS ID input' }
$f07 = Read-Utf8 'pages/family/f07-album-list.vue'
foreach ($token in @('form.albumDesc', 'coverOssId', 'form.sortOrder', 'pickAndUploadImage', 'toConsumerOssId', 'class="required-mark"')) {
Assert-Contains $f07 $token "F07 is missing full album field owner: $token"
}
if ($f07 -match 'v-model="(?:form\.)?coverOssId"') { throw 'F07 must not expose a raw cover OSS ID input' }
foreach ($page in @($f02, $f06, $f07)) {
if ($page -match 'v-model="form\.(status|categoryId)"') { throw 'Family create forms must not ask users to enter status or category codes' }
if ($page -match 'placeholder="[^"]*(分类 ID|状态码|例如:0)') { throw 'Family create forms must not expose raw code placeholders' }
}
$fullWidthOptionalLabel = [string]([char]0xff08) + [char]0x9009 + [char]0x586b + [char]0xff09
$asciiOptionalLabel = '(' + [char]0x9009 + [char]0x586b + ')'
foreach ($page in @($f02, $f06, $f07)) {
if ($page.Contains($fullWidthOptionalLabel) -or $page.Contains($asciiOptionalLabel)) { throw 'Family create forms must not label optional fields as optional' }
}
Write-Output 'FAMILY-CREATE-PAGES-CONTRACT PASS'