You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@dolphinscheduler.apache.org by ki...@apache.org on 2021/12/06 02:47:30 UTC
[dolphinscheduler] branch 2.0.1-prepare updated: [Feature][Workflow] Main package. (#7178)
This is an automated email from the ASF dual-hosted git repository.
kirs pushed a commit to branch 2.0.1-prepare
in repository https://gitbox.apache.org/repos/asf/dolphinscheduler.git
The following commit(s) were added to refs/heads/2.0.1-prepare by this push:
new e769bbf [Feature][Workflow] Main package. (#7178)
e769bbf is described below
commit e769bbf178ac0d284ac5e5d4a1746f72910a7ffb
Author: songjianet <17...@qq.com>
AuthorDate: Mon Dec 6 10:47:22 2021 +0800
[Feature][Workflow] Main package. (#7178)
---
.../pages/dag/_source/formModel/tasks/flink.vue | 36 ++-
.../home/pages/dag/_source/formModel/tasks/mr.vue | 40 ++-
.../pages/dag/_source/formModel/tasks/spark.vue | 35 ++-
.../js/conf/home/pages/dag/definitionDetails.vue | 4 +-
.../src/js/conf/home/pages/dag/index.vue | 6 +-
.../src/js/conf/home/pages/dag/instanceDetails.vue | 4 +-
.../pages/projects/pages/taskDefinition/index.vue | 301 +++++++++++++++++++++
.../src/js/conf/home/store/dag/actions.js | 10 +-
.../src/js/module/i18n/locale/en_US.js | 4 +-
.../src/js/module/i18n/locale/zh_CN.js | 4 +-
10 files changed, 383 insertions(+), 61 deletions(-)
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue
index 6b3c6e6..2dc804a 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/flink.vue
@@ -20,10 +20,11 @@
<div slot="text">{{$t('Program Type')}}</div>
<div slot="content">
<el-select
- style="width: 130px;"
- size="small"
- v-model="programType"
- :disabled="isDetails">
+ style="width: 130px;"
+ size="small"
+ v-model="programType"
+ :disabled="isDetails"
+ @change="programTypeChange">
<el-option
v-for="city in programTypeList"
:key="city.code"
@@ -46,9 +47,9 @@
</div>
</m-list-box>
<m-list-box>
- <div slot="text">{{$t('Main Jar Package')}}</div>
+ <div slot="text">{{$t('Main Package')}}</div>
<div slot="content">
- <treeselect v-model="mainJar" maxHeight="200" :options="mainJarLists" :disable-branch-nodes="true" :normalizer="normalizer" :disabled="isDetails" :placeholder="$t('Please enter main jar package')">
+ <treeselect v-model="mainJar" maxHeight="200" :options="mainJarLists" :disable-branch-nodes="true" :normalizer="normalizer" :disabled="isDetails" :placeholder="$t('Please enter main package')">
<div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName }}</div>
</treeselect>
</div>
@@ -205,6 +206,7 @@
import disabledState from '@/module/mixin/disabledState'
import Clipboard from 'clipboard'
import { diGuiTree, searchTree } from './_source/resourceTree'
+ import { mapActions } from 'vuex'
export default {
name: 'flink',
@@ -265,6 +267,17 @@
},
mixins: [disabledState],
methods: {
+ ...mapActions('dag', ['getResourcesListJar']),
+ programTypeChange () {
+ this.mainJar = null
+ this.mainClass = ''
+ },
+ getTargetResourcesListJar (programType) {
+ this.getResourcesListJar(programType).then(res => {
+ diGuiTree(res)
+ this.mainJarLists = res
+ })
+ },
_copyPath (e, node) {
e.stopPropagation()
let clipboard = new Clipboard('.copy-path', {
@@ -325,7 +338,7 @@
}
if (!this.mainJar) {
- this.$message.warning(`${i18n.$t('Please enter main jar package')}`)
+ this.$message.warning(`${i18n.$t('Please enter main package')}`)
return false
}
@@ -450,9 +463,7 @@
watch: {
// Listening type
programType (type) {
- if (type === 'PYTHON') {
- this.mainClass = ''
- }
+ this.getTargetResourcesListJar(type)
},
// Watch the cacheParams
cacheParams (val) {
@@ -511,6 +522,7 @@
}
},
created () {
+ this.getTargetResourcesListJar(this.programType)
let item = this.store.state.dag.resourcesListS
let items = this.store.state.dag.resourcesListJar
diGuiTree(item)
@@ -518,6 +530,7 @@
this.mainJarList = item
this.mainJarLists = items
let o = this.backfillItem
+
// Non-null objects represent backfill
if (!_.isEmpty(o)) {
this.mainClass = o.params.mainClass || ''
@@ -571,9 +584,6 @@
}
}
},
- mounted () {
-
- },
components: { mLocalParams, mListBox, mList4Box, Treeselect }
}
</script>
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue
index d6718f1..d9f91f3 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/mr.vue
@@ -19,7 +19,12 @@
<m-list-box>
<div slot="text">{{$t('Program Type')}}</div>
<div slot="content">
- <el-select v-model="programType" :disabled="isDetails" style="width: 110px;" size="small">
+ <el-select
+ v-model="programType"
+ :disabled="isDetails"
+ style="width: 110px;"
+ size="small"
+ @change="programTypeChange">
<el-option
v-for="city in programTypeList"
:key="city.code"
@@ -42,9 +47,9 @@
</div>
</m-list-box>
<m-list-box>
- <div slot="text">{{$t('Main Jar Package')}}</div>
+ <div slot="text">{{$t('Main Package')}}</div>
<div slot="content">
- <treeselect v-model="mainJar" maxHeight="200" :options="mainJarLists" :disable-branch-nodes="true" :normalizer="normalizer" :value-consists-of="valueConsistsOf" :disabled="isDetails" :placeholder="$t('Please enter main jar package')">
+ <treeselect v-model="mainJar" maxHeight="200" :options="mainJarLists" :disable-branch-nodes="true" :normalizer="normalizer" :value-consists-of="valueConsistsOf" :disabled="isDetails" :placeholder="$t('Please enter main package')">
<div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName }}</div>
</treeselect>
</div>
@@ -118,6 +123,7 @@
import disabledState from '@/module/mixin/disabledState'
import Clipboard from 'clipboard'
import { diGuiTree, searchTree } from './_source/resourceTree'
+ import { mapActions } from 'vuex'
export default {
name: 'mr',
@@ -144,9 +150,9 @@
// Option parameters
others: '',
// Program type
- programType: 'JAVA',
+ programType: 'SCALA',
// Program type(List)
- programTypeList: [{ code: 'JAVA' }, { code: 'PYTHON' }],
+ programTypeList: [{ code: 'JAVA' }, { code: 'SCALA' }, { code: 'PYTHON' }],
normalizer (node) {
return {
label: node.name
@@ -161,6 +167,17 @@
},
mixins: [disabledState],
methods: {
+ ...mapActions('dag', ['getResourcesListJar']),
+ programTypeChange () {
+ this.mainJar = null
+ this.mainClass = ''
+ },
+ getTargetResourcesListJar (programType) {
+ this.getResourcesListJar(programType).then(res => {
+ diGuiTree(res)
+ this.mainJarLists = res
+ })
+ },
_copyPath (e, node) {
e.stopPropagation()
let clipboard = new Clipboard('.copy-path', {
@@ -268,7 +285,7 @@
}
if (!this.mainJar) {
- this.$message.warning(`${i18n.$t('Please enter main jar package')}`)
+ this.$message.warning(`${i18n.$t('Please enter main package')}`)
return false
}
@@ -306,9 +323,7 @@
* monitor
*/
programType (type) {
- if (type === 'PYTHON') {
- this.mainClass = ''
- }
+ this.getTargetResourcesListJar(type)
},
// Watch the cacheParams
cacheParams (val) {
@@ -361,6 +376,7 @@
}
},
created () {
+ this.getTargetResourcesListJar(this.programType)
let item = this.store.state.dag.resourcesListS
let items = this.store.state.dag.resourcesListJar
diGuiTree(item)
@@ -378,11 +394,12 @@
this.mainJar = ''
} else {
this.mainJar = o.params.mainJar.id || ''
+ console.log(this.mainJar)
}
this.appName = o.params.appName || ''
this.mainArgs = o.params.mainArgs || ''
this.others = o.params.others
- this.programType = o.params.programType || 'JAVA'
+ this.programType = o.params.programType || 'SCALA'
// backfill resourceList
let resourceList = o.params.resourceList || []
@@ -415,9 +432,6 @@
}
}
},
- mounted () {
-
- },
components: { mLocalParams, mListBox, Treeselect }
}
</script>
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue
index e2e0d06..6674d1f 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/spark.vue
@@ -20,10 +20,11 @@
<div slot="text">{{$t('Program Type')}}</div>
<div slot="content">
<el-select
- style="width: 130px;"
- size="small"
- v-model="programType"
- :disabled="isDetails">
+ style="width: 130px;"
+ size="small"
+ v-model="programType"
+ :disabled="isDetails"
+ @change="programTypeChange">
<el-option
v-for="city in programTypeList"
:key="city.code"
@@ -63,9 +64,9 @@
</div>
</m-list-box>
<m-list-box>
- <div slot="text">{{$t('Main Jar Package')}}</div>
+ <div slot="text">{{$t('Main Package')}}</div>
<div slot="content">
- <treeselect v-model="mainJar" maxHeight="200" :options="mainJarLists" :disable-branch-nodes="true" :normalizer="normalizer" :disabled="isDetails" :placeholder="$t('Please enter main jar package')">
+ <treeselect v-model="mainJar" maxHeight="200" :options="mainJarLists" :disable-branch-nodes="true" :normalizer="normalizer" :disabled="isDetails" :placeholder="$t('Please enter main package')">
<div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName }}</div>
</treeselect>
</div>
@@ -206,6 +207,7 @@
import disabledState from '@/module/mixin/disabledState'
import Clipboard from 'clipboard'
import { diGuiTree, searchTree } from './_source/resourceTree'
+ import { mapActions } from 'vuex'
export default {
name: 'spark',
@@ -265,6 +267,17 @@
},
mixins: [disabledState],
methods: {
+ ...mapActions('dag', ['getResourcesListJar']),
+ programTypeChange () {
+ this.mainJar = null
+ this.mainClass = ''
+ },
+ getTargetResourcesListJar (programType) {
+ this.getResourcesListJar(programType).then(res => {
+ diGuiTree(res)
+ this.mainJarLists = res
+ })
+ },
_copyPath (e, node) {
e.stopPropagation()
let clipboard = new Clipboard('.copy-path', {
@@ -372,7 +385,7 @@
}
if (!this.mainJar) {
- this.$message.warning(`${i18n.$t('Please enter main jar package')}`)
+ this.$message.warning(`${i18n.$t('Please enter main package')}`)
return false
}
@@ -469,9 +482,7 @@
watch: {
// Listening type
programType (type) {
- if (type === 'PYTHON') {
- this.mainClass = ''
- }
+ this.getTargetResourcesListJar(type)
},
// Watch the cacheParams
cacheParams (val) {
@@ -531,6 +542,7 @@
}
},
created () {
+ this.getTargetResourcesListJar(this.programType)
let item = this.store.state.dag.resourcesListS
let items = this.store.state.dag.resourcesListJar
diGuiTree(item)
@@ -592,9 +604,6 @@
}
}
},
- mounted () {
-
- },
components: { mLocalParams, mListBox, mList4Box, Treeselect }
}
</script>
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue
index 052d956..ff8e562 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue
@@ -46,7 +46,7 @@
props: {},
methods: {
...mapMutations('dag', ['resetParams', 'setIsDetails']),
- ...mapActions('dag', ['getProjectList', 'getResourcesList', 'getProcessDetails', 'getResourcesListJar']),
+ ...mapActions('dag', ['getProjectList', 'getResourcesList', 'getProcessDetails']),
...mapActions('security', ['getTenantList', 'getWorkerGroupsAll', 'getAlarmGroupsAll']),
/**
* init
@@ -63,8 +63,6 @@
this.getProjectList(),
// get resource
this.getResourcesList(),
- // get jar
- this.getResourcesListJar(),
// get worker group list
this.getWorkerGroupsAll(),
// get alarm group list
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/index.vue
index 2099c38..482793e 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/index.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/index.vue
@@ -40,7 +40,7 @@
props: {},
methods: {
...mapMutations('dag', ['resetParams']),
- ...mapActions('dag', ['getProjectList', 'getResourcesList', 'getResourcesListJar', 'getResourcesListJar']),
+ ...mapActions('dag', ['getProjectList', 'getResourcesList']),
...mapActions('security', ['getTenantList', 'getWorkerGroupsAll', 'getAlarmGroupsAll']),
/**
* init
@@ -53,12 +53,8 @@
Promise.all([
// get project
this.getProjectList(),
- // get jar
- this.getResourcesListJar(),
// get resource
this.getResourcesList(),
- // get jar
- this.getResourcesListJar(),
// get worker group list
this.getWorkerGroupsAll(),
// get alarm group list
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue b/dolphinscheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue
index c9e3b98..3534b48 100644
--- a/dolphinscheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue
@@ -43,7 +43,7 @@
props: {},
methods: {
...mapMutations('dag', ['setIsDetails', 'resetParams']),
- ...mapActions('dag', ['getProjectList', 'getResourcesList', 'getInstancedetail', 'getResourcesListJar']),
+ ...mapActions('dag', ['getProjectList', 'getResourcesList', 'getInstancedetail']),
...mapActions('security', ['getTenantList', 'getWorkerGroupsAll', 'getAlarmGroupsAll']),
/**
* init
@@ -60,8 +60,6 @@
this.getProjectList(),
// get resources
this.getResourcesList(),
- // get jar
- this.getResourcesListJar(),
// get worker group list
this.getWorkerGroupsAll(),
// get alarm group list
diff --git a/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskDefinition/index.vue b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskDefinition/index.vue
new file mode 100644
index 0000000..50a8b0a
--- /dev/null
+++ b/dolphinscheduler-ui/src/js/conf/home/pages/projects/pages/taskDefinition/index.vue
@@ -0,0 +1,301 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one or more
+ * contributor license agreements. See the NOTICE file distributed with
+ * this work for additional information regarding copyright ownership.
+ * The ASF licenses this file to You under the Apache License, Version 2.0
+ * (the "License"); you may not use this file except in compliance with
+ * the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+<template>
+ <div class="task-definition" v-if="!isLoading">
+ <m-list-construction :title="$t('Task Definition')">
+ <template slot="conditions">
+ <m-conditions @on-conditions="_onConditions" :taskTypeShow="true">
+ <template v-slot:button-group>
+ <el-button size="mini" @click="createTask">
+ {{ $t("Create task") }}
+ </el-button>
+ </template>
+ </m-conditions>
+ </template>
+ <template v-slot:content>
+ <template v-if="tasksList.length || total > 0">
+ <m-list
+ :tasksList="tasksList"
+ @on-update="_onUpdate"
+ @editTask="editTask"
+ @viewTaskDetail="viewTaskDetail"
+ ></m-list>
+ <div class="page-box">
+ <el-pagination
+ background
+ @current-change="_page"
+ @size-change="_pageSize"
+ :page-size="searchParams.pageSize"
+ :current-page.sync="searchParams.pageNo"
+ :page-sizes="[10, 30, 50]"
+ :total="total"
+ layout="sizes, prev, pager, next, jumper"
+ >
+ </el-pagination>
+ </div>
+ </template>
+ <template v-if="!tasksList.length">
+ <m-no-data></m-no-data>
+ </template>
+ <m-spin :is-spin="isLoading"></m-spin>
+ </template>
+ </m-list-construction>
+ <el-drawer
+ :visible.sync="taskDrawer"
+ size=""
+ :with-header="false"
+ @close="closeTaskDrawer"
+ >
+ <!-- fix the bug that Element-ui(2.13.2) auto focus on the first input -->
+ <div style="width: 0px; height: 0px; overflow: hidden">
+ <el-input type="text" />
+ </div>
+ <m-form-model
+ v-if="taskDrawer"
+ :nodeData="nodeData"
+ type="task-definition"
+ @changeTaskType="changeTaskType"
+ @close="closeTaskDrawer"
+ @addTaskInfo="saveTask"
+ :taskDefinition="editingTask"
+ >
+ </m-form-model>
+ </el-drawer>
+ </div>
+</template>
+<script>
+ import mListConstruction from '@/module/components/listConstruction/listConstruction'
+ import mConditions from '@/module/components/conditions/conditions'
+ import mList from './_source/list'
+ import mNoData from '@/module/components/noData/noData'
+ import mSpin from '@/module/components/spin/spin'
+ import { mapActions, mapMutations } from 'vuex'
+ import listUrlParamHandle from '@/module/mixin/listUrlParamHandle'
+ import mFormModel from '@/conf/home/pages/dag/_source/formModel/formModel.vue'
+ /**
+ * tasksType
+ */
+ import { tasksType } from '@/conf/home/pages/dag/_source/config.js'
+
+ const DEFAULT_NODE_DATA = {
+ id: -1,
+ taskType: 'SHELL',
+ instanceId: -1
+ }
+ export default {
+ name: 'task-definition-index',
+ data () {
+ // tasksType
+ const tasksTypeList = Object.keys(tasksType)
+ return {
+ total: null,
+ tasksList: [],
+ isLoading: true,
+ searchParams: {
+ pageSize: 10,
+ pageNo: 1,
+ searchVal: '',
+ taskType: '',
+ userId: ''
+ },
+ // whether the task config drawer is visible
+ taskDrawer: false,
+ // nodeData
+ nodeData: { ...DEFAULT_NODE_DATA },
+ // tasksType
+ tasksTypeList,
+ // editing task definition
+ editingTask: null
+ }
+ },
+ mixins: [listUrlParamHandle],
+ methods: {
+ ...mapActions('dag', [
+ 'getTaskDefinitionsList',
+ 'genTaskCodeList',
+ 'saveTaskDefinition',
+ 'updateTaskDefinition'
+ ]),
+ ...mapActions('dag', [
+ 'getProcessList',
+ 'getProjectList',
+ 'getResourcesList'
+ ]),
+ ...mapMutations('dag', ['resetParams', 'setIsDetails']),
+ ...mapActions('security', [
+ 'getTenantList',
+ 'getWorkerGroupsAll',
+ 'getAlarmGroupsAll'
+ ]),
+ /**
+ * Toggle task drawer
+ */
+ showTaskDrawer () {
+ this.taskDrawer = true
+ },
+ closeTaskDrawer () {
+ this.setIsDetails(false)
+ this.taskDrawer = false
+ },
+ saveTask ({ item }) {
+ const isEditing = !!this.editingTask
+ if (isEditing) {
+ this.updateTaskDefinition(item)
+ .then((res) => {
+ this.$message.success(res.msg)
+ this._onUpdate()
+ this.closeTaskDrawer()
+ })
+ .catch((e) => {
+ this.$message.error(e.msg || '')
+ })
+ } else {
+ this.genTaskCodeList({
+ genNum: 1
+ })
+ .then((res) => {
+ const [code] = res
+ return code
+ })
+ .then((code) => {
+ return this.saveTaskDefinition({
+ taskDefinitionJson: [
+ {
+ ...item,
+ code
+ }
+ ]
+ })
+ })
+ .then((res) => {
+ this.$message.success(res.msg)
+ this._onUpdate()
+ this.closeTaskDrawer()
+ })
+ .catch((e) => {
+ this.$message.error(e.msg || '')
+ })
+ }
+ },
+ createTask () {
+ this.editingTask = null
+ this.nodeData.taskType = DEFAULT_NODE_DATA.taskType
+ this.showTaskDrawer()
+ },
+ editTask (task) {
+ this.editingTask = task
+ this.nodeData.id = task.code
+ this.nodeData.taskType = task.taskType
+ this.showTaskDrawer()
+ },
+ viewTaskDetail (task) {
+ this.setIsDetails(true)
+ this.editTask(task)
+ },
+ /**
+ * pageNo
+ */
+ _page (val) {
+ this.searchParams.pageNo = val
+ },
+ _pageSize (val) {
+ this.searchParams.pageSize = val
+ },
+ /**
+ * conditions
+ */
+ _onConditions (o) {
+ this.searchParams.searchVal = o.searchVal
+ this.searchParams.taskType = o.taskType
+ this.searchParams.pageNo = 1
+ },
+ /**
+ * get task definition list
+ */
+ _getList (flag) {
+ this.isLoading = !flag
+ this.getTaskDefinitionsList(this.searchParams)
+ .then((res) => {
+ if (this.searchParams.pageNo > 1 && res.totalList.length === 0) {
+ this.searchParams.pageNo = this.searchParams.pageNo - 1
+ } else {
+ this.tasksList = []
+ this.tasksList = res.totalList
+ this.total = res.total
+ this.isLoading = false
+ }
+ })
+ .catch((e) => {
+ this.isLoading = false
+ })
+ },
+ /**
+ * update task dataList
+ */
+ _onUpdate () {
+ this._debounceGET('false')
+ },
+ /**
+ * change form modal task type
+ */
+ changeTaskType (value) {
+ this.nodeData.taskType = value
+ }
+ },
+ created () {
+ this.isLoading = true
+ // Initialization parameters
+ this.resetParams()
+ // Promise Get node needs data
+ Promise.all([
+ // get process definition
+ this.getProcessList(),
+ // get project
+ this.getProjectList(),
+ // get resource
+ this.getResourcesList(),
+ // get worker group list
+ this.getWorkerGroupsAll(),
+ // get alarm group list
+ this.getAlarmGroupsAll(),
+ this.getTenantList()
+ ])
+ .then((data) => {
+ this.isLoading = false
+ })
+ .catch(() => {
+ this.isLoading = false
+ })
+ },
+ mounted () {},
+ components: {
+ mListConstruction,
+ mConditions,
+ mList,
+ mNoData,
+ mSpin,
+ mFormModel
+ }
+ }
+</script>
+<style lang="scss" scoped>
+.task-definition {
+ .taskGroupBtn {
+ width: 300px;
+ }
+}
+</style>
diff --git a/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js b/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
index fda65d9..659772e 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
@@ -443,16 +443,12 @@ export default {
/**
* get jar
*/
- getResourcesListJar ({ state }) {
+ getResourcesListJar ({ state }, programType) {
return new Promise((resolve, reject) => {
- if (state.resourcesListJar.length) {
- resolve()
- return
- }
io.get('resources/query-by-type', {
- type: 'FILE'
+ type: 'FILE',
+ programType
}, res => {
- state.resourcesListJar = res.data
resolve(res.data)
}).catch(res => {
reject(res)
diff --git a/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js b/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
index 192d12e..7f3c654 100755
--- a/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
+++ b/dolphinscheduler-ui/src/js/module/i18n/locale/en_US.js
@@ -87,8 +87,8 @@ export default {
'Please enter a positive integer': 'Please enter a positive integer',
'Program Type': 'Program Type',
'Main Class': 'Main Class',
- 'Main Jar Package': 'Main Jar Package',
- 'Please enter main jar package': 'Please enter main jar package',
+ 'Main Package': 'Main Package',
+ 'Please enter main package': 'Please enter main package',
'Please enter main class': 'Please enter main class',
'Main Arguments': 'Main Arguments',
'Please enter main arguments': 'Please enter main arguments',
diff --git a/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js b/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
index 1b29794..eabcb64 100644
--- a/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
+++ b/dolphinscheduler-ui/src/js/module/i18n/locale/zh_CN.js
@@ -87,8 +87,8 @@ export default {
'Please enter a positive integer': '请输入正整数',
'Program Type': '程序类型',
'Main Class': '主函数的Class',
- 'Main Jar Package': '主Jar包',
- 'Please enter main jar package': '请选择主Jar包',
+ 'Main Package': '主程序包',
+ 'Please enter main package': '请选择主程序包',
'Please enter main class': '请填写主函数的Class',
'Main Arguments': '主程序参数',
'Please enter main arguments': '请输入主程序参数',