fix: 修复ComfyUI V2工作流创建接口参数不匹配问题

- 修复前端CreateWorkflowRequest接口定义,使用workflow_json而不是workflow_data
- 更新WorkflowV2Creator组件以匹配后端接口参数
- 移除不必要的category字段,与后端保持一致
- 修复所有相关的字段引用和错误处理
- 确保前后端接口参数完全匹配
This commit is contained in:
root 2025-08-08 21:51:06 +08:00
parent ada3eb94ed
commit 733506cd70
2 changed files with 14 additions and 31 deletions

View File

@ -40,8 +40,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
const [formData, setFormData] = useState<CreateWorkflowRequest>({
name: '',
description: '',
category: '',
workflow_data: {},
workflow_json: {},
tags: [],
});
const [errors, setErrors] = useState<Record<string, string>>({});
@ -55,8 +54,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
setFormData({
name: editingWorkflow.name || '',
description: editingWorkflow.description || '',
category: editingWorkflow.category || '',
workflow_data: editingWorkflow.workflow_data || {},
workflow_json: editingWorkflow.workflow_data || {},
tags: editingWorkflow.tags || [],
});
setWorkflowJsonText(JSON.stringify(editingWorkflow.workflow_data || {}, null, 2));
@ -65,8 +63,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
setFormData({
name: '',
description: '',
category: '',
workflow_data: {},
workflow_json: {},
tags: [],
});
setWorkflowJsonText('{}');
@ -98,15 +95,15 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
}
if (!workflowJsonText.trim() || workflowJsonText.trim() === '{}') {
newErrors.workflow_data = '工作流数据不能为空';
newErrors.workflow_json = '工作流数据不能为空';
} else {
try {
const parsed = JSON.parse(workflowJsonText);
if (typeof parsed !== 'object' || parsed === null) {
newErrors.workflow_data = '工作流数据必须是有效的JSON对象';
newErrors.workflow_json = '工作流数据必须是有效的JSON对象';
}
} catch (error) {
newErrors.workflow_data = 'JSON格式错误请检查语法';
newErrors.workflow_json = 'JSON格式错误请检查语法';
}
}
@ -125,7 +122,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
const workflowData = JSON.parse(workflowJsonText);
const requestData: CreateWorkflowRequest = {
...formData,
workflow_data: workflowData,
workflow_json: workflowData,
};
await onSave(requestData);
@ -150,10 +147,10 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
try {
const workflow = JSON.parse(e.target?.result as string);
setWorkflowJsonText(JSON.stringify(workflow, null, 2));
updateField('workflow_data', workflow);
updateField('workflow_json', workflow);
} catch (error) {
console.error('解析ComfyUI工作流失败:', error);
setErrors({ workflow_data: '文件格式错误请选择有效的JSON文件' });
setErrors({ workflow_json: '文件格式错误请选择有效的JSON文件' });
}
};
reader.readAsText(file);
@ -250,18 +247,7 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
)}
</div>
<div>
<label className="block text-sm font-medium text-gray-700 mb-1">
</label>
<input
type="text"
value={formData.category || ''}
onChange={(e) => updateField('category', e.target.value)}
className="w-full px-3 py-2 border border-gray-300 rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent"
placeholder="例如:图像处理"
/>
</div>
</div>
<div>
@ -316,12 +302,12 @@ export const WorkflowV2Creator: React.FC<WorkflowV2CreatorProps> = ({
onChange={(e) => setWorkflowJsonText(e.target.value)}
rows={20}
className={`w-full px-3 py-2 border rounded-lg focus:ring-2 focus:ring-blue-500 focus:border-transparent font-mono text-sm ${
errors.workflow_data ? 'border-red-300' : 'border-gray-300'
errors.workflow_json ? 'border-red-300' : 'border-gray-300'
}`}
placeholder="粘贴ComfyUI导出的工作流JSON..."
/>
{errors.workflow_data && (
<p className="mt-1 text-sm text-red-600">{errors.workflow_data}</p>
{errors.workflow_json && (
<p className="mt-1 text-sm text-red-600">{errors.workflow_json}</p>
)}
<p className="mt-1 text-sm text-gray-500">
ComfyUI界面导出工作流JSON并粘贴到这里

View File

@ -61,10 +61,7 @@ export interface WorkflowV2 {
export interface CreateWorkflowRequest {
name: string;
description?: string;
category?: string;
workflow_data: any;
input_schema?: any;
output_schema?: any;
workflow_json: any;
tags?: string[];
}