|
|
|
@@ -54,11 +54,20 @@ const EditPipeline = () => { |
|
|
|
const onDragEnd = (val) => { |
|
|
|
const { x, y } = val; |
|
|
|
const point = graph.getPointByClient(x, y); |
|
|
|
|
|
|
|
let label = val.label; |
|
|
|
const data = graph.save(); |
|
|
|
const nodeLabels = data.nodes.map((v) => v.label); |
|
|
|
if (nodeLabels.includes(label)) { |
|
|
|
label += '-' + s8(); |
|
|
|
} |
|
|
|
|
|
|
|
// 元模型 |
|
|
|
const model = { |
|
|
|
...val, |
|
|
|
x: point.x, |
|
|
|
y: point.y, |
|
|
|
label, |
|
|
|
id: val.component_name + '-' + s8(), |
|
|
|
isCluster: false, |
|
|
|
formError: true, |
|
|
|
@@ -90,24 +99,29 @@ const EditPipeline = () => { |
|
|
|
|
|
|
|
// 保存 |
|
|
|
const savePipeline = async (isBack) => { |
|
|
|
const [globalParamRes, globalParamError] = await to(paramsDrawerRef.current.validateFields()); |
|
|
|
if (globalParamError) { |
|
|
|
message.error('全局参数配置有误'); |
|
|
|
openParamsDrawer(); |
|
|
|
return; |
|
|
|
} |
|
|
|
closeParamsDrawer(); |
|
|
|
// 验证全局参数 |
|
|
|
// 现在改为关闭的时候就验证了 |
|
|
|
// const [globalParamRes, globalParamError] = await to(paramsDrawerRef.current.validateFields()); |
|
|
|
// if (globalParamError) { |
|
|
|
// message.error('全局参数配置有误'); |
|
|
|
// openParamsDrawer(); |
|
|
|
// return; |
|
|
|
// } |
|
|
|
// closeParamsDrawer(); |
|
|
|
|
|
|
|
const [propsRes, propsError] = await to(propsRef.current.validateFields()); |
|
|
|
if (propsError) { |
|
|
|
message.error('节点必填项必须配置'); |
|
|
|
return; |
|
|
|
} |
|
|
|
propsRef.current.close(); |
|
|
|
// 以前没有遮挡【保存】按钮时有用 |
|
|
|
// 验证节点必填参数 |
|
|
|
// const [propsRes, propsError] = await to(propsRef.current.validateFields()); |
|
|
|
// if (propsError) { |
|
|
|
// message.error('节点必填项必须配置'); |
|
|
|
// return; |
|
|
|
// } |
|
|
|
// propsRef.current.close(); |
|
|
|
|
|
|
|
setTimeout(() => { |
|
|
|
const data = graph.save(); |
|
|
|
// console.log(data); |
|
|
|
// 验证节点必填参数 |
|
|
|
const errorNode = data.nodes.find((item) => item.formError === true); |
|
|
|
if (errorNode) { |
|
|
|
message.error(`【${errorNode.label}】节点配置验证失败`); |
|
|
|
@@ -117,11 +131,25 @@ const EditPipeline = () => { |
|
|
|
} |
|
|
|
return; |
|
|
|
} |
|
|
|
|
|
|
|
// 验证节点名称是否有重命名 |
|
|
|
const nodeLabels = data.nodes.map((v) => v.label); |
|
|
|
for (let i = 0; i < nodeLabels.length; i++) { |
|
|
|
const current = nodeLabels[i]; |
|
|
|
for (let j = i + 1; j < nodeLabels.length; j++) { |
|
|
|
const next = nodeLabels[j]; |
|
|
|
if (current === next) { |
|
|
|
message.error(`存在重名的【${current}】节点`); |
|
|
|
return; |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
const params = { |
|
|
|
...locationParams, |
|
|
|
name: workflowInfo?.name, |
|
|
|
dag: data, |
|
|
|
global_param: globalParamRes.global_param, |
|
|
|
global_param: globalParam, |
|
|
|
}; |
|
|
|
saveWorkflow(params).then((ret) => { |
|
|
|
message.success('保存成功'); |
|
|
|
@@ -299,13 +327,19 @@ const EditPipeline = () => { |
|
|
|
const openNodeDrawer = (node, validate = false) => { |
|
|
|
// 获取所有的上游节点 |
|
|
|
const parentNodes = findAllParentNodes(graph, node); |
|
|
|
// 如果没有打开过全局参数抽屉,获取不到全局参数 |
|
|
|
const globalParams = |
|
|
|
paramsDrawerRef.current.getFieldsValue().global_param || globalParamRef.current; |
|
|
|
// q全局参数 |
|
|
|
const globalParams = globalParamRef.current; |
|
|
|
// 打开节点编辑抽屉 |
|
|
|
propsRef.current.showDrawer(node.getModel(), globalParams, parentNodes, validate); |
|
|
|
}; |
|
|
|
|
|
|
|
// 关闭全局参数节点,获取全局参数 |
|
|
|
const closeGlobalParamsDrawer = () => { |
|
|
|
const { global_param } = paramsDrawerRef.current.getFieldsValue(); |
|
|
|
setGlobalParam(global_param); |
|
|
|
closeParamsDrawer(); |
|
|
|
}; |
|
|
|
|
|
|
|
// 初始化图 |
|
|
|
const initGraph = () => { |
|
|
|
const contextMenu = initMenu(); |
|
|
|
@@ -730,7 +764,7 @@ const EditPipeline = () => { |
|
|
|
ref={paramsDrawerRef} |
|
|
|
open={paramsDrawerOpen} |
|
|
|
globalParam={globalParam} |
|
|
|
onClose={closeParamsDrawer} |
|
|
|
onClose={closeGlobalParamsDrawer} |
|
|
|
></GlobalParamsDrawer> |
|
|
|
</div> |
|
|
|
); |
|
|
|
|