import { useEffect } from 'react' import { Dialog, Form, Input, Select, Switch } from 'tdesign-react' import type { Provider, Model } from '@/types' import type { SubmitContext } from 'tdesign-react/es/form/type' interface ModelFormValues { providerId: string modelName: string enabled: boolean } interface ModelFormProps { open: boolean model?: Model providerId: string providers: Provider[] onSave: (values: ModelFormValues) => Promise | void onCancel: () => void loading: boolean } export function ModelForm({ open, model, providerId, providers, onSave, onCancel, loading }: ModelFormProps) { const [form] = Form.useForm() const isEdit = !!model // 当弹窗打开或 model 变化时,同步表单初始值。 useEffect(() => { if (open && form) { if (model) { form.setFieldsValue({ providerId: model.providerId, modelName: model.modelName, enabled: model.enabled, }) } else { form.reset() form.setFieldsValue({ providerId, enabled: true, }) } } }, [form, open, model, providerId]) const handleSubmit = (context: SubmitContext) => { if (context.validateResult === true && form) { const values = form.getFieldsValue(true) as ModelFormValues onSave(values) } } return ( { form?.submit() return false }} onClose={onCancel} confirmLoading={loading} confirmBtn='保存' cancelBtn='取消' >
) }