import { useState, useEffect } from 'react'; import { Form, Input, Button, Card, message, Spin } from 'antd'; import { SaveOutlined } from '@ant-design/icons'; import type { Dataset } from '~/api/dify-dataset/type/datasetTypes'; import { updateDatasetName } from '~/api/dify-dataset/api/datasetApi'; const { TextArea } = Input; interface DatasetSettingsProps { dataset: Dataset | null; onDatasetUpdated: (dataset: Dataset) => void; } /** * 知识库设置组件 * 用于修改知识库名称和描述 */ export default function DatasetSettings({ dataset, onDatasetUpdated, }: DatasetSettingsProps) { const [form] = Form.useForm(); const [saving, setSaving] = useState(false); const [hasChanges, setHasChanges] = useState(false); // 初始化表单数据 useEffect(() => { if (dataset) { form.setFieldsValue({ name: dataset.name, description: dataset.description || '', }); setHasChanges(false); } }, [dataset, form]); /** * 处理表单值变化 */ const handleValuesChange = () => { const values = form.getFieldsValue(); const changed = values.name !== dataset?.name || values.description !== (dataset?.description || ''); setHasChanges(changed); }; /** * 保存设置 */ const handleSave = async () => { if (!dataset) { message.error('知识库不存在'); return; } try { const values = await form.validateFields(); setSaving(true); // 目前只支持修改名称 const updatedDataset = await updateDatasetName(dataset.id, values.name); message.success('保存成功'); onDatasetUpdated(updatedDataset); setHasChanges(false); } catch (err: any) { console.error('保存设置失败:', err); message.error(err.message || '保存失败'); } finally { setSaving(false); } }; /** * 重置表单 */ const handleReset = () => { if (dataset) { form.setFieldsValue({ name: dataset.name, description: dataset.description || '', }); setHasChanges(false); } }; if (!dataset) { return (
); } return (
{/* 页面标题 */}

设置

管理知识库的基本信息

{/* 设置表单 */}