This commit is contained in:
asp_ly 2024-12-30 20:30:50 +08:00
parent ed186d893e
commit 8fe80fd780

View File

@ -48,8 +48,13 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
useEffect(() => {
if (nodeDefinition) {
console.log('nodeDefinition:', nodeDefinition);
// 使用 convertJsonSchemaToColumns 获取字段配置
console.log('nodeDefinition.panelVariablesSchema:', JSON.stringify(nodeDefinition.panelVariablesSchema, null, 2));
// 使用修改后的 schema 获取字段配置
const panelColumns = convertJsonSchemaToColumns(nodeDefinition.panelVariablesSchema || { type: 'object', properties: {} });
console.log('转换后的 panelColumns:', panelColumns);
const localColumns = convertJsonSchemaToColumns(nodeDefinition.localVariablesSchema || { type: 'object', properties: {} });
const formColumns = convertJsonSchemaToColumns(nodeDefinition.formVariablesSchema || { type: 'object', properties: {} });
@ -92,17 +97,6 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
...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]);
@ -117,13 +111,19 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
};
const renderFormField = (column: any, value: any, onChange: (value: any) => void) => {
const isReadOnly = column.readonly || column.fieldProps?.disabled;
console.log('renderFormField 被调用:', { column, value });
// 特殊处理 code 字段
const isCodeField = column.dataIndex === 'code';
const isReadOnly = isCodeField || column.readonly === true;
const props = {
value: value || '',
onChange: (e: any) => onChange(e.target?.value ?? e),
onChange: (e: any) => !isReadOnly && onChange(e.target?.value ?? e),
placeholder: column.fieldProps?.placeholder,
disabled: isReadOnly,
readOnly: isReadOnly,
className: isReadOnly ? "bg-muted" : "",
className: `${isReadOnly ? "bg-gray-100" : ""} ${column.fieldProps?.className || ""}`,
};
switch (column.valueType) {
@ -132,7 +132,7 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
<Select
value={value}
onValueChange={onChange}
disabled={isReadOnly}
disabled={column.readonly === true}
>
<SelectTrigger>
<SelectValue placeholder={column.fieldProps?.placeholder} />
@ -151,7 +151,7 @@ const NodeConfigDrawer: React.FC<NodeConfigDrawerProps> = ({
<Switch
checked={value}
onCheckedChange={onChange}
disabled={isReadOnly}
disabled={column.readonly === true}
/>
);
case 'textarea':