From 48a32e8f6d192742b0317bb1b62b181f55b18072 Mon Sep 17 00:00:00 2001 From: scarqin Date: Thu, 2 Jan 2025 09:45:32 +0800 Subject: [PATCH 1/6] fix: padding error --- .../packages/core/src/pages/aiApis/index.tsx | 18 +++++++++++------- 1 file changed, 11 insertions(+), 7 deletions(-) diff --git a/frontend/packages/core/src/pages/aiApis/index.tsx b/frontend/packages/core/src/pages/aiApis/index.tsx index 0a12ec3c..9b718899 100644 --- a/frontend/packages/core/src/pages/aiApis/index.tsx +++ b/frontend/packages/core/src/pages/aiApis/index.tsx @@ -165,22 +165,26 @@ const ApiSettings: React.FC = () => { const renderProviderBanner = () => { if (!provider) return null - - console.log(provider) if (provider.status === 'disabled' || provider.status === 'abnormal') { const message = provider.status === 'disabled' ? $t(`当前供应商异常,以下API均临时调用 ${provider.backupName} 下的 ${provider.backupModel} 模型能力。`) : $t(`当前供应商异常,以下API均临时调用 ${provider.backupName} 下的 ${provider.backupModel} 模型能力。`) - + const type = provider.status === 'disabled' ? 'warning' : 'error' return ( navigate('/aisetting')}> + } @@ -192,7 +196,7 @@ const ApiSettings: React.FC = () => { return ( @@ -211,7 +215,7 @@ const ApiSettings: React.FC = () => { showBorder={false} scrollPage={false} > -
+
Date: Thu, 2 Jan 2025 10:07:54 +0800 Subject: [PATCH 2/6] feat: api url --- frontend/packages/core/src/pages/aiApis/index.tsx | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/frontend/packages/core/src/pages/aiApis/index.tsx b/frontend/packages/core/src/pages/aiApis/index.tsx index 9b718899..6d983320 100644 --- a/frontend/packages/core/src/pages/aiApis/index.tsx +++ b/frontend/packages/core/src/pages/aiApis/index.tsx @@ -112,7 +112,13 @@ const ApiSettings: React.FC = () => { dataIndex: 'request_path', key: 'request_path', width: 200, - ellipsis: true + ellipsis: true, + render: (text: string, record: APIKey) => ( +

+ {record.method} + {text} +

+ ) }, { title: '模型', From 71ab2c8dea4a7594186cd72bb0d1c97c79d55d2d Mon Sep 17 00:00:00 2001 From: scarqin Date: Fri, 3 Jan 2025 09:06:36 +0800 Subject: [PATCH 3/6] fix: api key timestamp error --- .../pages/aiApis/components/ApiKeyContent.tsx | 111 ------------------ .../pages/aiApis/components/StatusFilter.tsx | 40 ------- .../packages/core/src/pages/aiApis/types.ts | 16 --- .../keySettings/components/ApiKeyContent.tsx | 4 +- 4 files changed, 2 insertions(+), 169 deletions(-) delete mode 100644 frontend/packages/core/src/pages/aiApis/components/ApiKeyContent.tsx delete mode 100644 frontend/packages/core/src/pages/aiApis/components/StatusFilter.tsx diff --git a/frontend/packages/core/src/pages/aiApis/components/ApiKeyContent.tsx b/frontend/packages/core/src/pages/aiApis/components/ApiKeyContent.tsx deleted file mode 100644 index 0ce3c4a4..00000000 --- a/frontend/packages/core/src/pages/aiApis/components/ApiKeyContent.tsx +++ /dev/null @@ -1,111 +0,0 @@ -import { Codebox } from '@common/components/postcat/api/Codebox' -import { BasicResponse, RESPONSE_TIPS, STATUS_CODE } from '@common/const/const' -import { useFetch } from '@common/hooks/http' -import { $t } from '@common/locales' -import { AIProvider } from '@core/components/AIProviderSelect' -import { App, DatePicker, Form, Input, Switch } from 'antd' -import dayjs from 'dayjs' -import React, { forwardRef, useEffect, useImperativeHandle, useState } from 'react' -import { EditAPIKey } from '../types' - -interface ApiKeyContentProps { - provider?: AIProvider - entity: EditAPIKey -} - -const ApiKeyContent: React.FC = forwardRef(({ provider, entity }, ref) => { - const [form] = Form.useForm() - const [neverExpire, setNeverExpire] = useState(true) - const { fetchData } = useFetch() - const { message } = App.useApp() - - useEffect(() => { - try { - const isNeverExpire = entity.expire_time === 0 - setNeverExpire(isNeverExpire) - form.setFieldsValue({ - name: entity.name, - expire_time: isNeverExpire ? undefined : dayjs(entity.expire_time), - config: entity.config - }) - } catch (e) { - form.setFieldsValue({ - name: entity.name, - expire_time: undefined, - config: '' - }) - } - }, []) - - const handleOk = async () => { - try { - const values = await form.validateFields() - const { expire_time, ...restValues } = values - const expireTime = neverExpire ? 0 : expire_time.valueOf() - - const response = await fetchData>('ai/resource/key', { - method: entity.id ? 'PUT' : 'POST', - eoParams: { provider: provider?.id, id: entity.id }, - eoBody: { ...restValues, expire_time: expireTime }, - eoTransformKeys: ['config'] - }) - - const { code, msg } = response - if (code === STATUS_CODE.SUCCESS) { - message.success(msg || $t(RESPONSE_TIPS.success)) - return true - } else { - message.error(msg || $t(RESPONSE_TIPS.error)) - return false - } - } catch (error) { - console.error('Validation failed:', error) - } - } - useImperativeHandle(ref, () => ({ - handleOk - })) - const handleNeverExpireChange = (checked: boolean) => { - setNeverExpire(checked) - if (!checked) { - form.setFieldsValue({ - expire_time: dayjs().add(7, 'days') - }) - } - } - - return ( -
- - - - - - - -
- - {neverExpire ? $t('永不过期') : $t('设置过期时间')} -
-
- {!neverExpire && ( - - - - )} -
- ) -}) - -export default ApiKeyContent diff --git a/frontend/packages/core/src/pages/aiApis/components/StatusFilter.tsx b/frontend/packages/core/src/pages/aiApis/components/StatusFilter.tsx deleted file mode 100644 index 64cc18e9..00000000 --- a/frontend/packages/core/src/pages/aiApis/components/StatusFilter.tsx +++ /dev/null @@ -1,40 +0,0 @@ -import { $t } from '@common/locales' -import { Select, Space, theme } from 'antd' -import React from 'react' - -interface StatusFilterProps { - value: string[] - onChange: (value: string[]) => void -} - -const StatusFilter: React.FC = ({ value, onChange }) => { - const { token } = theme.useToken() - - const options = [ - { label: $t('Normal'), value: 'normal', color: token.colorSuccess }, - { label: $t('Exceeded'), value: 'exceeded', color: token.colorError }, - { label: $t('Expired'), value: 'expired', color: token.colorWarning }, - { label: $t('Disabled'), value: 'disabled', color: token.colorTextDisabled }, - { label: $t('Error'), value: 'error', color: token.colorError } - ] - - return ( - - {$t('Status')}: - { diff --git a/frontend/packages/core/src/pages/aiApis/index.tsx b/frontend/packages/core/src/pages/aiApis/index.tsx index bebf6033..17b20768 100644 --- a/frontend/packages/core/src/pages/aiApis/index.tsx +++ b/frontend/packages/core/src/pages/aiApis/index.tsx @@ -105,7 +105,7 @@ const ApiSettings: React.FC = () => { const columns: PageProColumns[] = [ { - title: 'AI 服务', + title: $t('AI 服务'), dataIndex: 'name', key: 'name', width: 180 @@ -124,7 +124,7 @@ const ApiSettings: React.FC = () => { ) }, { - title: '模型', + title: $t('模型'), dataIndex: ['model', 'name'], key: 'model', width: 150, @@ -134,14 +134,14 @@ const ApiSettings: React.FC = () => { valueEnum: {} }, { - title: '已用 Token', + title: $t('已用 Token'), dataIndex: 'use_token', key: 'use_token', width: 120, sorter: true }, { - title: '是否放行', + title: $t('是否放行'), dataIndex: 'disabled', ellipsis: true, filters: true, @@ -153,7 +153,7 @@ const ApiSettings: React.FC = () => { } }, { - title: '编辑时间', + title: $t('编辑时间'), dataIndex: 'update_time', key: 'update_time', width: 200, diff --git a/frontend/packages/core/src/pages/keySettings/components/StatusFilter.tsx b/frontend/packages/core/src/pages/keySettings/components/StatusFilter.tsx index 64cc18e9..3663e12a 100644 --- a/frontend/packages/core/src/pages/keySettings/components/StatusFilter.tsx +++ b/frontend/packages/core/src/pages/keySettings/components/StatusFilter.tsx @@ -11,22 +11,22 @@ const StatusFilter: React.FC = ({ value, onChange }) => { const { token } = theme.useToken() const options = [ - { label: $t('Normal'), value: 'normal', color: token.colorSuccess }, - { label: $t('Exceeded'), value: 'exceeded', color: token.colorError }, - { label: $t('Expired'), value: 'expired', color: token.colorWarning }, - { label: $t('Disabled'), value: 'disabled', color: token.colorTextDisabled }, - { label: $t('Error'), value: 'error', color: token.colorError } + { label: $t('正常'), value: 'normal', color: token.colorSuccess }, + { label: $t('超额'), value: 'exceeded', color: token.colorError }, + { label: $t('过期'), value: 'expired', color: token.colorWarning }, + { label: $t('停用'), value: 'disabled', color: token.colorTextDisabled }, + { label: $t('错误'), value: 'error', color: token.colorError } ] return ( - {$t('Status')}: + {$t('状态')}: