diff --git a/src/pages/tabs/GameConfigTab.tsx b/src/pages/tabs/GameConfigTab.tsx index c20cdf2..f6f3717 100644 --- a/src/pages/tabs/GameConfigTab.tsx +++ b/src/pages/tabs/GameConfigTab.tsx @@ -48,6 +48,16 @@ interface ConfigItem { options?: Array<{ value: string; label: string }>; } +// 定义表单数据的类型 +interface FormDataType { + [key: string]: string | boolean | number | null | undefined; +} + +// 定义变化的值的类型 +interface ChangedValuesType { + [key: string]: string | boolean | number | null | undefined; +} + const GameConfigTab: React.FC = ({ configs, loading, @@ -58,11 +68,11 @@ const GameConfigTab: React.FC = ({ onConfigChange }) => { const [form] = Form.useForm(); - const [formData, setFormData] = useState>({}); + const [formData, setFormData] = useState({}); // 初始化表单数据 useEffect(() => { - const initialData: Record = {}; + const initialData: FormDataType = {}; configs.forEach(config => { if (config.config_type === 'boolean') { initialData[config.config_key] = config.config_value === '1' || config.config_value === 'true'; @@ -80,7 +90,7 @@ const GameConfigTab: React.FC = ({ }, [configs, form]); // 处理表单值变化 - const handleValuesChange = (changedValues: Record, allValues: Record) => { + const handleValuesChange = (changedValues: ChangedValuesType, allValues: FormDataType) => { setFormData(allValues); // 使用changedValues参数避免未使用的警告 if (Object.keys(changedValues).length > 0) { @@ -94,7 +104,7 @@ const GameConfigTab: React.FC = ({ const saveRequests: SaveConfigRequest[] = configs.map(config => ({ config_key: config.config_key, config_value: config.config_type === 'boolean' - ? ((formData[config.config_key] as boolean) ? '1' : '0') + ? (formData[config.config_key] ? '1' : '0') : String(formData[config.config_key] || ''), config_type: config.config_type, config_label: config.config_label,