diff --git a/dolphinscheduler-ui.zip b/dolphinscheduler-ui.zip
new file mode 100644
index 0000000000..1f11f8f048
Binary files /dev/null and b/dolphinscheduler-ui.zip differ
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
index c56d73f443..9f747e6d6b 100755
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue
@@ -268,7 +268,7 @@
},
methods: {
...mapActions('dag', ['saveDAGchart', 'updateInstance', 'updateDefinition', 'getTaskState', 'switchProcessDefinitionVersion', 'getProcessDefinitionVersionsPage', 'deleteProcessDefinitionVersion']),
- ...mapMutations('dag', ['addTasks', 'cacheTasks', 'resetParams', 'setIsEditDag', 'setName', 'addConnects']),
+ ...mapMutations('dag', ['addTasks', 'cacheTasks', 'resetParams', 'setIsEditDag', 'setName', 'addConnects', 'resetLocalParam']),
startRunning (item, startNodeList, sourceType) {
this.startData = item
this.startNodeList = startNodeList
@@ -377,7 +377,7 @@
// remove tip state dom
$('.w').find('.state-p').html('')
-
+ const newTask = []
data.forEach(v1 => {
idArr.forEach(v2 => {
if (v2.name === v1.name) {
@@ -387,6 +387,12 @@
taskList.forEach(item => {
if (item.name === v1.name) {
depState = item.state
+ const params = item.taskJson ? JSON.parse(item.taskJson).params : ''
+ let localParam = params.localParams || []
+ newTask.push({
+ id: v2.id,
+ localParam
+ })
}
})
dom.attr('data-state-id', v1.stateId)
@@ -403,6 +409,9 @@
findComponentDownward(this.$root, `${this.type}-details`)._reset()
}
}
+ if (!isReset) {
+ this.resetLocalParam(newTask)
+ }
resolve()
})
})
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue
index c001a20176..89e0e88c54 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/_source/localParams.vue
@@ -21,7 +21,7 @@
:key="item.id"
@click="_getIndex($index)">
-
+
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue
index 55b9aca071..d66c9e6819 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/shell.vue
@@ -46,7 +46,7 @@
ref="refLocalParams"
@on-local-params="_onLocalParams"
:udp-list="localParams"
- :hide="false">
+ :hide="true">
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue
index a040b4be43..f2d9c4f2ac 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/udp/udp.vue
@@ -142,7 +142,12 @@
return true
},
_accuStore () {
- this.store.commit('dag/setGlobalParams', _.cloneDeep(this.udpList))
+ const udp = _.cloneDeep(this.udpList)
+ udp.forEach(u => {
+ delete u.ifFixed
+ })
+ this.store.commit('dag/setGlobalParams', udp)
+
this.store.commit('dag/setName', _.cloneDeep(this.name))
this.store.commit('dag/setTimeout', _.cloneDeep(this.timeout))
this.store.commit('dag/setTenantId', _.cloneDeep(this.tenantId))
@@ -203,8 +208,39 @@
},
created () {
const dag = _.cloneDeep(this.store.state.dag)
- this.udpList = dag.globalParams
- this.udpListCache = dag.globalParams
+
+ let fixedParam = []
+ const tasks = this.store.state.dag.tasks
+ for (const task of tasks) {
+ const localParam = task.params ? task.params.localParams : []
+ if (localParam && localParam.length > 0) {
+ fixedParam = fixedParam.concat(localParam)
+ }
+ }
+ fixedParam = fixedParam.map(f => {
+ return {
+ prop: f.prop,
+ value: f.value,
+ ifFixed: true
+ }
+ })
+
+ let globalParams = _.cloneDeep(dag.globalParams)
+
+ globalParams = globalParams.map(g => {
+ if (fixedParam.some(f => { return g.prop === f.prop })) {
+ fixedParam = fixedParam.filter(f => { return g.prop !== f.prop })
+ return Object.assign(g, {
+ ifFixed: true
+ })
+ } else {
+ return g
+ }
+ })
+
+ this.udpList = [...fixedParam, ...globalParams]
+ this.udpListCache = [...fixedParam, ...globalParams]
+
this.name = dag.name
this.originalName = dag.name
this.description = dag.description
diff --git a/dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js b/dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js
index 93614c056a..27e06971cb 100755
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js
@@ -162,5 +162,16 @@ export default {
} else {
state.cacheTasks[payload.id] = payload
}
+ },
+ resetLocalParam (state, payload) {
+ const tasks = state.tasks
+ tasks.forEach((task, index) => {
+ payload.forEach(p => {
+ if (p.id === task.id) {
+ tasks[index].params.localParams = p.localParam
+ }
+ })
+ })
+ state.tasks = tasks
}
}