From edaf8896e18716f84cf6be23d7ccb2ee2d6a6b0e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E7=8E=8B=E5=BE=B7=E5=AE=87?= Date: Wed, 7 Oct 2026 14:16:15 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E5=B8=83=E5=B0=81=E9=9D=A2=E5=AF=BC?= =?UTF-8?q?=E5=85=A5=E5=99=A8=E6=94=B6=E6=95=9B=E4=B8=BA=E5=8D=95=E9=80=89?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 新增 COVER_IMPORTER_SETTINGS(maxItems: 1),FormCard 封面导入改用该设置,避免多选后静默丢弃其余图片 --- .../src/components/AssetImporter/settings.ts | 10 ++++++++++ .../export/tabs/taonier/FormCard.tsx | 7 +++++-- 2 files changed, 15 insertions(+), 2 deletions(-) diff --git a/apps/ai-game-creator-shell/src/components/AssetImporter/settings.ts b/apps/ai-game-creator-shell/src/components/AssetImporter/settings.ts index 14fe848a6..f06e5ddfe 100644 --- a/apps/ai-game-creator-shell/src/components/AssetImporter/settings.ts +++ b/apps/ai-game-creator-shell/src/components/AssetImporter/settings.ts @@ -127,6 +127,16 @@ export const DESIGN_IMAGE_IMPORTER_SETTINGS: AssetImporterSettings = export const SPRITE_IMPORTER_SETTINGS: AssetImporterSettings = imageImporterSettings(imageRequirements); +/** + * 单张封面:发布表单的封面槽只装一个路径,导入器同样收敛成单选;沿用多选的 + * `SPRITE_IMPORTER_SETTINGS` 时用户多选的其余图片会被静默丢弃。 + */ +export const COVER_IMPORTER_SETTINGS: AssetImporterSettings = + imageImporterSettings({ + maxItems: 1, + maxFileSizeBytes: 20 * 1024 * 1024, + }); + /** * 平台图标(小红书小工具等):本地项目与云端素材库两个来源都要能选,单张、png/jpg/jpeg、≤5 MiB。 * 上限与白名单跟宿主 `validate_icon` 对齐,免得选完了保存时才被宿主的硬校验挡回来。 diff --git a/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx b/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx index 82c400725..3ea025aa4 100644 --- a/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx +++ b/apps/ai-game-creator-shell/src/view/project-development/export/tabs/taonier/FormCard.tsx @@ -2,7 +2,10 @@ import { ImagePlus, Sparkles, Trash2 } from 'lucide-react'; import { type ReactNode, useState } from 'react'; import { AssetImporter } from '../../../../../components/AssetImporter'; -import { SPRITE_IMPORTER_SETTINGS } from '../../../../../components/AssetImporter/settings'; +import { + COVER_IMPORTER_SETTINGS, + SPRITE_IMPORTER_SETTINGS, +} from '../../../../../components/AssetImporter/settings'; import { MAX_AGC_GAME_SCREENSHOTS } from '../../../../../services/gameDistributionPublish'; import type { TaonierExportForm } from '../../generated/TaonierExportForm'; import { @@ -382,7 +385,7 @@ export function FormCard({ setCoverImporterOpen(false)} onImport={(assets) => { const picked = assets.at(-1);