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)
+ })
+ })
}
}