wente
2024-07-01 f9d81769fb35d2fea8fb0da9162a39de4208b337
模型节点有虚框不能保存
表决数量要小于进线
1个文件已修改
58 ■■■■ 已修改文件
web/src/views/modules/taskReliability/RBD-edit-img.vue 58 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
web/src/views/modules/taskReliability/RBD-edit-img.vue
@@ -63,6 +63,8 @@
  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 {
@@ -507,6 +509,8 @@
    },
    data() {
      return {
        nodeX:'',
        nodeY:'',
        isFirstLoad: true,
        hasMoveNode: false,
        hasMoveSingleNode: null,
@@ -823,6 +827,7 @@
            anchor: 'center',
            connectionPoint: 'anchor',
            allowBlank: false,
            allowLoop:false, // 是否允许创建循环连线,即边的起始节点和终止节点为同一节点,默认为 true
            snap: {
              radius: 20,
            },
@@ -1057,10 +1062,42 @@
        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) {
@@ -1174,9 +1211,7 @@
          //
          // })
        })
        // 单击node节点
        this.graph.on('node:click', ({node}) => {
        })
        // 控制连接桩显示/隐藏
        this.graph.on('node:delete', ({view, e}) => {
          e.stopPropagation()
@@ -1435,6 +1470,17 @@
        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)
          }