diff --git a/frontend/src/pages/Deploy/Deployment/List/components/DeploymentConfigModal.tsx b/frontend/src/pages/Deploy/Deployment/List/components/DeploymentConfigModal.tsx index 993f6108..75f59991 100644 --- a/frontend/src/pages/Deploy/Deployment/List/components/DeploymentConfigModal.tsx +++ b/frontend/src/pages/Deploy/Deployment/List/components/DeploymentConfigModal.tsx @@ -9,6 +9,8 @@ import {BetaSchemaForm} from '@ant-design/pro-form'; import {convertJsonSchemaToColumns} from '@/utils/jsonSchemaUtils'; import {Editor} from '@/components/Editor'; import type {JsonNode} from '@/types/common'; +import {getPublishedDefinitions} from '@/pages/Workflow/Definition/service'; +import type {WorkflowDefinition} from '@/pages/Workflow/Definition/types'; import './styles.less'; const {Option} = Select; @@ -34,6 +36,7 @@ const DeploymentConfigModal: React.FC = ({ const [selectedTemplate, setSelectedTemplate] = useState(); const [buildVariables, setBuildVariables] = useState({}); const [loading, setLoading] = useState(false); + const [workflowDefinitions, setWorkflowDefinitions] = useState([]); const [fullscreenEditor, setFullscreenEditor] = useState<{ key: string; title: string; @@ -60,13 +63,26 @@ const DeploymentConfigModal: React.FC = ({ } }, []); + // 获取已发布的工作流列表 + const fetchWorkflowDefinitions = useCallback(async () => { + try { + const data = await getPublishedDefinitions(0); + setWorkflowDefinitions(data); + } catch (error) { + message.error('获取工作流列表失败'); + } + }, []); + // 在模态框显示时获取数据 useEffect(() => { if (open) { fetchApplications(); fetchTemplates(); + if (!isEdit) { + fetchWorkflowDefinitions(); + } } - }, [open, fetchApplications, fetchTemplates]); + }, [open, fetchApplications, fetchTemplates, fetchWorkflowDefinitions, isEdit]); // 初始化表单数据 useEffect(() => { @@ -140,8 +156,8 @@ const DeploymentConfigModal: React.FC = ({ throw new Error('未找到匹配配置模板'); } - // 从 formValues 中提取构建变量(排除 applicationId 和 enabled) - const { applicationId, enabled, ...formBuildVariables } = formValues; + // 从 formValues 中提取构建变量(排除 applicationId、enabled 和 workflowDefinitionId) + const { applicationId, enabled, workflowDefinitionId, ...formBuildVariables } = formValues; // 构建提交数据 const submitData: CreateDeploymentConfigRequest = { @@ -153,7 +169,8 @@ const DeploymentConfigModal: React.FC = ({ ...formBuildVariables, // 表单中的值 ...buildVariables // 编辑器中的值 } as Record, // 使用类型断言确保类型兼容 - enabled + enabled, + workflowDefinitionId: isEdit ? initialValues.workflowDefinitionId : workflowDefinitionId }; if (isEdit) { @@ -239,6 +256,28 @@ const DeploymentConfigModal: React.FC = ({ + {/* 工作流选择 */} + {!isEdit && ( + + + + )} + {/* 动态构建配置 */} {selectedTemplate?.buildVariablesSchema?.properties && ( <>