fix: 修复ComfyUI V2工作流创建接口参数不匹配问题
- 修复前端CreateWorkflowRequest接口定义,使用workflow_json而不是workflow_data - 更新WorkflowV2Creator组件以匹配后端接口参数 - 移除不必要的category字段,与后端保持一致 - 修复所有相关的字段引用和错误处理 - 确保前后端接口参数完全匹配
This commit is contained in:
parent
ada3eb94ed
commit
733506cd70
|
|
@ -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并粘贴到这里
|
||||
|
|
|
|||
|
|
@ -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[];
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue