Преглед изворни кода

fix(ratio): preserve 0 as valid value for advanced ratio fields

- Replace || with ?? in addOrUpdateModel to keep 0 values (0 || '' = '')
- Add null check in SubmitData to avoid writing undefined
- Fix formRef value reading to preserve 0 vs empty distinction

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
master
fengsilin пре 1 недеља
родитељ
комит
d36a686f6b
1 измењених фајлова са 21 додато и 21 уклоњено
  1. +21
    -21
      web/src/pages/Setting/Ratio/ModelSettingsVisualEditor.jsx

+ 21
- 21
web/src/pages/Setting/Ratio/ModelSettingsVisualEditor.jsx Прегледај датотеку

@@ -159,16 +159,16 @@ export default function ModelSettingsVisualEditor(props) {
);
}

// 新增:处理高级倍率字段
if (model.cacheRatio !== '')
// 新增:处理高级倍率字段(0 是有效值,只有空字符串和 undefined/null 不保存)
if (model.cacheRatio !== '' && model.cacheRatio != null)
output.CacheRatio[model.name] = parseFloat(model.cacheRatio);
if (model.cacheCreationRatio !== '')
if (model.cacheCreationRatio !== '' && model.cacheCreationRatio != null)
output.CreateCacheRatio[model.name] = parseFloat(model.cacheCreationRatio);
if (model.imageRatio !== '')
if (model.imageRatio !== '' && model.imageRatio != null)
output.ImageRatio[model.name] = parseFloat(model.imageRatio);
if (model.audioRatio !== '')
if (model.audioRatio !== '' && model.audioRatio != null)
output.AudioRatio[model.name] = parseFloat(model.audioRatio);
if (model.audioCompletionRatio !== '')
if (model.audioCompletionRatio !== '' && model.audioCompletionRatio != null)
output.AudioCompletionRatio[model.name] = parseFloat(model.audioCompletionRatio);
});

@@ -392,11 +392,11 @@ export default function ModelSettingsVisualEditor(props) {
ratio: values.ratio || '',
completionRatio: values.completionRatio || '',
// 新增:高级倍率字段
cacheRatio: values.cacheRatio || '',
cacheCreationRatio: values.cacheCreationRatio || '',
imageRatio: values.imageRatio || '',
audioRatio: values.audioRatio || '',
audioCompletionRatio: values.audioCompletionRatio || '',
cacheRatio: values.cacheRatio ?? '',
cacheCreationRatio: values.cacheCreationRatio ?? '',
imageRatio: values.imageRatio ?? '',
audioRatio: values.audioRatio ?? '',
audioCompletionRatio: values.audioCompletionRatio ?? '',
};
updated.hasConflict =
updated.price !== '' &&
@@ -421,11 +421,11 @@ export default function ModelSettingsVisualEditor(props) {
ratio: values.ratio || '',
completionRatio: values.completionRatio || '',
// 新增:高级倍率字段
cacheRatio: values.cacheRatio || '',
cacheCreationRatio: values.cacheCreationRatio || '',
imageRatio: values.imageRatio || '',
audioRatio: values.audioRatio || '',
audioCompletionRatio: values.audioCompletionRatio || '',
cacheRatio: values.cacheRatio ?? '',
cacheCreationRatio: values.cacheCreationRatio ?? '',
imageRatio: values.imageRatio ?? '',
audioRatio: values.audioRatio ?? '',
audioCompletionRatio: values.audioCompletionRatio ?? '',
};
newModel.hasConflict =
newModel.price !== '' &&
@@ -616,11 +616,11 @@ export default function ModelSettingsVisualEditor(props) {
// 从表单读取高级倍率字段(Form.InputNumber 的值不会自动同步到 currentModel)
if (formRef.current) {
const formValues = formRef.current.getValues();
valuesToSave.cacheRatio = formValues.cacheRatio ?? '';
valuesToSave.cacheCreationRatio = formValues.cacheCreationRatio ?? '';
valuesToSave.imageRatio = formValues.imageRatio ?? '';
valuesToSave.audioRatio = formValues.audioRatio ?? '';
valuesToSave.audioCompletionRatio = formValues.audioCompletionRatio ?? '';
valuesToSave.cacheRatio = formValues.cacheRatio != null ? formValues.cacheRatio : '';
valuesToSave.cacheCreationRatio = formValues.cacheCreationRatio != null ? formValues.cacheCreationRatio : '';
valuesToSave.imageRatio = formValues.imageRatio != null ? formValues.imageRatio : '';
valuesToSave.audioRatio = formValues.audioRatio != null ? formValues.audioRatio : '';
valuesToSave.audioCompletionRatio = formValues.audioCompletionRatio != null ? formValues.audioCompletionRatio : '';
}

addOrUpdateModel(valuesToSave);


Loading…
Откажи
Сачувај