/** * 功能:静态检查三套管理后台的账户角色中文展示与无效头像摘要规则。 * 版本:v1.0.0 */ import { readFileSync } from 'node:fs'; import { dirname, resolve } from 'node:path'; import { fileURLToPath } from 'node:url'; const appRoot = resolve(dirname(fileURLToPath(import.meta.url)), '..'); const frontendRoot = resolve(appRoot, '..'); function source(path) { return readFileSync(resolve(frontendRoot, path), 'utf8'); } function expectIncludes(content, marker, message) { if (!content.includes(marker)) throw new Error(`账户角色检查失败:${message}`); } const platformResources = source('platform_admin/src/api/resources.ts'); const platformPage = source( 'platform_admin/src/views/resource/ResourceRecordPage.vue', ); const platformSummary = source( 'platform_admin/src/views/resource/ResourceAccountSummary.vue', ); expectIncludes( platformResources, "fixedAdminRole('气站管理员')", '平台总后台缺少气站管理员中文映射', ); expectIncludes( platformResources, "fixedAdminRole('配送点管理员')", '平台总后台缺少配送点管理员中文映射', ); expectIncludes( platformResources, "define('delivery_account', '配送点账户'", '配送点账户名称未统一', ); expectIncludes( platformPage, "mode.value !== 'create' || hasAvatarField.value", '无头像能力的新建账户页仍可能显示无效占位摘要', ); expectIncludes( platformSummary, 'v-if="avatarEnabled" class="avatar-column"', '无头像能力的账户仍可能显示装饰头像', ); for (const app of ['gas_admin', 'delivery_admin']) { const resources = source(`${app}/src/api/resources.ts`); const listPage = source(`${app}/src/views/shared/CrudListPage.vue`); expectIncludes( resources, "fixedAdminRole('配送点管理员')", `${app} 缺少配送点管理员中文映射`, ); expectIncludes( listPage, "'/gas_account': { admin: '气站管理员' }", `${app} 缺少气站管理员显示规则`, ); expectIncludes( listPage, "'/delivery_account': { admin: '配送点管理员' }", `${app} 缺少配送点管理员显示规则`, ); } console.log('账户角色检查通过:三套后台中文角色、未知角色和头像摘要规则均已覆盖。');