fix: 修复参数配置中数值为0时无法正确显示的问题

修复了ComfyUI V2工作流模板参数配置中的关键bug:

🐛 问题描述:
- 当数值参数(最小值、最大值、步长、默认值等)设置为0时,由于JavaScript的falsy值特性,使用 || 操作符会导致显示空字符串而不是0

🔧 修复内容:
-  最小值字段:schema.min || '' → schema.min !== undefined ? schema.min : ''
-  最大值字段:schema.max || '' → schema.max !== undefined ? schema.max : ''
-  步长字段:schema.step || '' → schema.step !== undefined ? schema.step : ''
-  默认值字段(数字类型):schema.default || '' → schema.default !== undefined ? schema.default : ''
-  宽度字段:schema.width || '' → schema.width !== undefined ? schema.width : ''
-  高度字段:schema.height || '' → schema.height !== undefined ? schema.height : ''
-  时长字段:schema.duration || '' → schema.duration !== undefined ? schema.duration : ''
-  文件大小字段:schema.maxSize ? Math.round(...) → schema.maxSize !== undefined ? Math.round(...) : ''

💡 技术细节:
- 使用 !== undefined 检查而不是 || 操作符,确保0值能正确显示
- 保持字符串字段使用 || '' 的逻辑,因为空字符串是合理的默认值
- 确保所有数值类型字段都能正确处理0值

🎯 影响范围:
- 整数类型参数的最小值、最大值、步长配置
- 浮点数类型参数的数值范围设置
- 媒体类型参数的尺寸和大小限制
- 所有数值类型的默认值设置

这个修复确保了用户可以正确设置0作为参数值,
特别重要的是最小值为0的场景(如步长、范围等)。
This commit is contained in:
root 2025-08-08 22:38:01 +08:00
parent 4b016c2702
commit 637c4e036f
1 changed files with 8 additions and 8 deletions

View File

@ -802,7 +802,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
step={schema.step || (schema.param_type === 'float' ? 0.01 : 1)}
min={schema.min}
max={schema.max}
value={schema.default || ''}
value={schema.default !== undefined ? schema.default : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
default: schema.param_type === 'integer' ? parseInt(e.target.value) || 0 : parseFloat(e.target.value) || 0
@ -880,7 +880,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
<input
type="number"
step={schema.param_type === 'float' ? 0.01 : 1}
value={schema.min || ''}
value={schema.min !== undefined ? schema.min : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
min: e.target.value ? Number(e.target.value) : undefined
@ -896,7 +896,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
<input
type="number"
step={schema.param_type === 'float' ? 0.01 : 1}
value={schema.max || ''}
value={schema.max !== undefined ? schema.max : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
max: e.target.value ? Number(e.target.value) : undefined
@ -912,7 +912,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
<input
type="number"
step={schema.param_type === 'float' ? 0.001 : 1}
value={schema.step || ''}
value={schema.step !== undefined ? schema.step : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
step: e.target.value ? Number(e.target.value) : undefined
@ -948,7 +948,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
</label>
<input
type="number"
value={schema.maxSize ? Math.round(schema.maxSize / (1024 * 1024)) : ''}
value={schema.maxSize !== undefined ? Math.round(schema.maxSize / (1024 * 1024)) : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
maxSize: e.target.value ? Number(e.target.value) * 1024 * 1024 : undefined
@ -967,7 +967,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
</label>
<input
type="number"
value={schema.width || ''}
value={schema.width !== undefined ? schema.width : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
width: e.target.value ? Number(e.target.value) : undefined
@ -982,7 +982,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
</label>
<input
type="number"
value={schema.height || ''}
value={schema.height !== undefined ? schema.height : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
height: e.target.value ? Number(e.target.value) : undefined
@ -1001,7 +1001,7 @@ export const WorkflowTemplateCreator: React.FC<WorkflowTemplateCreatorProps> = (
</label>
<input
type="number"
value={schema.duration || ''}
value={schema.duration !== undefined ? schema.duration : ''}
onChange={(e) => updateParameter(paramName, {
...schema,
duration: e.target.value ? Number(e.target.value) : undefined