From d0485a552be91458ec22e13193c4d66000702dd7 Mon Sep 17 00:00:00 2001 From: chennan Date: Wed, 25 Mar 2026 16:42:56 +0800 Subject: [PATCH 1/3] feat(spx-gui): separate generation entry (#2963) * add separate ai generation entry * show asset library suggestions in AssetGenModal * details * more details * refactor: split AssetGenModal into dedicated SpriteGenModal and BackdropGenModal * fix: add ongoing asset generation repeatedly when collapse * revert removed TODO comment * optimize tip * fix: backdrop gen modal close flow --- spx-gui/src/apis/asset.ts | 4 +- .../asset/gen/backdrop/BackdropGen.vue | 129 +++++++++--- .../asset/gen/backdrop/BackdropGenModal.vue | 98 +++++++++ .../asset/gen/common/AssetSuggestions.vue | 83 ++++++++ .../asset/gen/common/use-asset-suggestions.ts | 63 ++++++ .../components/asset/gen/sprite/SpriteGen.vue | 15 +- .../asset/gen/sprite/SpriteGenModal.vue | 115 ++++++++-- .../gen/sprite/SpriteGenPhaseContent.vue | 4 +- .../gen/sprite/SpriteGenPhaseSettings.vue | 132 +++++++++--- .../asset/gen/sprite/SpriteSettingsInput.vue | 3 +- .../src/components/asset/gen/use-asset-gen.ts | 48 +++++ spx-gui/src/components/asset/index.ts | 55 +++-- .../asset/library/AssetLibraryModal.vue | 196 ++++++------------ .../editor/map-editor/SpritesPanel.vue | 37 +++- .../editor/panels/sprite/SpritesPanel.vue | 24 ++- .../components/editor/sprite/SpriteList.vue | 2 +- .../editor/stage/backdrop/BackdropsEditor.vue | 29 ++- spx-gui/src/models/spx/common/asset.ts | 24 +++ 18 files changed, 817 insertions(+), 244 deletions(-) create mode 100644 spx-gui/src/components/asset/gen/backdrop/BackdropGenModal.vue create mode 100644 spx-gui/src/components/asset/gen/common/AssetSuggestions.vue create mode 100644 spx-gui/src/components/asset/gen/common/use-asset-suggestions.ts create mode 100644 spx-gui/src/components/asset/gen/use-asset-gen.ts diff --git a/spx-gui/src/apis/asset.ts b/spx-gui/src/apis/asset.ts index 3d20e2d25c..c5fa240e15 100644 --- a/spx-gui/src/apis/asset.ts +++ b/spx-gui/src/apis/asset.ts @@ -93,8 +93,8 @@ export type ListAssetParams = PaginationParams & { sortOrder?: 'asc' | 'desc' } -export function listAsset(params?: ListAssetParams) { - return client.get('/assets/list', params) as Promise> +export function listAsset(params?: ListAssetParams, signal?: AbortSignal) { + return client.get('/assets/list', params, { signal }) as Promise> } export function getAsset(id: string) { diff --git a/spx-gui/src/components/asset/gen/backdrop/BackdropGen.vue b/spx-gui/src/components/asset/gen/backdrop/BackdropGen.vue index e392130ae1..545973c221 100644 --- a/spx-gui/src/components/asset/gen/backdrop/BackdropGen.vue +++ b/spx-gui/src/components/asset/gen/backdrop/BackdropGen.vue @@ -1,7 +1,9 @@