定时器回显有问题。

This commit is contained in:
dengqichen 2024-12-06 13:41:14 +08:00
parent c58e799c22
commit 858624816b

View File

@ -86,58 +86,123 @@ const NodeConfig: React.FC<NodeConfigProps> = ({ nodeType, form, onValuesChange
</>
);
// 渲染网关节点配置
const renderGatewayConfig = () => {
if (!nodeType.code?.includes('GATEWAY')) return null;
return (
<Form.Item
label="网关类型"
name="type"
rules={[{ required: true, message: '请选择网关类型' }]}
>
<Select
placeholder="请选择网关类型"
options={[
{ label: '并行网关', value: 'PARALLEL' },
{ label: '排他网关', value: 'EXCLUSIVE' },
{ label: '包容网关', value: 'INCLUSIVE' }
]}
/>
</Form.Item>
);
};
// 渲染定时器节点配置
const renderTimerConfig = () => {
if (!nodeType.code?.includes('TIMER')) return null;
return (
<Form.Item
label="CRON表达式"
name="cron"
tooltip="定时触发的CRON表达式"
rules={[
{
required: true,
message: '请输入CRON表达式'
},
{
pattern: /^(\d+|\*|\*\/\d+|\d+\-\d+|\d+(,\d+)*) (\d+|\*|\*\/\d+|\d+\-\d+|\d+(,\d+)*) (\d+|\*|\*\/\d+|\d+\-\d+|\d+(,\d+)*) (\d+|\*|\*\/\d+|\d+\-\d+|\d+(,\d+)*) (\d+|\*|\*\/\d+|\d+\-\d+|\d+(,\d+)*) (\d+|\*|\*\/\d+|\d+\-\d+|\d+(,\d+)*)$/,
message: '请输入有效的CRON表达式'
}
]}
>
<Input placeholder="例如: 0 0 * * * *" />
</Form.Item>
);
};
// 渲染Shell执行器特定配置
const renderShellExecutorConfig = () => {
if (selectedExecutor !== 'SHELL') return null;
if (!nodeType.code?.includes('SHELL')) return null;
return (
<>
<Form.Item
label="脚本内容"
name="script"
rules={[{ required: true, message: '请输入脚本内容' }]}
label="执行器"
name="executor"
rules={[{ required: true, message: '请选择执行器' }]}
>
<Input.TextArea rows={6} placeholder="请输入脚本内容" />
</Form.Item>
<Form.Item
label="工作目录"
name="workingDirectory"
>
<Input placeholder="请输入工作目录" />
</Form.Item>
<Form.Item
label="超时时间"
name="timeout"
rules={[{ type: 'number', min: 0, message: '超时时间必须大于0' }]}
>
<InputNumber placeholder="请输入超时时间(秒)" style={{ width: '100%' }} />
</Form.Item>
<Form.Item
label="重试次数"
name="retryTimes"
rules={[{ type: 'number', min: 0, message: '重试次数不能为负数' }]}
>
<InputNumber placeholder="请输入重试次数" style={{ width: '100%' }} />
</Form.Item>
<Form.Item
label="重试间隔"
name="retryInterval"
rules={[{ type: 'number', min: 0, message: '重试间隔不能为负数' }]}
>
<InputNumber placeholder="请输入重试间隔(秒)" style={{ width: '100%' }} />
</Form.Item>
<Form.Item
label="环境变量"
name="environment"
>
<Input.TextArea placeholder="请输入环境变量" />
</Form.Item>
<Form.Item
label="成功退出码"
name="successExitCode"
>
<Input placeholder="请输入成功退出码" />
<Select
placeholder="请选择执行器"
options={nodeType.executors?.map(executor => ({
label: executor.name,
value: executor.code
}))}
/>
</Form.Item>
{selectedExecutor === 'SHELL' && (
<>
<Form.Item
label="脚本内容"
name="script"
rules={[{ required: true, message: '请输入脚本内容' }]}
>
<Input.TextArea rows={6} placeholder="请输入脚本内容" />
</Form.Item>
<Form.Item
label="工作目录"
name="workingDirectory"
>
<Input placeholder="请输入工作目录" />
</Form.Item>
<Form.Item
label="超时时间"
name="timeout"
rules={[{ type: 'number', min: 0, message: '超时时间必须大于0' }]}
>
<InputNumber placeholder="请输入超时时间(秒)" style={{ width: '100%' }} />
</Form.Item>
<Form.Item
label="重试次数"
name="retryTimes"
rules={[{ type: 'number', min: 0, message: '重试次数不能为负数' }]}
>
<InputNumber placeholder="请输入重试次数" style={{ width: '100%' }} />
</Form.Item>
<Form.Item
label="重试间隔"
name="retryInterval"
rules={[{ type: 'number', min: 0, message: '重试间隔不能为负数' }]}
>
<InputNumber placeholder="请输入重试间隔(秒)" style={{ width: '100%' }} />
</Form.Item>
<Form.Item
label="环境变量"
name="environment"
>
<Input.TextArea placeholder="请输入环境变量" />
</Form.Item>
<Form.Item
label="成功退出码"
name="successExitCode"
>
<Input placeholder="请输入成功退出码" />
</Form.Item>
</>
)}
</>
);
};
@ -151,21 +216,8 @@ const NodeConfig: React.FC<NodeConfigProps> = ({ nodeType, form, onValuesChange
>
{renderBasicFormItems()}
<Divider />
<Form.Item
label="执行器"
name="executor"
rules={[{ required: true, message: '请选择执行器' }]}
>
<Select
placeholder="请选择执行器"
options={nodeType.executors?.map(executor => ({
label: executor.name,
value: executor.code
}))}
/>
</Form.Item>
{renderGatewayConfig()}
{renderTimerConfig()}
{renderShellExecutorConfig()}
</Form>
);