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