This commit is contained in:
dengqichen 2024-12-20 14:42:10 +08:00
parent 8cdf4ff318
commit 57fb736bfd
2 changed files with 51 additions and 10 deletions

View File

@ -39,10 +39,48 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
}
}, [visible, node, nodeDefinition, form]);
// 在组件挂载或 nodeDefinition 更新时设置表单初始值
useEffect(() => {
if (!nodeDefinition) return;
const initialValues = {
...nodeDefinition.panelVariables,
...nodeDefinition.localVariables
};
console.log('设置表单初始值:', initialValues);
form.setFieldsValue(initialValues);
}, [nodeDefinition, form]);
const handleOk = async () => {
try {
const values = await form.validateFields();
onOk(values);
// 将表单数据分离为 panelVariables 和 localVariables
const panelVariables = {};
const localVariables = {};
// 处理 panelVariablesSchema 中定义的字段
if (nodeDefinition?.panelVariablesSchema?.properties) {
Object.keys(nodeDefinition.panelVariablesSchema.properties).forEach(key => {
if (values[key] !== undefined) {
panelVariables[key] = values[key];
}
});
}
// 处理 localVariablesSchema 中定义的字段
if (nodeDefinition?.localVariablesSchema?.properties) {
Object.keys(nodeDefinition.localVariablesSchema.properties).forEach(key => {
if (values[key] !== undefined) {
localVariables[key] = values[key];
}
});
}
onOk({
panelVariables,
localVariables
});
form.resetFields();
} catch (error) {
console.error('Validation failed:', error);
@ -55,7 +93,6 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
};
const renderFormItem = (key: string, property: SchemaProperty, required: boolean, isReadOnly: boolean) => {
console.log('NodeConfigModal - renderFormItem:', { key, property, required, isReadOnly, default: property.default });
const baseProps = {
name: key,
label: (
@ -154,7 +191,6 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
key: 'local',
label: '环境变量',
children: Object.entries(nodeDefinition.localVariablesSchema.properties).map(([key, property]) => {
console.log('NodeConfigModal - Local Schema Property:', key, property);
const required = nodeDefinition.localVariablesSchema?.properties.required?.includes(key) || false;
return renderFormItem(key, property as SchemaProperty, required, true);
})

View File

@ -1038,12 +1038,17 @@ const WorkflowDesign: React.FC = () => {
// 处理节点配置更新
const handleNodeConfigUpdate = (values: any) => {
if (!selectedNode) return;
// 更新节点配置
console.log("// 更新节点配置", values);
selectedNode.setProp('config', values);
// 更新节点显示名称
if (values.name) {
selectedNode.attr('label/text', values.name);
console.log("更新节点配置", values);
// 更新 panelVariables 和 localVariables
selectedNode.setProp('panelVariables', values.panelVariables);
selectedNode.setProp('localVariables', values.localVariables);
// 更新节点显示名称(如果存在)
if (values.panelVariables?.name) {
selectedNode.attr('label/text', values.panelVariables.name);
}
setConfigModalVisible(false);
@ -1085,9 +1090,9 @@ const WorkflowDesign: React.FC = () => {
// x: position.x,
// y: position.y
// }
uiVariables: nodeDefinition.uiVariables
// uiVariables: nodeDefinition.uiVariables
},
config: node.getProp('config') || {}
// config: node.getProp('config') || {}
};
});