From e247be6eadb6fa6be146d88172b3e21c4510ac37 Mon Sep 17 00:00:00 2001 From: shaw Date: Sun, 28 Dec 2025 23:24:46 +0800 Subject: [PATCH] =?UTF-8?q?fix(frontend):=20=E4=BF=AE=E5=A4=8D=E8=B4=A6?= =?UTF-8?q?=E5=8F=B7=E7=AE=A1=E7=90=86=E9=A1=B5=E9=9D=A2=20API=20Key=20?= =?UTF-8?q?=E7=B1=BB=E5=9E=8B=E7=9A=84=E6=8F=90=E7=A4=BA=E6=96=87=E6=A1=88?= =?UTF-8?q?=E9=94=99=E8=AF=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 OpenAI/Gemini 平台的 baseUrlHint 和 apiKeyHint 国际化文案 - 修改 CreateAccountModal 和 EditAccountModal 根据平台显示正确提示 - 将重复的平台判断逻辑抽取为 computed 属性,优化代码结构 --- .../components/account/CreateAccountModal.vue | 23 ++++++++++++------- .../components/account/EditAccountModal.vue | 10 +++++++- frontend/src/i18n/locales/en.ts | 6 +++++ frontend/src/i18n/locales/zh.ts | 8 ++++++- 4 files changed, 37 insertions(+), 10 deletions(-) diff --git a/frontend/src/components/account/CreateAccountModal.vue b/frontend/src/components/account/CreateAccountModal.vue index fddd7384..1e0b4afe 100644 --- a/frontend/src/components/account/CreateAccountModal.vue +++ b/frontend/src/components/account/CreateAccountModal.vue @@ -530,7 +530,7 @@ : 'https://api.anthropic.com' " /> -

{{ t('admin.accounts.baseUrlHint') }}

+

{{ baseUrlHint }}

@@ -547,13 +547,7 @@ : 'sk-ant-...' " /> -

- {{ - form.platform === 'gemini' - ? t('admin.accounts.gemini.apiKeyHint') - : t('admin.accounts.apiKeyHint') - }} -

+

{{ apiKeyHint }}

@@ -1115,6 +1109,19 @@ const oauthStepTitle = computed(() => { return t('admin.accounts.oauth.title') }) +// Platform-specific hints for API Key type +const baseUrlHint = computed(() => { + if (form.platform === 'openai') return t('admin.accounts.openai.baseUrlHint') + if (form.platform === 'gemini') return t('admin.accounts.gemini.baseUrlHint') + return t('admin.accounts.baseUrlHint') +}) + +const apiKeyHint = computed(() => { + if (form.platform === 'openai') return t('admin.accounts.openai.apiKeyHint') + if (form.platform === 'gemini') return t('admin.accounts.gemini.apiKeyHint') + return t('admin.accounts.apiKeyHint') +}) + interface Props { show: boolean proxies: Proxy[] diff --git a/frontend/src/components/account/EditAccountModal.vue b/frontend/src/components/account/EditAccountModal.vue index dc981650..75ce204d 100644 --- a/frontend/src/components/account/EditAccountModal.vue +++ b/frontend/src/components/account/EditAccountModal.vue @@ -32,7 +32,7 @@ : 'https://api.anthropic.com' " /> -

{{ t('admin.accounts.baseUrlHint') }}

+

{{ baseUrlHint }}

@@ -536,6 +536,14 @@ const emit = defineEmits<{ const { t } = useI18n() const appStore = useAppStore() +// Platform-specific hint for Base URL +const baseUrlHint = computed(() => { + if (!props.account) return t('admin.accounts.baseUrlHint') + if (props.account.platform === 'openai') return t('admin.accounts.openai.baseUrlHint') + if (props.account.platform === 'gemini') return t('admin.accounts.gemini.baseUrlHint') + return t('admin.accounts.baseUrlHint') +}) + // Model mapping type interface ModelMapping { from: string diff --git a/frontend/src/i18n/locales/en.ts b/frontend/src/i18n/locales/en.ts index 1affb8d5..e3a2ca22 100644 --- a/frontend/src/i18n/locales/en.ts +++ b/frontend/src/i18n/locales/en.ts @@ -915,6 +915,11 @@ export default { apiKeyRequired: 'API Key *', apiKeyPlaceholder: 'sk-ant-api03-...', apiKeyHint: 'Your Claude Console API Key', + // OpenAI specific hints + openai: { + baseUrlHint: 'Leave default for official OpenAI API', + apiKeyHint: 'Your OpenAI API Key' + }, modelRestriction: 'Model Restriction (Optional)', modelWhitelist: 'Model Whitelist', modelMapping: 'Model Mapping', @@ -1076,6 +1081,7 @@ export default { modelPassthrough: 'Gemini Model Passthrough', modelPassthroughDesc: 'All model requests are forwarded directly to the Gemini API without model restrictions or mappings.', + baseUrlHint: 'Leave default for official Gemini API', apiKeyHint: 'Your Gemini API Key (starts with AIza)' }, // Re-Auth Modal diff --git a/frontend/src/i18n/locales/zh.ts b/frontend/src/i18n/locales/zh.ts index c3a52832..7298654a 100644 --- a/frontend/src/i18n/locales/zh.ts +++ b/frontend/src/i18n/locales/zh.ts @@ -1054,6 +1054,11 @@ export default { apiKeyRequired: 'API Key *', apiKeyPlaceholder: 'sk-ant-api03-...', apiKeyHint: '您的 Claude Console API Key', + // OpenAI specific hints + openai: { + baseUrlHint: '留空使用官方 OpenAI API', + apiKeyHint: '您的 OpenAI API Key' + }, modelRestriction: '模型限制(可选)', modelWhitelist: '模型白名单', modelMapping: '模型映射', @@ -1197,7 +1202,8 @@ export default { gemini: { modelPassthrough: 'Gemini 直接转发模型', modelPassthroughDesc: '所有模型请求将直接转发至 Gemini API,不进行模型限制或映射。', - apiKeyHint: 'Your Gemini API Key(以 AIza 开头)' + baseUrlHint: '留空使用官方 Gemini API', + apiKeyHint: '您的 Gemini API Key(以 AIza 开头)' }, // Re-Auth Modal reAuthorizeAccount: '重新授权账号',