fix: 🐛 修复系统配置页语法上的一些问题
This commit is contained in:
@@ -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<GameConfigTabProps> = ({
|
||||
configs,
|
||||
loading,
|
||||
@@ -58,11 +68,11 @@ const GameConfigTab: React.FC<GameConfigTabProps> = ({
|
||||
onConfigChange
|
||||
}) => {
|
||||
const [form] = Form.useForm();
|
||||
const [formData, setFormData] = useState<Record<string, unknown>>({});
|
||||
const [formData, setFormData] = useState<FormDataType>({});
|
||||
|
||||
// 初始化表单数据
|
||||
useEffect(() => {
|
||||
const initialData: Record<string, unknown> = {};
|
||||
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<GameConfigTabProps> = ({
|
||||
}, [configs, form]);
|
||||
|
||||
// 处理表单值变化
|
||||
const handleValuesChange = (changedValues: Record<string, unknown>, allValues: Record<string, unknown>) => {
|
||||
const handleValuesChange = (changedValues: ChangedValuesType, allValues: FormDataType) => {
|
||||
setFormData(allValues);
|
||||
// 使用changedValues参数避免未使用的警告
|
||||
if (Object.keys(changedValues).length > 0) {
|
||||
@@ -94,7 +104,7 @@ const GameConfigTab: React.FC<GameConfigTabProps> = ({
|
||||
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,
|
||||
|
||||
Reference in New Issue
Block a user