chore(stage-pages): resolve type
This commit is contained in:
@@ -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:
|
||||
|
||||
@@ -685,7 +685,7 @@ pages:
|
||||
empty: 这里什么都还没有哦,在下面添加一个!
|
||||
add:
|
||||
title: 新建
|
||||
description: "填写新的服务器配置,然后点击「保存并重启」,完成后将会更新至上方的「已配置」"
|
||||
description: '填写新的服务器配置,然后点击「保存并重启」,完成后将会更新至上方的「已配置」'
|
||||
pending-badge: 未保存
|
||||
status:
|
||||
unknown: 未加载
|
||||
|
||||
@@ -159,6 +159,16 @@ function setFieldValue(key: string, value: unknown) {
|
||||
providerConfigEdit.value.config[key] = value
|
||||
}
|
||||
|
||||
// NOTICE: Bridges the polymorphic `Record<string, unknown>` 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<Array<{ key: string, value: string }>>([{ key: '', value: '' }])
|
||||
const isSyncingHeaders = ref(false)
|
||||
|
||||
@@ -401,28 +411,31 @@ function handleDeleteProvider() {
|
||||
<div v-for="field in basicFields" :key="field.key">
|
||||
<ProviderApiKeyInput
|
||||
v-if="field.key === 'apiKey'"
|
||||
v-model="providerConfigEdit.config[field.key]"
|
||||
:model-value="getStringField(field.key)"
|
||||
:provider-name="providerDefinition?.nameLocalize({ t }) || providerDefinition?.name || ''"
|
||||
:label="field.label"
|
||||
:description="field.description"
|
||||
:placeholder="field.placeholder"
|
||||
:required="field.required"
|
||||
@update:model-value="setFieldValue(field.key, $event)"
|
||||
/>
|
||||
<ProviderBaseUrlInput
|
||||
v-else-if="field.key === 'baseUrl'"
|
||||
v-model="providerConfigEdit.config[field.key]"
|
||||
:model-value="getStringField(field.key)"
|
||||
:label="field.label"
|
||||
:description="field.description"
|
||||
:placeholder="field.placeholder"
|
||||
:required="field.required"
|
||||
@update:model-value="setFieldValue(field.key, $event)"
|
||||
/>
|
||||
<ProviderAccountIdInput
|
||||
v-else-if="field.key === 'accountId'"
|
||||
v-model="providerConfigEdit.config[field.key]"
|
||||
:model-value="getStringField(field.key)"
|
||||
:label="field.label"
|
||||
:description="field.description"
|
||||
:placeholder="field.placeholder"
|
||||
:required="field.required"
|
||||
@update:model-value="setFieldValue(field.key, $event)"
|
||||
/>
|
||||
<FieldInput
|
||||
v-else
|
||||
@@ -456,19 +469,21 @@ function handleDeleteProvider() {
|
||||
/>
|
||||
<ProviderBaseUrlInput
|
||||
v-else-if="field.key === 'baseUrl'"
|
||||
v-model="providerConfigEdit.config[field.key]"
|
||||
:model-value="getStringField(field.key)"
|
||||
:label="field.label"
|
||||
:description="field.description"
|
||||
:placeholder="field.placeholder"
|
||||
:required="field.required"
|
||||
@update:model-value="setFieldValue(field.key, $event)"
|
||||
/>
|
||||
<FieldCombobox
|
||||
v-else-if="field.type === 'select'"
|
||||
v-model="providerConfigEdit.config[field.key]"
|
||||
:model-value="getStringField(field.key)"
|
||||
:label="field.label"
|
||||
:description="field.description"
|
||||
:placeholder="field.placeholder"
|
||||
:options="field.options"
|
||||
@update:model-value="setFieldValue(field.key, $event)"
|
||||
/>
|
||||
<FieldInput
|
||||
v-else
|
||||
|
||||
Reference in New Issue
Block a user