From 49c683de62a28bc5216eea87c321744817ff7cf7 Mon Sep 17 00:00:00 2001 From: erio Date: Tue, 7 Apr 2026 02:26:35 +0800 Subject: [PATCH] =?UTF-8?q?fix:=20convert=20payment=5Fenabled=5Ftypes=20ar?= =?UTF-8?q?ray=E2=86=92string=20before=20Object.assign=20to=20prevent=20.s?= =?UTF-8?q?plit()=20crash?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- backend/cmd/server/VERSION | 2 +- frontend/src/views/admin/SettingsView.vue | 7 +++---- 2 files changed, 4 insertions(+), 5 deletions(-) diff --git a/backend/cmd/server/VERSION b/backend/cmd/server/VERSION index 4be36162e4..8815f68da3 100644 --- a/backend/cmd/server/VERSION +++ b/backend/cmd/server/VERSION @@ -1 +1 @@ -0.1.108.53 +0.1.108.54 diff --git a/frontend/src/views/admin/SettingsView.vue b/frontend/src/views/admin/SettingsView.vue index 3d0b529254..c47439d596 100644 --- a/frontend/src/views/admin/SettingsView.vue +++ b/frontend/src/views/admin/SettingsView.vue @@ -2338,6 +2338,9 @@ async function loadSettings() { loadFailed.value = false try { const settings = await adminAPI.settings.getSettings() + // Convert array fields before Object.assign to avoid reactive .split() crash + ;(settings as any).payment_enabled_types = (settings.payment_enabled_types || []).join(',') + ;(settings as any).payment_load_balance_strategy = settings.payment_load_balance_strategy || 'round-robin' Object.assign(form, settings) form.backend_mode_enabled = settings.backend_mode_enabled form.default_subscriptions = Array.isArray(settings.default_subscriptions) @@ -2356,10 +2359,6 @@ async function loadSettings() { smtpPasswordManuallyEdited.value = false form.turnstile_secret_key = '' form.linuxdo_connect_client_secret = '' - - // Payment config is now part of settings response — just fix array→string - form.payment_enabled_types = (settings.payment_enabled_types || []).join(',') - form.payment_load_balance_strategy = settings.payment_load_balance_strategy || 'round-robin' } catch (error: any) { loadFailed.value = true appStore.showError(