fix: 🐛 修复系统配置页语法上的一些问题
This commit is contained in:
@@ -48,6 +48,16 @@ interface ConfigItem {
|
|||||||
options?: Array<{ value: string; label: string }>;
|
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> = ({
|
const GameConfigTab: React.FC<GameConfigTabProps> = ({
|
||||||
configs,
|
configs,
|
||||||
loading,
|
loading,
|
||||||
@@ -58,11 +68,11 @@ const GameConfigTab: React.FC<GameConfigTabProps> = ({
|
|||||||
onConfigChange
|
onConfigChange
|
||||||
}) => {
|
}) => {
|
||||||
const [form] = Form.useForm();
|
const [form] = Form.useForm();
|
||||||
const [formData, setFormData] = useState<Record<string, unknown>>({});
|
const [formData, setFormData] = useState<FormDataType>({});
|
||||||
|
|
||||||
// 初始化表单数据
|
// 初始化表单数据
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
const initialData: Record<string, unknown> = {};
|
const initialData: FormDataType = {};
|
||||||
configs.forEach(config => {
|
configs.forEach(config => {
|
||||||
if (config.config_type === 'boolean') {
|
if (config.config_type === 'boolean') {
|
||||||
initialData[config.config_key] = config.config_value === '1' || config.config_value === 'true';
|
initialData[config.config_key] = config.config_value === '1' || config.config_value === 'true';
|
||||||
@@ -80,7 +90,7 @@ const GameConfigTab: React.FC<GameConfigTabProps> = ({
|
|||||||
}, [configs, form]);
|
}, [configs, form]);
|
||||||
|
|
||||||
// 处理表单值变化
|
// 处理表单值变化
|
||||||
const handleValuesChange = (changedValues: Record<string, unknown>, allValues: Record<string, unknown>) => {
|
const handleValuesChange = (changedValues: ChangedValuesType, allValues: FormDataType) => {
|
||||||
setFormData(allValues);
|
setFormData(allValues);
|
||||||
// 使用changedValues参数避免未使用的警告
|
// 使用changedValues参数避免未使用的警告
|
||||||
if (Object.keys(changedValues).length > 0) {
|
if (Object.keys(changedValues).length > 0) {
|
||||||
@@ -94,7 +104,7 @@ const GameConfigTab: React.FC<GameConfigTabProps> = ({
|
|||||||
const saveRequests: SaveConfigRequest[] = configs.map(config => ({
|
const saveRequests: SaveConfigRequest[] = configs.map(config => ({
|
||||||
config_key: config.config_key,
|
config_key: config.config_key,
|
||||||
config_value: config.config_type === 'boolean'
|
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] || ''),
|
: String(formData[config.config_key] || ''),
|
||||||
config_type: config.config_type,
|
config_type: config.config_type,
|
||||||
config_label: config.config_label,
|
config_label: config.config_label,
|
||||||
|
|||||||
Reference in New Issue
Block a user