From f7f0377bbdec4f88208937e830a280a2ff4e2911 Mon Sep 17 00:00:00 2001 From: tbphp Date: Sat, 1 Aug 2026 21:25:55 +0800 Subject: [PATCH] =?UTF-8?q?fix(import):=20=E6=81=A2=E5=A4=8D=E5=9C=B0?= =?UTF-8?q?=E5=9D=80=E5=86=B2=E7=AA=81=E6=93=8D=E4=BD=9C=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web/src/features/import/NewGroupImport.vue | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/web/src/features/import/NewGroupImport.vue b/web/src/features/import/NewGroupImport.vue index 9d81da15..0e46dd8f 100644 --- a/web/src/features/import/NewGroupImport.vue +++ b/web/src/features/import/NewGroupImport.vue @@ -74,6 +74,14 @@ function cloneDraft(source: ImportDraft): ImportDraft { } } +function upstreamURLConflict(cause: unknown): UpstreamUrlConflictData | null { + return cause instanceof ApiError && + cause.code === 'UPSTREAM_URL_CONFLICT' && + isUpstreamUrlConflictData(cause.data) + ? cause.data + : null +} + const defaultDraft = freshDraft() const operationDraft = createOperation.operation.value?.payload.draft ?? @@ -90,7 +98,9 @@ const discoveryLoading = ref(false) const discoveryDrawerOpen = ref(false) const errorKey = ref('') const submissionError = ref() -const conflict = ref(null) +const conflict = ref( + upstreamURLConflict(createOperation.lastError.value), +) const serverModelConflicts = ref([]) const completed = ref(false) if (createOperation.outcome.value?.kind === 'confirmed') createOperation.reset() @@ -418,12 +428,9 @@ async function executeCreateOperation(): Promise { } if (!componentActive || outcome.kind !== 'failed' || outcome.reason !== 'rejected') return const cause = createOperation.lastError.value - if ( - cause instanceof ApiError && - cause.code === 'UPSTREAM_URL_CONFLICT' && - isUpstreamUrlConflictData(cause.data) - ) { - conflict.value = cause.data + const upstreamConflict = upstreamURLConflict(cause) + if (upstreamConflict) { + conflict.value = upstreamConflict return } if (cause instanceof ApiError && cause.code === 'MODEL_NAME_CONFLICT') {