Browse Source

fix this issue (#8332)

calvin 3 years ago
parent
commit
42aab0f47a

+ 23 - 4
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/canvas/canvas.vue

@@ -304,7 +304,7 @@
 
 
         // Remove all tools when the mouse leaving
         // Remove all tools when the mouse leaving
         this.graph.on('node:mouseleave', ({ node }) => {
         this.graph.on('node:mouseleave', ({ node }) => {
-          node.removeTools()
+          node.removeTool('button')
         })
         })
       },
       },
       /**
       /**
@@ -372,6 +372,17 @@
           node.setData({ taskName: name })
           node.setData({ taskName: name })
         }
         }
       },
       },
+      setNodeForbiddenStatus (id, flag) {
+        id += ''
+        const node = this.graph.getCellById(id)
+        if (node) {
+          if (flag) {
+            node.attr('rect/fill', '#c4c4c4')
+          } else {
+            node.attr('rect/fill', '#ffffff')
+          }
+        }
+      },
       /**
       /**
        * Convert the graph to JSON
        * Convert the graph to JSON
        * @return {{cells:Cell[]}}
        * @return {{cells:Cell[]}}
@@ -529,20 +540,22 @@
           console.warn(`taskType:${taskType} is invalid!`)
           console.warn(`taskType:${taskType} is invalid!`)
           return
           return
         }
         }
-        const node = this.genNodeJSON(id, taskType, '', coordinate)
+        const node = this.genNodeJSON(id, taskType, '', false, coordinate)
         this.graph.addNode(node)
         this.graph.addNode(node)
       },
       },
       /**
       /**
        * generate node json
        * generate node json
        * @param {number|string} id
        * @param {number|string} id
        * @param {string} taskType
        * @param {string} taskType
+       * @param {boolean} forbidden flag
        * @param {{x:number;y:number}} coordinate Default is { x: 100, y: 100 }
        * @param {{x:number;y:number}} coordinate Default is { x: 100, y: 100 }
        */
        */
-      genNodeJSON (id, taskType, taskName, coordinate = { x: 100, y: 100 }) {
+      genNodeJSON (id, taskType, taskName, flag, coordinate = { x: 100, y: 100 }) {
         id += ''
         id += ''
         const url = require(`../images/task-icos/${taskType.toLocaleLowerCase()}.png`)
         const url = require(`../images/task-icos/${taskType.toLocaleLowerCase()}.png`)
         const truncation = taskName ? this.truncateText(taskName, 18) : id
         const truncation = taskName ? this.truncateText(taskName, 18) : id
-        return {
+
+        const nodeJson = {
           id: id,
           id: id,
           shape: X6_NODE_NAME,
           shape: X6_NODE_NAME,
           x: coordinate.x,
           x: coordinate.x,
@@ -561,6 +574,12 @@
             }
             }
           }
           }
         }
         }
+
+        if (flag) {
+          nodeJson.attrs.rect = { fill: '#c4c4c4' }
+        }
+
+        return nodeJson
       },
       },
       /**
       /**
        * generate edge json
        * generate edge json

+ 3 - 0
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue

@@ -270,6 +270,7 @@
       addTaskInfo ({ item }) {
       addTaskInfo ({ item }) {
         this.addTask(item)
         this.addTask(item)
         this.$refs.canvas.setNodeName(item.code, item.name)
         this.$refs.canvas.setNodeName(item.code, item.name)
+        this.$refs.canvas.setNodeForbiddenStatus(item.code, item.flag === 'NO')
         this.taskDrawer = false
         this.taskDrawer = false
       },
       },
       closeTaskDrawer ({ flag }) {
       closeTaskDrawer ({ flag }) {
@@ -413,6 +414,7 @@
             task.code,
             task.code,
             task.taskType,
             task.taskType,
             task.name,
             task.name,
+            task.flag === 'NO',
             {
             {
               x: location.x,
               x: location.x,
               y: location.y
               y: location.y
@@ -420,6 +422,7 @@
           )
           )
           nodes.push(node)
           nodes.push(node)
         })
         })
+
         connects
         connects
           .filter((r) => !!r.preTaskCode)
           .filter((r) => !!r.preTaskCode)
           .forEach((c) => {
           .forEach((c) => {