diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue index 3c08497b23..78883c6baf 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/dag.vue @@ -474,5 +474,5 @@ diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue index b7875a6fde..e2d0a80b54 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/selectInput.vue @@ -33,7 +33,7 @@ import disabledState from '@/module/mixin/disabledState' export default { - name: 'select-input', + name: 'form-select-input', data () { return { isIconState: false, diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue index 74e18b2efb..f2658d4c6e 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/timeoutAlarm.vue @@ -46,7 +46,7 @@ import disabledState from '@/module/mixin/disabledState' export default { - name: 'timeout-alarm', + name: 'form-timeout-alarm', data () { return { // Timeout display hiding diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/workerGroups.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/workerGroups.vue new file mode 100644 index 0000000000..09f5363924 --- /dev/null +++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/_source/workerGroups.vue @@ -0,0 +1,46 @@ + + diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.scss b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.scss new file mode 100644 index 0000000000..49f0d9c630 --- /dev/null +++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.scss @@ -0,0 +1,109 @@ +.form-model-model { + width: 720px; + position: relative; + .title-box { + height: 61px; + border-bottom: 1px solid #DCDEDC; + position: relative; + .name { + position: absolute; + left: 24px; + top: 18px; + font-size: 16px; + } + .go-subtask { + position: absolute; + right: 30px; + top: 17px; + a { + font-size: 14px; + color: #0097e0; + margin-left: 10px; + i.iconfont { + font-size: 18px; + vertical-align: middle; + } + em { + color: #333; + vertical-align: middle; + font-style: normal; + vertical-align: middle; + padding-left: 2px; + } + &:hover { + em { + text-decoration: underline; + } + } + } + } + } + .bottom-box { + position: absolute; + bottom: 0; + left: 0; + width: 100%; + text-align: right; + height: 60px; + line-height: 60px; + border-top: 1px solid #DCDEDC; + background: #fff; + .submit { + padding-right: 20px; + position: relative; + z-index: 9; + } + } + .content-box { + overflow-y: scroll; + height: calc(100vh - 61px); + padding-bottom: 60px; + } +} +.from-model { + padding-top: 26px; + >div { + clear: both; + } + .list { + position: relative; + margin-bottom: 10px; + .text-box { + width: 112px; + float: left; + text-align: right; + margin-right: 8px; + >span { + font-size: 14px; + color: #777; + display: inline-block; + padding-top: 6px; + } + } + .cont-box { + width: 580px; + float: left; + .label-box { + width: 100%; + } + .text-b { + font-size: 14px; + color: #777; + display: inline-block; + padding:0 6px 0 20px; + } + } + .add { + line-height: 32px; + a { + color: #0097e0; + } + } + &:hover { + } + .list-t { + width: 50%; + float: left; + } + } +} \ No newline at end of file diff --git a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue index 98d2234450..a0cdc36713 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/formModel.vue @@ -13,7 +13,6 @@
-
{{$t('Node name')}}
@@ -51,7 +50,6 @@ {{$t('Description')}}
-
- + + + + Worker分组 +
@@ -178,15 +178,16 @@ import mShell from './tasks/shell' import mSpark from './tasks/spark' import mPython from './tasks/python' - import { isNameExDag, rtBantpl } from './../plugIn/util' import JSP from './../plugIn/jsPlumbHandle' import mProcedure from './tasks/procedure' import mDependent from './tasks/dependent' import mSubProcess from './tasks/sub_process' import mSelectInput from './_source/selectInput' import mTimeoutAlarm from './_source/timeoutAlarm' + import mWorkerGroups from './_source/workerGroups' import clickoutside from '@/module/util/clickoutside' import disabledState from '@/module/mixin/disabledState' + import { isNameExDag, rtBantpl } from './../plugIn/util' import mPriority from '@/module/components/priority/priority' export default { @@ -218,7 +219,9 @@ // Task timeout alarm timeout: {}, // Task priority - taskInstancePriority: 'MEDIUM' + taskInstancePriority: 'MEDIUM', + // worker group id + workerGroupId: null } }, /** @@ -349,7 +352,8 @@ maxRetryTimes: this.maxRetryTimes, retryInterval: this.retryInterval, timeout: this.timeout, - taskInstancePriority: this.taskInstancePriority + taskInstancePriority: this.taskInstancePriority, + workerGroupId: this.workerGroupId }, fromThis: this }) @@ -420,6 +424,7 @@ this.desc = o.desc this.maxRetryTimes = o.maxRetryTimes this.retryInterval = o.retryInterval + this.workerGroupId = o.workerGroupId } } this.isContentBox = true @@ -451,119 +456,12 @@ mDependent, mSelectInput, mTimeoutAlarm, - mPriority + mPriority, + mWorkerGroups } } diff --git a/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue b/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue index c4ee4d79d9..e377ebfa7f 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/definitionDetails.vue @@ -26,6 +26,7 @@ methods: { ...mapMutations('dag', ['resetParams', 'setIsDetails']), ...mapActions('dag', ['getProcessList', 'getResourcesList', 'getProcessDetails']), + ...mapActions('security', ['getWorkerGroupsAll']), /** * init */ @@ -40,7 +41,9 @@ // get process definition this.getProcessList(), // get resource - this.getResourcesList() + this.getResourcesList(), + // get worker group list + this.getWorkerGroupsAll() ]).then((data) => { let item = data[0] this.setIsDetails(item.releaseState === 'ONLINE') diff --git a/escheduler-ui/src/js/conf/home/pages/dag/index.vue b/escheduler-ui/src/js/conf/home/pages/dag/index.vue index 6e2c0a2b23..b9aee791dd 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/index.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/index.vue @@ -25,6 +25,7 @@ methods: { ...mapMutations('dag', ['resetParams']), ...mapActions('dag', ['getProcessList', 'getResourcesList']), + ...mapActions('security', ['getWorkerGroupsAll']), /** * init */ @@ -37,7 +38,9 @@ // get process definition this.getProcessList(), // get resource - this.getResourcesList() + this.getResourcesList(), + // get worker group list + this.getWorkerGroupsAll() ]).then((data) => { this.isLoading = false // Whether to pop up the box? diff --git a/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue b/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue index 49ca838237..3e6c49c1f6 100644 --- a/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue +++ b/escheduler-ui/src/js/conf/home/pages/dag/instanceDetails.vue @@ -26,6 +26,7 @@ methods: { ...mapMutations('dag', ['setIsDetails', 'resetParams']), ...mapActions('dag', ['getProcessList', 'getResourcesList', 'getInstancedetail']), + ...mapActions('security', ['getWorkerGroupsAll']), /** * init */ @@ -40,7 +41,9 @@ // get process definition this.getProcessList(), // get resources - this.getResourcesList() + this.getResourcesList(), + // get worker group list + this.getWorkerGroupsAll() ]).then((data) => { let item = data[0] let flag = false diff --git a/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue new file mode 100644 index 0000000000..ff3d20be24 --- /dev/null +++ b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/createWorker.vue @@ -0,0 +1,118 @@ + + + \ No newline at end of file diff --git a/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue new file mode 100644 index 0000000000..9597e0fa9a --- /dev/null +++ b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue @@ -0,0 +1,119 @@ + + \ No newline at end of file diff --git a/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue new file mode 100644 index 0000000000..d962b937c5 --- /dev/null +++ b/escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue @@ -0,0 +1,114 @@ + + diff --git a/escheduler-ui/src/js/conf/home/router/index.js b/escheduler-ui/src/js/conf/home/router/index.js index 7dda210065..37e9d43c0d 100644 --- a/escheduler-ui/src/js/conf/home/router/index.js +++ b/escheduler-ui/src/js/conf/home/router/index.js @@ -317,6 +317,14 @@ const router = new Router({ meta: { title: `${i18n.$t('Queue manage')}` } + }, + { + path: '/security/worker-groups', + name: 'worker-groups-manage', + component: resolve => require(['../pages/security/pages/workerGroups/index'], resolve), + meta: { + title: `workerGroups` + } } ] }, diff --git a/escheduler-ui/src/js/conf/home/store/security/actions.js b/escheduler-ui/src/js/conf/home/store/security/actions.js index ac8ac20358..be0b1a2226 100644 --- a/escheduler-ui/src/js/conf/home/store/security/actions.js +++ b/escheduler-ui/src/js/conf/home/store/security/actions.js @@ -413,5 +413,48 @@ export default { reject(e) }) }) + }, + /** + * get worker groups + */ + getWorkerGroups ({ state }, payload) { + return new Promise((resolve, reject) => { + io.get(`worker-group/list-paging`, payload, res => { + resolve(res.data) + }).catch(e => { + reject(e) + }) + }) + }, + /** + * get worker groups all + */ + getWorkerGroupsAll ({ state }, payload) { + return new Promise((resolve, reject) => { + io.get(`worker-group/all-groups`, payload, res => { + state.workerGroupsListAll = res.data + resolve(res.data) + }).catch(e => { + reject(e) + }) + }) + }, + saveWorkerGroups ({ state }, payload) { + return new Promise((resolve, reject) => { + io.post(`worker-group/save`, payload, res => { + resolve(res) + }).catch(e => { + reject(e) + }) + }) + }, + deleteWorkerGroups ({ state }, payload) { + return new Promise((resolve, reject) => { + io.get(`worker-group/delete-by-id`, payload, res => { + resolve(res) + }).catch(e => { + reject(e) + }) + }) } } diff --git a/escheduler-ui/src/js/conf/home/store/security/state.js b/escheduler-ui/src/js/conf/home/store/security/state.js index ddcb8e289d..be52d7838c 100644 --- a/escheduler-ui/src/js/conf/home/store/security/state.js +++ b/escheduler-ui/src/js/conf/home/store/security/state.js @@ -15,5 +15,5 @@ * limitations under the License. */ export default { - + workerGroupsListAll: [] } diff --git a/escheduler-ui/src/js/module/components/priority/priority.vue b/escheduler-ui/src/js/module/components/priority/priority.vue index 1fd0f98be1..50473ec02c 100644 --- a/escheduler-ui/src/js/module/components/priority/priority.vue +++ b/escheduler-ui/src/js/module/components/priority/priority.vue @@ -91,6 +91,7 @@