This is an automated email from the ASF dual-hosted git repository.

leonbao pushed a commit to branch dev
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git


The following commit(s) were added to refs/heads/dev by this push:
     new 14feda9  Improve workflow lineage interaction (#6230)
14feda9 is described below

commit 14feda996df13fa3013f917ef9d89e69e46a0210
Author: Wangyizhi1 <[email protected]>
AuthorDate: Thu Sep 16 19:41:16 2021 +0800

    Improve workflow lineage interaction (#6230)
---
 .../home/pages/projects/pages/kinship/index.vue    | 10 ++-
 .../src/js/conf/home/store/kinship/actions.js      | 73 +++++++++++++++++-----
 2 files changed, 63 insertions(+), 20 deletions(-)

diff --git 
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/kinship/index.vue 
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/kinship/index.vue
index 68d06e6..c2404dc 100644
--- 
a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/kinship/index.vue
+++ 
b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/kinship/index.vue
@@ -73,7 +73,7 @@
     },
     props: {},
     methods: {
-      ...mapActions('kinship', ['getWorkFlowList', 'getWorkFlowDAG']),
+      ...mapActions('kinship', ['getWorkFlowList', 'getWorkFlowDAG', 
'getWorkFlowDAGAll']),
       /**
        * init
        */
@@ -83,7 +83,7 @@
         Promise.all([
           // get process definition
           this.getWorkFlowList(),
-          this.getWorkFlowDAG()
+          this.getWorkFlowDAGAll()
         ]).then((data) => {
           this.isLoading = false
         }).catch(() => {
@@ -103,7 +103,11 @@
         this.isLoading = true
         this.currentItemName = item
         try {
-          await this.getWorkFlowDAG(item)
+          if (item) {
+            await this.getWorkFlowDAG(item)
+          } else {
+            await this.getWorkFlowDAGAll()
+          }
         } catch (error) {
           this.$message.error(error.msg || '')
         }
diff --git a/dolphinscheduler-ui/src/js/conf/home/store/kinship/actions.js 
b/dolphinscheduler-ui/src/js/conf/home/store/kinship/actions.js
index 019dc85..a363162 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/kinship/actions.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/kinship/actions.js
@@ -19,6 +19,31 @@ import _ from 'lodash'
 import io from '@/module/io'
 import localStore from '@/module/util/localStorage'
 
+/**
+ * build locations by workFlowList
+ */
+const buildLocations = (workFlowList) => {
+  return _.uniqBy(workFlowList, 'workFlowCode').map((item) => ({
+    code: `${item.workFlowCode}`,
+    name: item.workFlowName,
+    workFlowPublishStatus: item.workFlowPublishStatus,
+    scheduleStartTime: item.scheduleStartTime,
+    scheduleEndTime: item.scheduleEndTime,
+    crontab: item.crontab,
+    schedulePublishStatus: item.schedulePublishStatus
+  }))
+}
+
+/**
+ * build connects by workFlowRelationList
+ */
+const buildConnects = (workFlowRelationList) => {
+  return _.map(workFlowRelationList, (item) => ({
+    source: `${item.sourceWorkFlowCode}`, // should be string, or connects 
will not show by echarts
+    target: `${item.targetWorkFlowCode}` // should be string, or connects will 
not show by echarts
+  }))
+}
+
 export default {
   /**
    * Get workFlow DAG
@@ -49,31 +74,20 @@ export default {
   /**
    * Get workFlow DAG
    */
-  getWorkFlowDAG ({ state }, payload) {
+  getWorkFlowDAG ({ state }, code) {
     const projectCode = localStore.getItem('projectCode')
     return new Promise((resolve, reject) => {
-      const url = `projects/${projectCode}/lineages/list`
-      io.get(url, { code: payload }, res => {
+      const url = `projects/${projectCode}/lineages/${code}`
+      io.get(url, res => {
         let locations = []
         let connects = []
         if (res.data.workFlowList) {
-          locations = _.uniqBy(res.data.workFlowList, 
'workFlowCode').map((item) => ({
-            code: `${item.workFlowCode}`,
-            name: item.workFlowName,
-            workFlowPublishStatus: item.workFlowPublishStatus,
-            scheduleStartTime: item.scheduleStartTime,
-            scheduleEndTime: item.scheduleEndTime,
-            crontab: item.crontab,
-            schedulePublishStatus: item.schedulePublishStatus
-          }))
+          locations = buildLocations(res.data.workFlowList)
         }
         if (res.data.workFlowRelationList) {
-          connects = _.map(res.data.workFlowRelationList, (item) => ({
-            source: `${item.sourceWorkFlowCode}`, // should be string, or 
connects will not show by echarts
-            target: `${item.targetWorkFlowCode}` // should be string, or 
connects will not show by echarts
-          }))
+          connects = buildConnects(res.data.workFlowRelationList)
         }
-        state.sourceWorkFlowCode = payload || ''
+        state.sourceWorkFlowCode = code || ''
         // locations
         state.locations = locations /* JSON.parse(locations) */
         // connects
@@ -83,5 +97,30 @@ export default {
         reject(res)
       })
     })
+  },
+  /**
+   * Get all workFlow DAG
+   */
+  getWorkFlowDAGAll ({ state }, payload) {
+    const projectCode = localStore.getItem('projectCode')
+    return new Promise((resolve, reject) => {
+      const url = `projects/${projectCode}/lineages/list`
+      io.get(url, res => {
+        let locations = []
+        let connects = []
+        if (res.data.workFlowList) {
+          locations = buildLocations(res.data.workFlowList)
+        }
+        if (res.data.workFlowRelationList) {
+          connects = buildConnects(res.data.workFlowRelationList)
+        }
+        state.sourceWorkFlowCode = ''
+        state.locations = locations
+        state.connects = connects
+        resolve(res.data)
+      }).catch(res => {
+        reject(res)
+      })
+    })
   }
 }

Reply via email to