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