Browse Source

fix: 修复没有打开过drawer,无法获取全局参数的问题

pull/273/head
zhaowei 6 months ago
parent
commit
746297a3e0
2 changed files with 53 additions and 18 deletions
  1. +52
    -18
      react-ui/src/pages/Pipeline/Info/index.jsx
  2. +1
    -0
      react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx

+ 52
- 18
react-ui/src/pages/Pipeline/Info/index.jsx View File

@@ -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>
);


+ 1
- 0
react-ui/src/pages/Pipeline/components/PipelineNodeDrawer/index.tsx View File

@@ -77,6 +77,7 @@ const PipelineNodeParameter = forwardRef(({ onFormChange }: PipelineNodeParamete

const res = {
...omit(stagingItem, ['control_strategy', 'task_info', 'in_parameters', 'out_parameters']),
...omit(fields, ['control_strategy', 'task_info', 'in_parameters', 'out_parameters']),
task_info: task_info,
control_strategy: control_strategy,
in_parameters: in_parameters,


Loading…
Cancel
Save