| | |
| | | import {setHartBeat} from '@/commonJS/common'; |
| | | import Cookies from 'js-cookie' |
| | | import {getUUID} from '../../../../packages/utils' |
| | | import Mousetrap from 'mousetrap' |
| | | // var Mousetrap = require('mousetrap'); |
| | | // import RBDDefault from './RBD-default.json' |
| | | |
| | | export default { |
| | |
| | | }, |
| | | data() { |
| | | return { |
| | | nodeX:'', |
| | | nodeY:'', |
| | | isFirstLoad: true, |
| | | hasMoveNode: false, |
| | | hasMoveSingleNode: null, |
| | |
| | | anchor: 'center', |
| | | connectionPoint: 'anchor', |
| | | allowBlank: false, |
| | | allowLoop:false, // 是否允许创建循环连线,即边的起始节点和终止节点为同一节点,默认为 true |
| | | snap: { |
| | | radius: 20, |
| | | }, |
| | |
| | | stencil.load(imageNodes, 'group1') |
| | | stencil.load(imageNodes2, 'group2') |
| | | |
| | | this.graph.bindKey(['meta+c', 'ctrl+up'], () => { |
| | | console.log('按了小键盘的UP键') |
| | | }) |
| | | // konami code! |
| | | // 单击node节点 |
| | | this.graph.on('node:click', ({ e, x, y, node, view}) => { |
| | | Mousetrap.bind('up', function(e) { |
| | | e.preventDefault(); |
| | | node.getBBox().x |
| | | node.getBBox().y |
| | | setTimeout(()=>{ |
| | | node.position(node.getBBox().x,node.getBBox().y -0.5) |
| | | console.log(x,y,'按下了↑键 up'); |
| | | },100) |
| | | }) |
| | | Mousetrap.bind('down', function(e) { |
| | | e.preventDefault(); |
| | | setTimeout(()=>{ |
| | | node.position(node.getBBox().x,node.getBBox().y+0.5) |
| | | console.log(x,y,'按下了↓键 down'); |
| | | },100) |
| | | |
| | | }) |
| | | Mousetrap.bind('left', function(e) { |
| | | e.preventDefault(); |
| | | setTimeout(()=>{ |
| | | node.position(node.getBBox().x-0.5,node.getBBox().y) |
| | | console.log(x,y,'按下了←键 left'); |
| | | },100) |
| | | |
| | | }) |
| | | Mousetrap.bind('right', function(e) { |
| | | e.preventDefault(); |
| | | setTimeout(()=>{ |
| | | node.position(node.getBBox().x+0.5,node.getBBox().y) |
| | | console.log(x,y,'按下了→键 right'); |
| | | },100) |
| | | }) |
| | | }) |
| | | this.graph.bindKey(['meta+c', 'ctrl+c'], () => { |
| | | const cells = this.graph.getSelectedCells() |
| | | if (cells.length) { |
| | |
| | | // |
| | | // }) |
| | | }) |
| | | // 单击node节点 |
| | | this.graph.on('node:click', ({node}) => { |
| | | }) |
| | | |
| | | // 控制连接桩显示/隐藏 |
| | | this.graph.on('node:delete', ({view, e}) => { |
| | | e.stopPropagation() |
| | |
| | | let nodeArr2 = [] |
| | | // 检查除当前节点之外的所有节点的包围框是否相交 |
| | | for (const node of nodes) { |
| | | if(node.getData().nodeType === 'dashedBox'){ |
| | | this.$message({message: '该模型中存在虚框,无法保存', type: 'warning'}) |
| | | return false; // 取消添加节点操作 |
| | | } |
| | | if(node.getData().nodeType === 'vote'){ |
| | | const edges = this.graph.getConnectedEdges(node); |
| | | if(node.getData().voteNum>=edges.length){ |
| | | this.$message({message: '表决数量不能高于该节点的进线数量', type: 'warning'}) |
| | | return false; // 取消添加节点操作 |
| | | } |
| | | } |
| | | if (node.getData().nodeType === 'node' && node.getData().productType !== 'product_xdy' && node.getData().dataId) { |
| | | nodeArr2.push(node.getData().dataId) |
| | | } |