This is an automated email from the ASF dual-hosted git repository.
lgcareer pushed a commit to branch dev-resource-tree
in repository https://gitbox.apache.org/repos/asf/incubator-dolphinscheduler.git
The following commit(s) were added to refs/heads/dev-resource-tree by this push:
new ae7fbf2 Modify the main jar package (#2200)
ae7fbf2 is described below
commit ae7fbf2ad33e719f13af76b1d3699758efb52fd7
Author: break60 <[email protected]>
AuthorDate: Tue Mar 17 13:22:39 2020 +0800
Modify the main jar package (#2200)
* Change crumb position
* UDF changed to multiple choice
* Limit customization file content to no more than 3000 lines
* Limit customization file content to no more than 3000 lines(#2128)
* Modify the main jar package
---
.../pages/dag/_source/formModel/tasks/flink.vue | 68 +++++++++------------
.../home/pages/dag/_source/formModel/tasks/mr.vue | 70 +++++++++-------------
.../pages/dag/_source/formModel/tasks/spark.vue | 21 +++----
.../src/js/conf/home/pages/dag/index.vue | 4 +-
.../src/js/conf/home/store/dag/actions.js | 19 ++++++
.../src/js/conf/home/store/dag/mutations.js | 1 +
.../src/js/conf/home/store/dag/state.js | 2 +
7 files changed, 89 insertions(+), 96 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 03e53fe..60a2da4 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
@@ -48,19 +48,9 @@
<m-list-box>
<div slot="text">{{$t('Main jar package')}}</div>
<div slot="content">
- <x-select
- style="width: 100%;"
- :placeholder="$t('Please enter main jar package')"
- v-model="mainJar"
- filterable
- :disabled="isDetails">
- <x-option
- v-for="city in mainJarList"
- :key="city.code"
- :value="city.code"
- :label="city.code">
- </x-option>
- </x-select>
+ <treeselect v-model="mainJar" :options="mainJarLists"
:disable-branch-nodes="true" :normalizer="normalizer" :placeholder="$t('Please
enter main jar package')">
+ <div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName
}}</div>
+ </treeselect>
</div>
</m-list-box>
<m-list-box>
@@ -151,12 +141,9 @@
<m-list-box>
<div slot="text">{{$t('Resources')}}</div>
<div slot="content">
- <m-resources
- ref="refResources"
- @on-resourcesData="_onResourcesData"
- @on-cache-resourcesData="_onCacheResourcesData"
- :resource-list="resourceList">
- </m-resources>
+ <treeselect v-model="resourceList" :multiple="true"
:options="mainJarList" :normalizer="normalizer" :placeholder="$t('Please select
resources')">
+ <div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName
}}</div>
+ </treeselect>
</div>
</m-list-box>
<m-list-box>
@@ -178,6 +165,8 @@
import mLocalParams from './_source/localParams'
import mListBox from './_source/listBox'
import mResources from './_source/resources'
+ import Treeselect from '@riophae/vue-treeselect'
+ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import disabledState from '@/module/mixin/disabledState'
export default {
@@ -189,6 +178,7 @@
// Master jar package
mainJar: null,
// Master jar package(List)
+ mainJarLists: [],
mainJarList: [],
// Deployment method
deployMode: 'cluster',
@@ -215,7 +205,12 @@
// Program type
programType: 'SCALA',
// Program type(List)
- programTypeList: [{ code: 'JAVA' }, { code: 'SCALA' }, { code:
'PYTHON' }]
+ programTypeList: [{ code: 'JAVA' }, { code: 'SCALA' }, { code:
'PYTHON' }],
+ normalizer(node) {
+ return {
+ label: node.name
+ }
+ }
}
},
props: {
@@ -320,24 +315,12 @@
})
return true
},
- /**
- * get resources list
- */
- _getResourcesList () {
- return new Promise((resolve, reject) => {
- let isJar = (alias) => {
- return alias.substring(alias.lastIndexOf('.') + 1, alias.length)
!== 'jar'
- }
- this.mainJarList =
_.map(_.cloneDeep(this.store.state.dag.resourcesListS), v => {
- return {
- id: v.id,
- code: v.alias,
- disabled: isJar(v.alias)
- }
- })
- resolve()
+ diGuiTree(item) { // Recursive convenience tree structure
+ item.forEach(item => {
+ item.children === '' || item.children === undefined || item.children
=== null || item.children.length === 0?
+ delete item.children : this.diGuiTree(item.children);
})
- }
+ },
},
watch: {
// Listening type
@@ -373,9 +356,13 @@
}
},
created () {
- this._getResourcesList().then(() => {
+ let item = this.store.state.dag.resourcesListS
+ let items = this.store.state.dag.resourcesListJar
+ this.diGuiTree(item)
+ this.diGuiTree(items)
+ this.mainJarList = item
+ this.mainJarLists = items
let o = this.backfillItem
-
// Non-null objects represent backfill
if (!_.isEmpty(o)) {
this.mainClass = o.params.mainClass || ''
@@ -403,12 +390,11 @@
this.localParams = localParams
}
}
- })
},
mounted () {
},
- components: { mLocalParams, mListBox, mResources }
+ components: { mLocalParams, mListBox, mResources, 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 706a35f..6d9119d 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
@@ -44,19 +44,9 @@
<m-list-box>
<div slot="text">{{$t('Main jar package')}}</div>
<div slot="content">
- <x-select
- style="width: 100%;"
- :placeholder="$t('Please enter main jar package')"
- v-model="mainJar"
- filterable
- :disabled="isDetails">
- <x-option
- v-for="city in mainJarList"
- :key="city.code"
- :value="city.code"
- :label="city.code">
- </x-option>
- </x-select>
+ <treeselect v-model="mainJar" :options="mainJarLists"
:disable-branch-nodes="true" :normalizer="normalizer" :placeholder="$t('Please
enter main jar package')">
+ <div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName
}}</div>
+ </treeselect>
</div>
</m-list-box>
<m-list-box>
@@ -88,12 +78,9 @@
<m-list-box>
<div slot="text">{{$t('Resources')}}</div>
<div slot="content">
- <m-resources
- ref="refResources"
- @on-resourcesData="_onResourcesData"
- @on-cache-resourcesData="_onCacheResourcesData"
- :resource-list="resourceList">
- </m-resources>
+ <treeselect v-model="resourceList" :multiple="true"
:options="mainJarList" :normalizer="normalizer" :placeholder="$t('Please select
resources')">
+ <div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName
}}</div>
+ </treeselect>
</div>
</m-list-box>
<m-list-box>
@@ -115,6 +102,8 @@
import mListBox from './_source/listBox'
import mResources from './_source/resources'
import mLocalParams from './_source/localParams'
+ import Treeselect from '@riophae/vue-treeselect'
+ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import disabledState from '@/module/mixin/disabledState'
export default {
name: 'mr',
@@ -125,6 +114,7 @@
// Master jar package
mainJar: null,
// Main jar package (List)
+ mainJarLists: [],
mainJarList: [],
// Resource(list)
resourceList: [],
@@ -139,7 +129,12 @@
// Program type
programType: 'JAVA',
// Program type(List)
- programTypeList: [{ code: 'JAVA' }, { code: 'PYTHON' }]
+ programTypeList: [{ code: 'JAVA' }, { code: 'PYTHON' }],
+ normalizer(node) {
+ return {
+ label: node.name
+ }
+ }
}
},
props: {
@@ -165,6 +160,12 @@
_onCacheResourcesData (a) {
this.cacheResourceList = a
},
+ diGuiTree(item) { // Recursive convenience tree structure
+ item.forEach(item => {
+ item.children === '' || item.children === undefined || item.children
=== null || item.children.length === 0?
+ delete item.children : this.diGuiTree(item.children);
+ })
+ },
/**
* verification
*/
@@ -202,24 +203,7 @@
})
return true
},
- /**
- * Get resource data
- */
- _getResourcesList () {
- return new Promise((resolve, reject) => {
- let isJar = (alias) => {
- return alias.substring(alias.lastIndexOf('.') + 1, alias.length)
!== 'jar'
- }
- this.mainJarList =
_.map(_.cloneDeep(this.store.state.dag.resourcesListS), v => {
- return {
- id: v.id,
- code: v.alias,
- disabled: isJar(v.alias)
- }
- })
- resolve()
- })
- }
+
},
watch: {
/**
@@ -251,7 +235,12 @@
}
},
created () {
- this._getResourcesList().then(() => {
+ let item = this.store.state.dag.resourcesListS
+ let items = this.store.state.dag.resourcesListJar
+ this.diGuiTree(item)
+ this.diGuiTree(items)
+ this.mainJarList = item
+ this.mainJarLists = items
let o = this.backfillItem
// Non-null objects represent backfill
@@ -275,12 +264,11 @@
this.localParams = localParams
}
}
- })
},
mounted () {
},
- components: { mLocalParams, mListBox, mResources }
+ components: { mLocalParams, mListBox, mResources, 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 915f64d..bc16457 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
@@ -63,19 +63,9 @@
<m-list-box>
<div slot="text">{{$t('Main jar package')}}</div>
<div slot="content">
- <x-select
- style="width: 100%;"
- :placeholder="$t('Please enter main jar package')"
- v-model="mainJar"
- filterable
- :disabled="isDetails">
- <x-option
- v-for="city in mainJarList"
- :key="city.code"
- :value="city.code"
- :label="city.code">
- </x-option>
- </x-select>
+ <treeselect v-model="mainJar" :options="mainJarLists"
:disable-branch-nodes="true" :normalizer="normalizer" :placeholder="$t('Please
enter main jar package')">
+ <div slot="value-label" slot-scope="{ node }">{{ node.raw.fullName
}}</div>
+ </treeselect>
</div>
</m-list-box>
<m-list-box>
@@ -215,6 +205,7 @@
import mListBox from './_source/listBox'
import mResources from './_source/resources'
import Treeselect from '@riophae/vue-treeselect'
+ import '@riophae/vue-treeselect/dist/vue-treeselect.css'
import disabledState from '@/module/mixin/disabledState'
export default {
@@ -226,6 +217,7 @@
// Master jar package
mainJar: null,
// Master jar package(List)
+ mainJarLists: [],
mainJarList: [],
// Deployment method
deployMode: 'cluster',
@@ -415,8 +407,11 @@
},
created () {
let item = this.store.state.dag.resourcesListS
+ let items = this.store.state.dag.resourcesListJar
this.diGuiTree(item)
+ this.diGuiTree(items)
this.mainJarList = item
+ this.mainJarLists = items
let o = this.backfillItem
// Non-null objects represent backfill
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 3fd4eed..780756e 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', ['getProcessList','getProjectList',
'getResourcesList']),
+ ...mapActions('dag', ['getProcessList','getProjectList',
'getResourcesList','getResourcesListJar']),
...mapActions('security', ['getTenantList','getWorkerGroupsAll']),
/**
* init
@@ -57,6 +57,8 @@
this.getProjectList(),
// get resource
this.getResourcesList(),
+ // get jar
+ this.getResourcesListJar(),
// get worker group list
this.getWorkerGroupsAll(),
this.getTenantList()
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 20bc113..50295ad 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/actions.js
@@ -334,6 +334,25 @@ export default {
})
},
/**
+ * get jar
+ */
+ getResourcesListJar ({ state }) {
+ return new Promise((resolve, reject) => {
+ if (state.resourcesListJar.length) {
+ resolve()
+ return
+ }
+ io.get(`resources/list/jar`, {
+ type: 'FILE'
+ }, res => {
+ state.resourcesListJar = res.data
+ resolve(res.data)
+ }).catch(res => {
+ reject(res)
+ })
+ })
+ },
+ /**
* Get process instance
*/
getProcessInstance ({ state }, payload) {
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 6ceabed..4f54b1d 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/mutations.js
@@ -108,6 +108,7 @@ export default {
state.tenantId = payload && payload.tenantId || -1
state.processListS = payload && payload.processListS || []
state.resourcesListS = payload && payload.resourcesListS || []
+ state.resourcesListJar = payload && payload.resourcesListJar || []
state.projectListS = payload && payload.projectListS || []
state.isDetails = payload && payload.isDetails || false
state.runFlag = payload && payload.runFlag || ''
diff --git a/dolphinscheduler-ui/src/js/conf/home/store/dag/state.js
b/dolphinscheduler-ui/src/js/conf/home/store/dag/state.js
index b7d592a..0605a26 100644
--- a/dolphinscheduler-ui/src/js/conf/home/store/dag/state.js
+++ b/dolphinscheduler-ui/src/js/conf/home/store/dag/state.js
@@ -53,6 +53,8 @@ export default {
projectListS: [],
// tasks resourcesList
resourcesListS: [],
+ // tasks resourcesListJar
+ resourcesListJar: [],
// tasks datasource Type
dsTypeListS: [
{