feat: 前端集成 Prettier 代码格式化
This commit is contained in:
@@ -1,34 +1,28 @@
|
||||
import { useEffect } from 'react';
|
||||
import { Dialog, Form, Input, Switch, Select } from 'tdesign-react';
|
||||
import type { Provider } from '@/types';
|
||||
import type { SubmitContext } from 'tdesign-react/es/form/type';
|
||||
import { useEffect } from 'react'
|
||||
import { Dialog, Form, Input, Switch, Select } from 'tdesign-react'
|
||||
import type { Provider } from '@/types'
|
||||
import type { SubmitContext } from 'tdesign-react/es/form/type'
|
||||
|
||||
interface ProviderFormValues {
|
||||
id: string;
|
||||
name: string;
|
||||
apiKey: string;
|
||||
baseUrl: string;
|
||||
protocol: 'openai' | 'anthropic';
|
||||
enabled: boolean;
|
||||
id: string
|
||||
name: string
|
||||
apiKey: string
|
||||
baseUrl: string
|
||||
protocol: 'openai' | 'anthropic'
|
||||
enabled: boolean
|
||||
}
|
||||
|
||||
interface ProviderFormProps {
|
||||
open: boolean;
|
||||
provider?: Provider;
|
||||
onSave: (values: ProviderFormValues) => Promise<void> | void;
|
||||
onCancel: () => void;
|
||||
loading: boolean;
|
||||
open: boolean
|
||||
provider?: Provider
|
||||
onSave: (values: ProviderFormValues) => Promise<void> | void
|
||||
onCancel: () => void
|
||||
loading: boolean
|
||||
}
|
||||
|
||||
export function ProviderForm({
|
||||
open,
|
||||
provider,
|
||||
onSave,
|
||||
onCancel,
|
||||
loading,
|
||||
}: ProviderFormProps) {
|
||||
const [form] = Form.useForm();
|
||||
const isEdit = !!provider;
|
||||
export function ProviderForm({ open, provider, onSave, onCancel, loading }: ProviderFormProps) {
|
||||
const [form] = Form.useForm()
|
||||
const isEdit = !!provider
|
||||
|
||||
useEffect(() => {
|
||||
if (open && form) {
|
||||
@@ -40,75 +34,74 @@ export function ProviderForm({
|
||||
baseUrl: provider.baseUrl,
|
||||
protocol: provider.protocol,
|
||||
enabled: provider.enabled,
|
||||
});
|
||||
})
|
||||
} else {
|
||||
form.reset();
|
||||
form.setFieldsValue({ enabled: true, protocol: 'openai' });
|
||||
form.reset()
|
||||
form.setFieldsValue({ enabled: true, protocol: 'openai' })
|
||||
}
|
||||
}
|
||||
}, [open, provider]);
|
||||
}, [open, provider])
|
||||
|
||||
const handleSubmit = (context: SubmitContext) => {
|
||||
if (context.validateResult === true && form) {
|
||||
const values = form.getFieldsValue(true) as ProviderFormValues;
|
||||
onSave(values);
|
||||
const values = form.getFieldsValue(true) as ProviderFormValues
|
||||
onSave(values)
|
||||
}
|
||||
};
|
||||
}
|
||||
|
||||
return (
|
||||
<Dialog
|
||||
header={isEdit ? '编辑供应商' : '添加供应商'}
|
||||
visible={open}
|
||||
placement="center"
|
||||
width="520px"
|
||||
placement='center'
|
||||
width='520px'
|
||||
closeOnOverlayClick={false}
|
||||
closeOnEscKeydown={false}
|
||||
lazy={false}
|
||||
onConfirm={() => { form?.submit(); return false; }}
|
||||
onConfirm={() => {
|
||||
form?.submit()
|
||||
return false
|
||||
}}
|
||||
onClose={onCancel}
|
||||
confirmLoading={loading}
|
||||
confirmBtn="保存"
|
||||
cancelBtn="取消"
|
||||
confirmBtn='保存'
|
||||
cancelBtn='取消'
|
||||
>
|
||||
<Form form={form} layout="vertical" onSubmit={handleSubmit}>
|
||||
<Form.FormItem label="ID" name="id" rules={[{ required: true, message: '请输入供应商 ID' }]}>
|
||||
<Input disabled={isEdit} placeholder="例如: openai" />
|
||||
<Form form={form} layout='vertical' onSubmit={handleSubmit}>
|
||||
<Form.FormItem label='ID' name='id' rules={[{ required: true, message: '请输入供应商 ID' }]}>
|
||||
<Input disabled={isEdit} placeholder='例如: openai' />
|
||||
</Form.FormItem>
|
||||
|
||||
<Form.FormItem label="名称" name="name" rules={[{ required: true, message: '请输入名称' }]}>
|
||||
<Input placeholder="例如: OpenAI" />
|
||||
<Form.FormItem label='名称' name='name' rules={[{ required: true, message: '请输入名称' }]}>
|
||||
<Input placeholder='例如: OpenAI' />
|
||||
</Form.FormItem>
|
||||
|
||||
<Form.FormItem label='API Key' name='apiKey' rules={[{ required: true, message: '请输入 API Key' }]}>
|
||||
<Input placeholder='sk-...' />
|
||||
</Form.FormItem>
|
||||
|
||||
<Form.FormItem
|
||||
label="API Key"
|
||||
name="apiKey"
|
||||
rules={[{ required: true, message: '请输入 API Key' }]}
|
||||
>
|
||||
<Input placeholder="sk-..." />
|
||||
</Form.FormItem>
|
||||
|
||||
<Form.FormItem
|
||||
label="Base URL"
|
||||
name="baseUrl"
|
||||
label='Base URL'
|
||||
name='baseUrl'
|
||||
rules={[
|
||||
{ required: true, message: '请输入 Base URL' },
|
||||
{ url: true, message: '请输入有效的 URL' },
|
||||
]}
|
||||
>
|
||||
<Input placeholder="例如: https://api.openai.com/v1" />
|
||||
<Input placeholder='例如: https://api.openai.com/v1' />
|
||||
</Form.FormItem>
|
||||
|
||||
<Form.FormItem label="协议" name="protocol" rules={[{ required: true, message: '请选择协议' }]}>
|
||||
<Form.FormItem label='协议' name='protocol' rules={[{ required: true, message: '请选择协议' }]}>
|
||||
<Select>
|
||||
<Select.Option value="openai">OpenAI</Select.Option>
|
||||
<Select.Option value="anthropic">Anthropic</Select.Option>
|
||||
<Select.Option value='openai'>OpenAI</Select.Option>
|
||||
<Select.Option value='anthropic'>Anthropic</Select.Option>
|
||||
</Select>
|
||||
</Form.FormItem>
|
||||
|
||||
<Form.FormItem label="启用" name="enabled">
|
||||
<Form.FormItem label='启用' name='enabled'>
|
||||
<Switch />
|
||||
</Form.FormItem>
|
||||
</Form>
|
||||
</Dialog>
|
||||
);
|
||||
)
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user