From 54b0af0a08e9d2cbd253fd0293359e006dcb3219 Mon Sep 17 00:00:00 2001 From: RainbowBird Date: Fri, 8 May 2026 21:34:11 +0800 Subject: [PATCH] chore(stage-pages): resolve type --- packages/i18n/src/locales/ru/settings.yaml | 4 +-- .../i18n/src/locales/zh-Hans/settings.yaml | 2 +- .../providers/edit/[providerId]/index.vue | 25 +++++++++++++++---- 3 files changed, 23 insertions(+), 8 deletions(-) diff --git a/packages/i18n/src/locales/ru/settings.yaml b/packages/i18n/src/locales/ru/settings.yaml index 5dd662ff6..25d381a56 100644 --- a/packages/i18n/src/locales/ru/settings.yaml +++ b/packages/i18n/src/locales/ru/settings.yaml @@ -685,7 +685,7 @@ pages: empty: Здесь пока ничего нет. Добавьте одно ниже! add: title: Новый - description: "Заполните новый сервер, затем нажмите кнопку «Сохранить и перезапустить» — он будет перемещен в «Конфигурация» выше." + description: 'Заполните новый сервер, затем нажмите кнопку «Сохранить и перезапустить» — он будет перемещен в «Конфигурация» выше.' pending-badge: Не сохранено status: unknown: Не загружен @@ -902,7 +902,7 @@ pages: description: >- Провайдеры транскрипции (speech-to-text): Whisper.cpp, OpenAI, Azure Speech artistry: - title: Artistry + title: Artistry description: Поставщики моделей генерации и создания изображений, например ComfyUI, Replicate. items: comfyui: diff --git a/packages/i18n/src/locales/zh-Hans/settings.yaml b/packages/i18n/src/locales/zh-Hans/settings.yaml index b0d3813b2..a3b307142 100644 --- a/packages/i18n/src/locales/zh-Hans/settings.yaml +++ b/packages/i18n/src/locales/zh-Hans/settings.yaml @@ -685,7 +685,7 @@ pages: empty: 这里什么都还没有哦,在下面添加一个! add: title: 新建 - description: "填写新的服务器配置,然后点击「保存并重启」,完成后将会更新至上方的「已配置」" + description: '填写新的服务器配置,然后点击「保存并重启」,完成后将会更新至上方的「已配置」' pending-badge: 未保存 status: unknown: 未加载 diff --git a/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue b/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue index 85764526e..50ae27cd5 100644 --- a/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue +++ b/packages/stage-pages/src/pages/v2/settings/providers/edit/[providerId]/index.vue @@ -159,6 +159,16 @@ function setFieldValue(key: string, value: unknown) { providerConfigEdit.value.config[key] = value } +// NOTICE: Bridges the polymorphic `Record` config store and typed +// string inputs (ProviderApiKeyInput / ProviderBaseUrlInput / ProviderAccountIdInput / +// FieldCombobox). The schema layer (createProviderConfig) already guarantees these +// fields are strings; this is the single boundary point where we coerce. Removable +// once `InferenceServiceProvider.config` is narrowed per-provider via the schema. +function getStringField(key: string): string { + const value = providerConfigEdit.value?.config?.[key] + return typeof value === 'string' ? value : '' +} + const headerRows = ref>([{ key: '', value: '' }]) const isSyncingHeaders = ref(false) @@ -401,28 +411,31 @@ function handleDeleteProvider() {