Browse Source

Implements the sql type task, now it can be cache the previous input. (#1745)

pull/2/head
zhukai 5 years ago committed by dailidong
parent
commit
2087f464fb
  1. 1
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue
  2. 17
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue
  3. 35
      dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sql.vue
  4. 5
      dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js

1
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue

@ -143,6 +143,7 @@
<m-sql
v-if="taskType === 'SQL'"
@on-params="_onParams"
@on-cache-params="_onCacheParams"
ref="SQL"
:create-node-id="id"
:backfill-item="backfillItem">

17
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/datasource.vue

@ -112,7 +112,20 @@
})
}
},
watch: {},
computed: {
cacheParams () {
return {
type: this.type,
datasource: this.datasource
}
}
},
// Watch the cacheParams
watch: {
cacheParams (val) {
this.$emit('on-dsData', val);
}
},
created () {
let supportType = this.supportType || []
this.typeList = _.cloneDeep(this.store.state.dag.dsTypeListS)
@ -146,4 +159,4 @@
},
components: { }
}
</script>
</script>

35
dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sql.vue

@ -371,6 +371,10 @@
this.connParams = ''
}
},
//Watch the cacheParams
cacheParams (val) {
this.$emit('on-cache-params', val);
}
},
created () {
let o = this.backfillItem
@ -396,7 +400,8 @@
this.receivers = o.params.receivers && o.params.receivers.split(',') || []
this.receiversCc = o.params.receiversCc && o.params.receiversCc.split(',') || []
}
if (!_.some(this.store.state.dag.tasks, { id: this.createNodeId }) &&
// read tasks from cache
if (!_.some(this.store.state.dag.cacheTasks, { id: this.createNodeId }) &&
this.router.history.current.name !== 'definition-create') {
this._getReceiver()
}
@ -415,7 +420,33 @@
editor.off($('.code-sql-mirror'), 'keypress', this.keypress)
}
},
computed: {},
computed: {
cacheParams () {
return {
type: this.type,
datasource: this.rtDatasource,
sql: editor ? editor.getValue() : '',
udfs: this.udfs,
sqlType: this.sqlType,
title: this.title,
receivers: this.receivers.join(','),
receiversCc: this.receiversCc.join(','),
showType: (() => {
let showType = this.showType
if (showType.length === 2 && showType[0] === 'ATTACHMENT') {
return [showType[1], showType[0]].join(',')
} else {
return showType.join(',')
}
})(),
localParams: this.localParams,
connParams: this.connParams,
preStatements: this.preStatements,
postStatements: this.postStatements
}
}
},
components: { mListBox, mDatasource, mLocalParams, mUdfs, mSqlType, mStatementList, mEmail }
}
</script>

5
dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js

@ -110,6 +110,11 @@ export default {
let processDefinitionJson = JSON.parse(res.data.processDefinitionJson)
// tasks info
state.tasks = processDefinitionJson.tasks
// tasks cache
state.cacheTasks = {}
processDefinitionJson.tasks.forEach(v => {
state.cacheTasks[v.id] = v
})
// global params
state.globalParams = processDefinitionJson.globalParams
// timeout

Loading…
Cancel
Save