From 79282bba64926ce2edfc789d7a224c9e3652a3ca Mon Sep 17 00:00:00 2001 From: ACAne0320 Date: Tue, 28 Apr 2026 15:35:22 +0800 Subject: [PATCH 1/2] fix(provider): persist model enable toggle Fixes AstrBotDevs/AstrBot#7863 --- .../provider/ProviderChatCompletionPanel.vue | 2 ++ .../provider/ProviderModelsPanel.vue | 10 +++++-- .../src/composables/useProviderSources.ts | 30 +++++++++++++++++++ 3 files changed, 40 insertions(+), 2 deletions(-) diff --git a/dashboard/src/components/provider/ProviderChatCompletionPanel.vue b/dashboard/src/components/provider/ProviderChatCompletionPanel.vue index 71d053f421..54c48cc634 100644 --- a/dashboard/src/components/provider/ProviderChatCompletionPanel.vue +++ b/dashboard/src/components/provider/ProviderChatCompletionPanel.vue @@ -89,6 +89,7 @@ :supports-tool-call="supportsToolCall" :supports-reasoning="supportsReasoning" :format-context-limit="formatContextLimit" + :saving-providers="savingProviderToggles" :testing-providers="testingProviders" :tm="tm" @fetch-models="fetchAvailableModels" @@ -209,6 +210,7 @@ const { availableModels, loadingModels, savingSource, + savingProviderToggles, testingProviders, isSourceModified, configSchema, diff --git a/dashboard/src/components/provider/ProviderModelsPanel.vue b/dashboard/src/components/provider/ProviderModelsPanel.vue index 3e787f059d..86a673b3f7 100644 --- a/dashboard/src/components/provider/ProviderModelsPanel.vue +++ b/dashboard/src/components/provider/ProviderModelsPanel.vue @@ -84,12 +84,13 @@
@@ -97,7 +98,7 @@ icon="mdi-connection" size="small" variant="text" - :disabled="!entry.provider.enable" + :disabled="!entry.provider.enable || isProviderSaving(entry.provider.id)" :loading="isProviderTesting(entry.provider.id)" @click.stop="emit('test-provider', entry.provider)" > @@ -240,6 +241,10 @@ const props = defineProps({ type: Array, default: () => [] }, + savingProviders: { + type: Array, + default: () => [] + }, tm: { type: Function, required: true @@ -288,6 +293,7 @@ const capabilityIcons = (metadata) => { } const isProviderTesting = (providerId) => props.testingProviders.includes(providerId) +const isProviderSaving = (providerId) => props.savingProviders.includes(providerId)