未验证 提交 14feda99 编写于 作者: W Wangyizhi1 提交者: GitHub

Improve workflow lineage interaction (#6230)

上级 9d0b00c1
......@@ -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 || '')
}
......
......@@ -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)
})
})
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册