Commit 0eba078b authored by 邓超's avatar 邓超

fix: 在调用接口后在删除节点,大保存添加验证提示

parent e45fad1c
Pipeline #71991 passed with stages
......@@ -78,17 +78,17 @@ const FlowChart = props => {
}
}, [treeVisible]);
// 监听删除,给删除数组里添加删除id
useEffect(() => {
if (deleteLine) {
setDeleteLines([...DeleteLines, deleteLine]);
}
}, [deleteLine]);
useEffect(() => {
if (deleteNode) {
setDeleteNodes([...DeleteNodes, deleteNode]);
}
}, [deleteNode]);
// // 监听删除,给删除数组里添加删除id
// useEffect(() => {
// if (deleteLine) {
// setDeleteLines([...DeleteLines, deleteLine]);
// }
// }, [deleteLine]);
// useEffect(() => {
// if (deleteNode) {
// setDeleteNodes([...DeleteNodes, deleteNode]);
// }
// }, [deleteNode]);
// 初始化
useEffect(() => {
// 初始化流程图
......@@ -96,50 +96,66 @@ const FlowChart = props => {
initPalette();
myOverview = objGo(go.Overview, 'myOverviewDiv', { observed: diagram });
// 监听节点或线的删除事件
diagram.addDiagramListener('SelectionDeleted', e => {
let delNodes = [];
let delLinks = [];
e.subject.each(n => {
if (n.data.LineId) {
delLinks.push(n.data.LineId);
}
if (n.data.ActivityId) {
delNodes.push(n.data.ActivityId);
}
// diagram.addDiagramListener('SelectionDeleted', e => {
// let delNodes = [];
// let delLinks = [];
// e.subject.each(n => {
// if (n.data.LineId) {
// delLinks.push(n.data.LineId);
// }
// if (n.data.ActivityId) {
// delNodes.push(n.data.ActivityId);
// }
// 如果删除得节点不是新增得就给id放入到删除节点数组中
if (n.data.NodeId && !AddNodes.some(item => item === n.data.NodeId)) {
setTimeout(() => {
setDeleteNode(n.data.NodeId);
}, 0);
}
if (n.data.LineKey) {
setTimeout(() => {
setDeleteLine(n.data.LineId);
}, 0);
// // 如果删除得节点不是新增得就给id放入到删除节点数组中
// if (n.data.NodeId && !AddNodes.some(item => item === n.data.NodeId)) {
// setTimeout(() => {
// setDeleteNode(n.data.NodeId);
// }, 0);
// }
// if (n.data.LineKey) {
// setTimeout(() => {
// setDeleteLine(n.data.LineId);
// }, 0);
// }
// });
// if (delNodes.length === 0) {
// return;
// }
// DeleteFlowNodes({ ActivityIds: delNodes, LineIds: delLinks }).then(res => {
// if (res.code === 0) {
// message.success('删除成功');
// } else {
// // message.error(res.msg);
// message.error({
// content: <div style={{ whiteSpace: 'pre-line', textAlign: 'justify' }}>{res.msg}</div>,
// });
// }
// });
// console.log(delNodes, delLinks, 'fffff');
// });
// 监听节点或线的删除前事件
diagram.commandHandler.canDeleteSelection = () => {
let delNodes = new Set();
let delNodeIds = new Set();
let delLinks = new Set();
diagram.selection.toArray().forEach(item => {
if (item.data.ActivityId) {
delNodes.add(item.data.ActivityId);
delNodeIds.add(item.data.NodeId);
item.findLinksConnected().each(link => {
if (link.data.LineId) {
delLinks.add(link.data.LineId);
}
});
if (delNodes.length === 0) {
return;
}
DeleteFlowNodes({ ActivityIds: delNodes, LineIds: delLinks }).then(res => {
if (res.code === 0) {
message.success('删除成功');
} else {
// message.error(res.msg);
message.error({ content: <div style={{ whiteSpace: 'pre-line', textAlign: 'justify' }}>{res.msg}</div> });
if (item.data.LineId) {
delLinks.add(item.data.LineId);
}
});
console.log(delNodes, delLinks, 'fffff');
});
// 监听节点或线的删除前事件
diagram.commandHandler.canDeleteSelection = () =>
// 用例获取选中的节点或线
diagram.selection.all(e => {
// 判断是否存在不允许删除的节点或线
showDeleteConfirm(e.data);
showDeleteConfirm([...delNodeIds], [...delNodes], [...delLinks]);
return false;
});
};
// 监听线,连接线的时候加上text属性
diagram.addDiagramListener('LinkDrawn', e => {
// e.subject.data.text = '';
......@@ -307,7 +323,7 @@ const FlowChart = props => {
};
}, [currentFlowData]);
// 删除提醒
const showDeleteConfirm = val => {
const showDeleteConfirm = (delNodeIds, delNodes, delLinks) => {
confirm({
title: '确定要删除所选中的节点吗?',
icon: <ExclamationCircleOutlined />,
......@@ -316,29 +332,31 @@ const FlowChart = props => {
okType: 'danger',
cancelText: '否',
onOk() {
delNode(val);
delNode(delNodeIds, delNodes, delLinks);
},
onCancel() {},
});
};
// 删除节点
const delNode = val => {
const delNode = (delNodeIds, delNodes, delLinks) => {
setShowLeaveTip(true);
// leaveCallBack(true);
if (delNodes.length === 0) {
diagram.commandHandler.deleteSelection();
// if (val.LineId) {
// diagram.commandHandler.deleteSelection();
// return;
// }
// DeleteFlowNode({ activityId: val.ActivityId }).then(res => {
// if (res.code === 0) {
// message.success('删除成功');
// diagram.commandHandler.deleteSelection();
// } else {
return;
}
DeleteFlowNodes({ ActivityIds: delNodes, LineIds: delLinks }).then(res => {
if (res.code === 0) {
diagram.commandHandler.deleteSelection();
setDeleteNodes([...DeleteNodes, ...delNodeIds]);
setDeleteLines([...DeleteLines, ...delLinks]);
message.success('删除成功');
} else {
// message.error(res.msg);
// }
// });
message.error({
content: <div style={{ whiteSpace: 'pre-line', textAlign: 'justify' }}>{res.msg}</div>,
});
}
});
};
const animateFadeDown = e => {
......@@ -1106,8 +1124,13 @@ const FlowChart = props => {
// return;
// }
let list = new Set([]);
let errorList = new Set();
diagramObj.nodeDataArray.forEach(item => {
if (item.NodeType === '1' || item.NodeType === '0' || item.NodeType === '1') {
if (!item.TableName || !item.Fields) {
errorList.add(item.NodeName);
}
}
if ((item.NodeType === '20' || item.NodeType === '21') && item.RuleList) {
item.RuleList.forEach(ele => {
if (!ele.RuleName) {
......@@ -1132,6 +1155,12 @@ const FlowChart = props => {
}
item.CarbonCopyPeopleList = item.CarbonCopyPeopleList.map(ele => Number(ele.value));
});
if ([...errorList].length > 0) {
errorList.forEach(item => {
message.error(`请检查${item}节点存在未配置项`);
});
return;
}
if ([...list].length > 0) {
list.forEach(item => {
message.error(`请检查${item}规则配置`);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment