Browse Source

Improve workflow lineage interaction (#6230)

2.0.7-release
Wangyizhi1 3 years ago committed by GitHub
parent
commit
14feda996d
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 10
      dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/kinship/index.vue
  2. 73
      dolphinscheduler-ui/src/js/conf/home/store/kinship/actions.js

10
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 || '')
}

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

Loading…
Cancel
Save