微调
This commit is contained in:
@@ -36,6 +36,7 @@ import CustomEdge from './RemoveableEdge.vue' // 导入自定义连接线组件
|
||||
import { jwtUtil } from '@/utils/jwtUtil'
|
||||
import { useCheckStore } from '@/stores/modules/check'
|
||||
import { ipc } from '@/utils/ipcRenderer'
|
||||
import { fa, tr } from 'element-plus/es/locale'
|
||||
const vueFlowElement = ref(442)
|
||||
const checkStore = useCheckStore()
|
||||
const dialogVisible = ref(false)
|
||||
@@ -68,7 +69,7 @@ const prop = defineProps({
|
||||
const dialogHeight = ref(600)
|
||||
|
||||
// 初始化 VueFlow,注册自定义连线类型
|
||||
const { edges, setViewport } = useVueFlow({
|
||||
const { edges, setViewport,removeEdges } = useVueFlow({
|
||||
edgeTypes: {
|
||||
default: CustomEdge
|
||||
}
|
||||
@@ -295,57 +296,122 @@ const createLabel3 = (text: string) => {
|
||||
|
||||
const handleConnectStart = (params: any) => {
|
||||
onPaneReady()
|
||||
|
||||
}
|
||||
|
||||
// const handleConnectEnd = (params: any) => {
|
||||
// console.log('handleConnectEnd',edges.value,edges.value.length)
|
||||
// onPaneReady()
|
||||
// }
|
||||
|
||||
// const handleConnect = (params: any) => {
|
||||
// const sourceNode = nodes.value.find(node => node.id === params.source)
|
||||
// const targetNode = nodes.value.find(node => node.id === params.target)
|
||||
// const isValidConnection = sourceNode?.type === 'input' && targetNode?.type === 'output'
|
||||
// if (!isValidConnection) {
|
||||
// removeEdge(params)
|
||||
// ElMessage.warning('只能从被检通道连接到标准通道')
|
||||
// return
|
||||
// }
|
||||
|
||||
|
||||
// // 过滤掉当前连接,检查是否还有重复的
|
||||
// const existingEdges = edges.value.filter(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
|
||||
// const duplicateTarget = existingEdges.filter(edge => edge.target === params.target).length > 1
|
||||
|
||||
// if (duplicateSource) {
|
||||
// removeEdge(params)
|
||||
// ElMessage.warning('该被检通道已经连接,不能重复连接')
|
||||
// return
|
||||
// }
|
||||
|
||||
// if (duplicateTarget) {
|
||||
// removeEdge(params)
|
||||
// ElMessage.warning('该标准通道已经连接,不能重复连接')
|
||||
// return
|
||||
// }
|
||||
// }
|
||||
// }
|
||||
|
||||
// // 删除不合法连接
|
||||
// const removeEdge = (params: any) => {
|
||||
// // console.log('删除不合法连接:', params);
|
||||
// // console.log('删除连接信息:', edges.value);
|
||||
// // console.log('11111===', edges.value.length);
|
||||
// const edgeIndex = edges.value.findIndex(edge => edge.source === params.source && edge.target === params.target)
|
||||
// console.log('删除连接索引:', edgeIndex);
|
||||
// if (edgeIndex !== -1) {
|
||||
// edges.value.splice(edgeIndex , 1)
|
||||
// }
|
||||
|
||||
// }
|
||||
|
||||
|
||||
|
||||
// 添加一个响应式变量来存储需要删除的连接信息
|
||||
const pendingRemoveEdge = ref<any>(null)
|
||||
|
||||
const handleConnectEnd = (params: any) => {
|
||||
// 在连接结束时检查是否有待删除的连接
|
||||
if (pendingRemoveEdge.value) {
|
||||
removeEdge(pendingRemoveEdge.value)
|
||||
pendingRemoveEdge.value = null // 清空待删除连接
|
||||
}
|
||||
|
||||
onPaneReady()
|
||||
}
|
||||
|
||||
const handleConnect = (params: any) => {
|
||||
const sourceNode = nodes.value.find(node => node.id === params.source)
|
||||
const targetNode = nodes.value.find(node => node.id === params.target)
|
||||
|
||||
// 连接规则验证
|
||||
const isValidConnection = sourceNode?.type === 'input' && targetNode?.type === 'output'
|
||||
|
||||
|
||||
if (!isValidConnection) {
|
||||
removeEdge(params)
|
||||
// 设置待删除连接而不是立即删除
|
||||
pendingRemoveEdge.value = params
|
||||
ElMessage.warning('只能从被检通道连接到标准通道')
|
||||
return
|
||||
}
|
||||
|
||||
// 过滤掉当前连接,检查是否还有重复的
|
||||
const existingEdges = edges.value.filter(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
|
||||
const duplicateTarget = existingEdges.filter(edge => edge.target === params.target).length > 1
|
||||
|
||||
if (duplicateSource) {
|
||||
removeEdge(params)
|
||||
// 设置待删除连接而不是立即删除
|
||||
pendingRemoveEdge.value = params
|
||||
ElMessage.warning('该被检通道已经连接,不能重复连接')
|
||||
return
|
||||
}
|
||||
|
||||
if (duplicateTarget) {
|
||||
removeEdge(params)
|
||||
|
||||
// 设置待删除连接而不是立即删除
|
||||
pendingRemoveEdge.value = params
|
||||
ElMessage.warning('该标准通道已经连接,不能重复连接')
|
||||
return
|
||||
}
|
||||
}
|
||||
|
||||
// 如果没有问题,清空待删除连接
|
||||
pendingRemoveEdge.value = null
|
||||
}
|
||||
|
||||
// 删除不合法连接
|
||||
const removeEdge = (params: any) => {
|
||||
console.log('删除不合法连接:', params);
|
||||
console.log('删除连接信息:', edges.value);
|
||||
const edgeIndex = edges.value.findIndex(edge => edge.source === params.source && edge.target === params.target)
|
||||
console.log('删除连接索引:', edgeIndex);
|
||||
if (edgeIndex !== -1) {
|
||||
edges.value.splice(edgeIndex, 1)
|
||||
}
|
||||
|
||||
|
||||
if (edgeIndex !== -1) {
|
||||
edges.value.splice(edgeIndex, 1)
|
||||
}
|
||||
}
|
||||
|
||||
const nodes = ref([])
|
||||
|
||||
Reference in New Issue
Block a user