微调
This commit is contained in:
@@ -377,28 +377,34 @@ const handleConnect = (params: any) => {
|
|||||||
return
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 过滤掉当前连接,检查是否还有重复的
|
// 检查是否已经存在完全相同的连接(精确匹配源和目标)
|
||||||
const existingEdges = edges.value.filter(edge => edge.source === params.source || edge.target === params.target)
|
const isAlreadyConnected = edges.value.some(edge =>
|
||||||
|
edge.source === params.source && edge.target === params.target
|
||||||
// 如果同源或同目标的连接超过1个,说明有重复
|
)
|
||||||
if (existingEdges.length > 1) {
|
|
||||||
const duplicateSource = existingEdges.filter(edge => edge.source === params.source).length > 1
|
if (isAlreadyConnected) {
|
||||||
const duplicateTarget = existingEdges.filter(edge => edge.target === params.target).length > 1
|
// 设置待删除连接而不是立即删除
|
||||||
|
pendingRemoveEdge.value = params
|
||||||
|
ElMessage.warning('这两个通道已经连接,不能重复连接')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (duplicateSource) {
|
// 检查源节点是否已经被连接(一个被检通道只能连接一个标准通道)
|
||||||
// 设置待删除连接而不是立即删除
|
const isSourceConnected = edges.value.some(edge => edge.source === params.source)
|
||||||
pendingRemoveEdge.value = params
|
if (isSourceConnected) {
|
||||||
ElMessage.warning('该被检通道已经连接,不能重复连接')
|
// 设置待删除连接而不是立即删除
|
||||||
return
|
pendingRemoveEdge.value = params
|
||||||
}
|
ElMessage.warning('该被检通道已经连接,不能重复连接')
|
||||||
|
return
|
||||||
|
}
|
||||||
|
|
||||||
if (duplicateTarget) {
|
// 检查目标节点是否已经被连接(一个标准通道只能连接一个被检通道)
|
||||||
|
const isTargetConnected = edges.value.some(edge => edge.target === params.target)
|
||||||
// 设置待删除连接而不是立即删除
|
if (isTargetConnected) {
|
||||||
pendingRemoveEdge.value = params
|
// 设置待删除连接而不是立即删除
|
||||||
ElMessage.warning('该标准通道已经连接,不能重复连接')
|
pendingRemoveEdge.value = params
|
||||||
return
|
ElMessage.warning('该标准通道已经连接,不能重复连接')
|
||||||
}
|
return
|
||||||
}
|
}
|
||||||
|
|
||||||
// 如果没有问题,清空待删除连接
|
// 如果没有问题,清空待删除连接
|
||||||
|
|||||||
Reference in New Issue
Block a user