|  |  |  | 
|---|
|  |  |  | </el-form-item> | 
|---|
|  |  |  | <el-form-item> | 
|---|
|  |  |  | <el-button type="primary" @click="saveDiagram()">暂存</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="analyzeDiagram()">保存</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="analyzeDiagram()">提交</el-button> | 
|---|
|  |  |  | <el-button type="primary" @click="clearDiagram()">清空图形</el-button> | 
|---|
|  |  |  | <el-button @click="leftAlign()"> | 
|---|
|  |  |  | <i style="font-size: 1rem;" class="wt-iconfont icon-zuoduiqi"></i> | 
|---|
|  |  |  | 
|---|
|  |  |  | import {setHartBeat} from '@/commonJS/common'; | 
|---|
|  |  |  | import Cookies from 'js-cookie' | 
|---|
|  |  |  | import {getUUID} from '../../../../packages/utils' | 
|---|
|  |  |  | import Mousetrap from 'mousetrap' | 
|---|
|  |  |  | // import Mousetrap from 'mousetrap' | 
|---|
|  |  |  | // var Mousetrap = require('mousetrap'); | 
|---|
|  |  |  | // import RBDDefault from './RBD-default.json' | 
|---|
|  |  |  |  | 
|---|
|  |  |  | 
|---|
|  |  |  | productType: '', | 
|---|
|  |  |  | voteNum: '', | 
|---|
|  |  |  | repairMttcr: '', | 
|---|
|  |  |  | repairMttcrOther: '', | 
|---|
|  |  |  | repairMttcrOtherParams2: '', | 
|---|
|  |  |  | repairMttcrOtherParams3: '', | 
|---|
|  |  |  | repairDistribType: '', | 
|---|
|  |  |  | reliabDistribType: '', | 
|---|
|  |  |  | taskMtbcfOther: '', | 
|---|
|  |  |  | taskMtbcfOtherParams2: '', | 
|---|
|  |  |  | taskMtbcfOtherParams3: '', | 
|---|
|  |  |  | isRepair: 0, | 
|---|
|  |  |  | taskMtbcf: '', | 
|---|
|  |  |  | numberInputValue: '', | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | reliabDistribType: item.reliabDistribType ? item.reliabDistribType : 1, | 
|---|
|  |  |  | taskMtbcf: item.taskMtbcf, | 
|---|
|  |  |  | taskMtbcfOther: item.taskMtbcfOther, | 
|---|
|  |  |  | taskMtbcfOther2: item.taskMtbcfOtherParams2, | 
|---|
|  |  |  | taskMtbcfOther3: item.taskMtbcfOtherParams3, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | isRepair: item.isRepair, | 
|---|
|  |  |  | repairDistribType: item.repairDistribType ? item.repairDistribType : 1, | 
|---|
|  |  |  | repairMttcr: item.repairMttcr, | 
|---|
|  |  |  | repairMttcrOther: item.repairMttcrOther, | 
|---|
|  |  |  | repairMttcrOther2: item.repairMttcrOtherParams2, | 
|---|
|  |  |  | repairMttcrOther3: item.repairMttcrOtherParams3, | 
|---|
|  |  |  |  | 
|---|
|  |  |  | imgHeight: item.imgHeight, | 
|---|
|  |  |  | imgWidth: item.imgWidth, | 
|---|
|  |  |  | 
|---|
|  |  |  |  | 
|---|
|  |  |  | // 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.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) { | 
|---|
|  |  |  | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | async saveDiagram() { | 
|---|
|  |  |  | console.log(JSON.stringify(this.graph.toJSON()), 'graph.toJSON()') | 
|---|
|  |  |  | const nodes = this.graph.getNodes() | 
|---|
|  |  |  | let nodeArr2 = [] | 
|---|
|  |  |  | // 检查除当前节点之外的所有节点的包围框是否相交 | 
|---|
|  |  |  | for (const node of nodes) { | 
|---|
|  |  |  | console.log(node, 'saveDiagram node') | 
|---|
|  |  |  | if (node.getData().nodeType == 'node' && node.getData().productType != 'product_xdy' && node.getData().dataId) { | 
|---|
|  |  |  | nodeArr2.push(node.getData().dataId) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.dataForm.nodeArr = nodeArr2 | 
|---|
|  |  |  | //   获取所有子节点 | 
|---|
|  |  |  | this.getNodeArr() | 
|---|
|  |  |  | this.dataForm.content = JSON.stringify(this.graph.toJSON()) | 
|---|
|  |  |  | this.dataForm.urlPref = window.SITE_CONFIG['apiURL'] | 
|---|
|  |  |  | console.log(this.dataForm, 'dataFrom') | 
|---|
|  |  |  | 
|---|
|  |  |  | } | 
|---|
|  |  |  | }) | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | async analyzeDiagram() { | 
|---|
|  |  |  | console.log(JSON.stringify(this.graph.toJSON()), 'graph.toJSON()') | 
|---|
|  |  |  | getNodeArr(){ | 
|---|
|  |  |  | const nodes = this.graph.getNodes() | 
|---|
|  |  |  | let nodeArr2 = [] | 
|---|
|  |  |  | // 检查除当前节点之外的所有节点的包围框是否相交 | 
|---|
|  |  |  | for (const node of nodes) { | 
|---|
|  |  |  | console.log(node, 'saveDiagram node') | 
|---|
|  |  |  | if (node.getData().nodeType == 'node'  && node.getData().dataId) { | 
|---|
|  |  |  | nodeArr2.push(node.getData().dataId) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.dataForm.nodeArr = nodeArr2 | 
|---|
|  |  |  | }, | 
|---|
|  |  |  | async analyzeDiagram() { | 
|---|
|  |  |  | console.log(JSON.stringify(this.graph.toJSON()), 'graph.toJSON()') | 
|---|
|  |  |  | // 检查除当前节点之外的所有节点的包围框是否相交 | 
|---|
|  |  |  | //   获取所有子节点 | 
|---|
|  |  |  | this.getNodeArr() | 
|---|
|  |  |  | const nodes = this.graph.getNodes() | 
|---|
|  |  |  | for (const node of nodes) { | 
|---|
|  |  |  | if(node.getData().nodeType === 'dashedBox'){ | 
|---|
|  |  |  | 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) | 
|---|
|  |  |  | } | 
|---|
|  |  |  | } | 
|---|
|  |  |  | this.dataForm.nodeArr = nodeArr2 | 
|---|
|  |  |  | this.dataForm.content = JSON.stringify(this.graph.toJSON()) | 
|---|
|  |  |  | this.dataForm.urlPref = window.SITE_CONFIG['apiURL'] | 
|---|
|  |  |  | await this.$http['post'](`/taskReliability/ModelLine/analyze`, this.dataForm).then(async res => { | 
|---|