From 98b05b7e89d3cefefe6494abd5f93578cc48b5ac Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=AF=97=E6=B5=93?= Date: Tue, 28 Apr 2026 23:55:46 +0800 Subject: [PATCH] fix(provider): persist model enable toggle (#7865) * fix(provider): persist model enable toggle Fixes AstrBotDevs/AstrBot#7863 * fix(provider): wait for model toggle refresh --- .../provider/ProviderChatCompletionPanel.vue | 2 ++ .../provider/ProviderModelsPanel.vue | 10 ++++-- .../src/composables/useProviderSources.ts | 32 ++++++++++++++++++- 3 files changed, 41 insertions(+), 3 deletions(-) diff --git a/dashboard/src/components/provider/ProviderChatCompletionPanel.vue b/dashboard/src/components/provider/ProviderChatCompletionPanel.vue index 71d053f42..54c48cc63 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 3e787f059..86a673b3f 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)