import React, { useState, useEffect } from 'react'; import { Modal, Form, Input, message } from 'antd'; import type { KnowledgeBase } from '../../api/knowledgeBaseApi'; const { TextArea } = Input; interface EditKBDialogProps { open: boolean; knowledgeBase: KnowledgeBase | null; onCancel: () => void; onUpdate: (id: string, name: string, description?: string) => Promise; } const EditKBDialog: React.FC = ({ open, knowledgeBase, onCancel, onUpdate, }) => { const [form] = Form.useForm(); const [loading, setLoading] = useState(false); // 当知识库数据变化时,更新表单 useEffect(() => { if (open && knowledgeBase) { form.setFieldsValue({ name: knowledgeBase.name, description: knowledgeBase.description || '', }); } }, [open, knowledgeBase, form]); const handleOk = async () => { if (!knowledgeBase) return; try { const values = await form.validateFields(); setLoading(true); await onUpdate(knowledgeBase.id, values.name, values.description); message.success('知识库更新成功!'); onCancel(); } catch (error: any) { if (error.errorFields) { // 表单验证错误 return; } message.error(error.message || '更新失败'); } finally { setLoading(false); } }; const handleCancel = () => { form.resetFields(); onCancel(); }; return (