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