diff --git a/src/pages/tabs/BasicConfigTab.tsx b/src/pages/tabs/BasicConfigTab.tsx index d597188..14167e4 100644 --- a/src/pages/tabs/BasicConfigTab.tsx +++ b/src/pages/tabs/BasicConfigTab.tsx @@ -30,7 +30,7 @@ interface BasicConfigTabProps { const BasicConfigTab: React.FC = ({ configs, - loading, + // loading, saving, onSave, onReset, @@ -38,20 +38,26 @@ const BasicConfigTab: React.FC = ({ onConfigChange }) => { const [form] = Form.useForm(); - const [formData, setFormData] = useState>({}); - - // 初始化表单数据 - useEffect(() => { - const initialData: Record = {}; + const [formData, setFormData] = useState>(() => { + // 初始化时设置默认数据 + const initialData: Record = {}; + configs.forEach(config => { + initialData[config.config_key] = config.config_value; + }); + return initialData; + }); + + // 初始化表单数据 + useEffect(() => { + const initialData: Record = {}; configs.forEach(config => { initialData[config.config_key] = config.config_value; }); - setFormData(initialData); form.setFieldsValue(initialData); }, [configs, form]); // 处理表单值变化 - const handleValuesChange = (changedValues: any, allValues: any) => { + const handleValuesChange = (_changedValues: Record, allValues: Record) => { setFormData(allValues); onConfigChange(); }; @@ -61,9 +67,10 @@ const BasicConfigTab: React.FC = ({ form.validateFields().then(() => { const saveRequests: SaveConfigRequest[] = configs.map(config => ({ config_key: config.config_key, - config_value: formData[config.config_key] || '', + config_value: String(formData[config.config_key] || ''), config_label: config.config_label, - config_group: config.config_group + config_group: config.config_group, + config_type: config.config_type })); onSave(saveRequests); }).catch(() => { @@ -155,7 +162,7 @@ const BasicConfigTab: React.FC = ({ style={{ marginBottom: '24px' }} > - {configItems.map((item, index) => { + {configItems.map((item) => { const config = configs.find(c => c.config_key === item.key); if (!config) return null; @@ -218,11 +225,10 @@ const BasicConfigTab: React.FC = ({ {/* 输入控件 */} @@ -230,16 +236,33 @@ const BasicConfigTab: React.FC = ({ { + form.setFieldValue(item.key, e.target.value); + onConfigChange(); + }} /> )} {item.type === 'textarea' && (