This commit is contained in:
dengqichen 2024-12-30 17:35:58 +08:00
parent a5e58d9e10
commit d02ad72d92

View File

@ -44,12 +44,14 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
}) => {
const [panelValues, setPanelValues] = React.useState<Variables>({});
const [localValues, setLocalValues] = React.useState<Variables>({});
const [formValues, setFormValues] = React.useState<Variables>({});
useEffect(() => {
if (nodeDefinition) {
// 使用 convertJsonSchemaToColumns 获取字段配置
const panelColumns = convertJsonSchemaToColumns(nodeDefinition.panelVariablesSchema || { type: 'object', properties: {} });
const localColumns = convertJsonSchemaToColumns(nodeDefinition.localVariablesSchema || { type: 'object', properties: {} });
const formColumns = convertJsonSchemaToColumns(nodeDefinition.formVariablesSchema || { type: 'object', properties: {} });
// 初始化表单值,包括默认值
const initialPanelValues = panelColumns.reduce((acc, column) => {
@ -66,6 +68,13 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
return acc;
}, {} as Variables);
const initialFormValues = formColumns.reduce((acc, column) => {
if (column.initialValue !== undefined) {
acc[column.dataIndex] = column.initialValue;
}
return acc;
}, {} as Variables);
// 设置初始值
setPanelValues({
...initialPanelValues,
@ -75,14 +84,21 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
...initialLocalValues,
...(nodeDefinition.localVariables || {})
});
setFormValues({
...initialFormValues,
...(nodeDefinition.formVariables || {})
});
// 打印调试信息
console.log('Panel Columns:', panelColumns);
console.log('Local Columns:', localColumns);
console.log('Form Columns:', formColumns);
console.log('Initial Panel Values:', initialPanelValues);
console.log('Initial Local Values:', initialLocalValues);
console.log('Initial Form Values:', initialFormValues);
console.log('Node Definition Panel Variables:', nodeDefinition.panelVariables);
console.log('Node Definition Local Variables:', nodeDefinition.localVariables);
console.log('Node Definition Form Variables:', nodeDefinition.formVariables);
}
}, [nodeDefinition]);
@ -90,7 +106,8 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
const updatedNodeDefinition = {
...nodeDefinition,
panelVariables: panelValues,
localVariables: localValues
localVariables: localValues,
formVariables: formValues
};
onOk(updatedNodeDefinition);
};
@ -168,6 +185,10 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
setLocalValues(prev => ({...prev, [key]: value}));
};
const handleFormChange = (key: string, value: any) => {
setFormValues(prev => ({...prev, [key]: value}));
};
const items: TabsProps['items'] = [
nodeDefinition?.panelVariablesSchema && {
key: 'panel',
@ -186,6 +207,15 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
{renderFormFields(nodeDefinition.localVariablesSchema, localValues, handleLocalChange)}
</div>
)
},
nodeDefinition?.formVariablesSchema && {
key: 'form',
label: '表单配置(预览)',
children: (
<div className="space-y-4">
{renderFormFields(nodeDefinition.formVariablesSchema, formValues, handleFormChange)}
</div>
)
}
].filter(Boolean) as TabsProps['items'];