未验证 提交 71bd231c 编写于 作者: S Shiwen Cheng 提交者: GitHub

[Improvement][UI] Unify form model by m-list-box (#4982)

上级 e68e994d
......@@ -30,99 +30,83 @@
<div class="content-box" v-if="isContentBox">
<div class="form-model">
<!-- Node name -->
<div class="clearfix list">
<div class="text-box"><span>{{$t('Node name')}}</span></div>
<div class="cont-box">
<label class="label-box">
<el-input
type="text"
v-model="name"
size="small"
:disabled="isDetails"
:placeholder="$t('Please enter name (required)')"
maxlength="100"
@blur="_verifName()">
</el-input>
</label>
<m-list-box>
<div slot="text">{{$t('Node name')}}</div>
<div slot="content">
<el-input
type="text"
v-model="name"
size="small"
:disabled="isDetails"
:placeholder="$t('Please enter name (required)')"
maxlength="100"
@blur="_verifName()">
</el-input>
</div>
</div>
</m-list-box>
<!-- Running sign -->
<div class="clearfix list">
<div class="text-box"><span>{{$t('Run flag')}}</span></div>
<div class="cont-box">
<label class="label-box">
<el-radio-group v-model="runFlag" size="small">
<el-radio :label="'NORMAL'" :disabled="isDetails">{{$t('Normal')}}</el-radio>
<el-radio :label="'FORBIDDEN'" :disabled="isDetails">{{$t('Prohibition execution')}}</el-radio>
</el-radio-group>
</label>
<m-list-box>
<div slot="text">{{$t('Run flag')}}</div>
<div slot="content">
<el-radio-group v-model="runFlag" size="small">
<el-radio :label="'NORMAL'" :disabled="isDetails">{{$t('Normal')}}</el-radio>
<el-radio :label="'FORBIDDEN'" :disabled="isDetails">{{$t('Prohibition execution')}}</el-radio>
</el-radio-group>
</div>
</div>
</m-list-box>
<!-- description -->
<div class="clearfix list">
<div class="text-box">
<span>{{$t('Description')}}</span>
<m-list-box>
<div slot="text">{{$t('Description')}}</div>
<div slot="content">
<el-input
:rows="2"
type="textarea"
:disabled="isDetails"
v-model="description"
:placeholder="$t('Please enter description')">
</el-input>
</div>
<div class="cont-box">
<label class="label-box">
<el-input
:rows="2"
type="textarea"
:disabled="isDetails"
v-model="description"
:placeholder="$t('Please enter description')">
</el-input>
</label>
</div>
</div>
</m-list-box>
<!-- Task priority -->
<div class="clearfix list">
<div class="text-box">
<span>{{$t('Task priority')}}</span>
</div>
<div class="cont-box">
<m-list-box>
<div slot="text">{{$t('Task priority')}}</div>
<div slot="content">
<span class="label-box" style="width: 193px;display: inline-block;">
<m-priority v-model="taskInstancePriority"></m-priority>
</span>
<span class="text-b">{{$t('Worker group')}}</span>
<m-worker-groups v-model="workerGroup"></m-worker-groups>
</div>
</div>
</m-list-box>
<!-- Number of failed retries -->
<div class="clearfix list" v-if="nodeData.taskType !== 'SUB_PROCESS'">
<div class="text-box">
<span>{{$t('Number of failed retries')}}</span>
</div>
<div class="cont-box">
<m-list-box v-if="nodeData.taskType !== 'SUB_PROCESS'">
<div slot="text">{{$t('Number of failed retries')}}</div>
<div slot="content">
<m-select-input v-model="maxRetryTimes" :list="[0,1,2,3,4]"></m-select-input>
<span>({{$t('Times')}})</span>
<span class="text-b">{{$t('Failed retry interval')}}</span>
<m-select-input v-model="retryInterval" :list="[1,10,30,60,120]"></m-select-input>
<span>({{$t('Minute')}})</span>
</div>
</div>
</m-list-box>
<!-- Delay execution time -->
<div class="clearfix list" v-if="nodeData.taskType !== 'SUB_PROCESS' && nodeData.taskType !== 'CONDITIONS' && nodeData.taskType !== 'DEPENDENT'">
<div class="text-box">
<span>{{$t('Delay execution time')}}</span>
</div>
<div class="cont-box">
<m-list-box v-if="nodeData.taskType !== 'SUB_PROCESS' && nodeData.taskType !== 'CONDITIONS' && nodeData.taskType !== 'DEPENDENT'">
<div slot="text">{{$t('Delay execution time')}}</div>
<div slot="content">
<m-select-input v-model="delayTime" :list="[0,1,5,10]"></m-select-input>
<span>({{$t('Minute')}})</span>
</div>
</div>
</m-list-box>
<!-- Branch flow -->
<div class="clearfix list" v-if="nodeData.taskType === 'CONDITIONS'">
<div class="text-box">
<span>{{$t('State')}}</span>
</div>
<div class="cont-box">
<m-list-box v-if="nodeData.taskType === 'CONDITIONS'">
<div slot="text">{{$t('State')}}</div>
<div slot="content">
<span class="label-box" style="width: 193px;display: inline-block;">
<el-select style="width: 157px;" size="small" v-model="successNode" :disabled="true">
<el-option v-for="item in stateList" :key="item.value" :value="item.value" :label="item.label"></el-option>
......@@ -133,12 +117,10 @@
<el-option v-for="item in nodeData.rearList" :key="item.value" :value="item.value" :label="item.label"></el-option>
</el-select>
</div>
</div>
<div class="clearfix list" v-if="nodeData.taskType === 'CONDITIONS'">
<div class="text-box">
<span>{{$t('State')}}</span>
</div>
<div class="cont-box">
</m-list-box>
<m-list-box v-if="nodeData.taskType === 'CONDITIONS'">
<div slot="text">{{$t('State')}}</div>
<div slot="content">
<span class="label-box" style="width: 193px;display: inline-block;">
<el-select style="width: 157px;" size="small" v-model="failedNode" :disabled="true">
<el-option v-for="item in stateList" :key="item.value" :value="item.value" :label="item.label"></el-option>
......@@ -149,7 +131,7 @@
<el-option v-for="item in nodeData.rearList" :key="item.value" :value="item.value" :label="item.label"></el-option>
</el-select>
</div>
</div>
</m-list-box>
<!-- Task timeout alarm -->
<m-timeout-alarm
......@@ -299,6 +281,7 @@
import mMr from './tasks/mr'
import mSql from './tasks/sql'
import i18n from '@/module/i18n'
import mListBox from './tasks/_source/listBox'
import mShell from './tasks/shell'
import mWaterdrop from './tasks/waterdrop'
import mSpark from './tasks/spark'
......@@ -796,6 +779,7 @@
}
},
components: {
mListBox,
mMr,
mShell,
mWaterdrop,
......
......@@ -257,6 +257,7 @@
// get processlist
this._getProjectList().then(() => {
if (!this.dependItemList.length) {
if (!this.projectList.length) return
let projectId = this.projectList[0].value
this._getProcessByProjectId(projectId).then(definitionList => {
let value = definitionList[0].value
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
<template>
<div class="dependence-model">
<div class="conditions-model">
<m-list-box>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
......@@ -178,7 +178,7 @@
</script>
<style lang="scss" rel="stylesheet/scss">
.dependence-model {
.conditions-model {
margin-top: -10px;
.dep-opt {
margin-bottom: 10px;
......
......@@ -26,7 +26,7 @@
</label>
</div>
</m-list-box>
<div v-if="!enable">
<template v-if="!enable">
<m-list-box>
<div slot="text">{{$t('Datasource')}}</div>
<div slot="content">
......@@ -115,8 +115,8 @@
<span>({{$t('0 means unlimited by count')}})</span>
</div>
</m-list-box>
</div>
<div v-else>
</template>
<template v-else>
<m-list-box>
<div slot="text">json</div>
<div slot="content">
......@@ -140,12 +140,10 @@
</m-local-params>
</div>
</m-list-box>
</div>
<div class="clearfix list">
<div class="text-box">
<span>{{$t('Running Memory')}}</span>
</div>
<div class="cont-box">
</template>
<m-list-box>
<div slot="text">{{$t('Running Memory')}}</div>
<div slot="content">
<span >{{$t('Min Memory')}}</span>
<m-select-input v-model="xms" :list="[1,2,3,4]">
</m-select-input>
......@@ -155,7 +153,7 @@
</m-select-input>
<span>&nbsp;&nbsp;&nbsp;G</span>
</div>
</div>
</m-list-box>
<el-dialog
:visible.sync="scriptBoxDialog"
append-to-body="true"
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
<template>
<div class="dependence-model">
<div class="dependent-model">
<m-list-box>
<div slot="text">{{$t('Add dependency')}}</div>
<div slot="content">
......@@ -67,7 +67,7 @@
import disabledState from '@/module/mixin/disabledState'
export default {
name: 'dependence',
name: 'dependent',
data () {
return {
relation: 'AND',
......@@ -132,7 +132,7 @@
this.isLoading = false
}, 600)
},
cacheDependence (val) {
cacheDependent (val) {
this.$emit('on-cache-dependent', val)
}
},
......@@ -157,7 +157,7 @@
destroyed () {
},
computed: {
cacheDependence () {
cacheDependent () {
return {
relation: this.relation,
dependTaskList: _.map(this.dependTaskList, v => {
......@@ -174,7 +174,7 @@
</script>
<style lang="scss" rel="stylesheet/scss">
.dependence-model {
.dependent-model {
margin-top: -10px;
.dep-opt {
margin-bottom: 10px;
......
......@@ -33,7 +33,6 @@
</el-select>
</div>
</m-list-box>
<m-list-box v-if="programType !== 'PYTHON'">
<div slot="text">{{$t('Main Class')}}</div>
<div slot="content">
......
......@@ -88,8 +88,7 @@
</el-input>
</div>
</m-list-box>
<m-list-box >
<m-list-box>
<div slot="text">{{$t('Timeout Settings')}}</div>
<div slot="content">
<label class="label-box">
......@@ -99,24 +98,20 @@
</label>
</div>
</m-list-box>
<div class="clearfix list" v-if = "timeoutSettings" >
<div class="text-box">
<span>{{$t('Connect Timeout')}}</span>
</div>
<div class="cont-box">
<span class="label-box" style="width: 193px;display: inline-block;" >
<m-list-box v-if="timeoutSettings">
<div slot="text">{{$t('Connect Timeout')}}</div>
<div slot="content">
<span class="label-box" style="width: 193px;display: inline-block;">
<el-input size="small" v-model='connectTimeout' maxlength="7"></el-input>
</span>
<span>{{$t('ms')}}</span>
<span class="text-b">{{$t('Socket Timeout')}}</span>
<span class="label-box" style="width: 193px;display: inline-block;" >
<span class="label-box" style="width: 193px;display: inline-block;">
<el-input size="small" v-model='socketTimeout' maxlength="7"></el-input>
</span>
<span>{{$t('ms')}}</span>
</div>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
......
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
<template>
<div class="spark-model">
<div class="mr-model">
<m-list-box>
<div slot="text">{{$t('Program Type')}}</div>
<div slot="content">
......
......@@ -16,35 +16,33 @@
*/
<template>
<div class="pre_tasks-model">
<div class="clearfix list">
<div class="text-box">
<span>{{$t('Pre tasks')}}</span>
<m-list-box>
<div slot="text">{{$t('Pre tasks')}}</div>
<div slot="content">
<el-select
ref="preTasksSelector"
style="width: 100%;"
filterable
multiple
size="small"
v-model="preTasks"
:disabled="isDetails"
:id="preTasksSelectorId">
<el-option
v-for="task in preTaskList"
:key="task.id"
:value="task.id"
:label="task.name">
</el-option>
</el-select>
</div>
<div class="cont-box">
<div class="label-box">
<el-select
ref="preTasksSelector"
style="width: 100%;"
filterable
multiple
size="small"
v-model="preTasks"
:disabled="isDetails"
:id="preTasksSelectorId">
<el-option
v-for="task in preTaskList"
:key="task.id"
:value="task.id"
:label="task.name">
</el-option>
</el-select>
</div>
</div>
</div>
</m-list-box>
</div>
</template>
<script>
import disabledState from '@/module/mixin/disabledState'
import mListBox from './_source/listBox'
export default {
name: 'pre_tasks',
mixins: [disabledState],
......@@ -104,6 +102,7 @@
})
return true
}
}
},
components: { mListBox }
}
</script>
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
<template>
<div class="shell-model">
<div class="python-model">
<m-list-box>
<div slot="text">{{$t('Script')}}</div>
<div slot="content">
......@@ -36,7 +36,6 @@
</treeselect>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
......
......@@ -34,7 +34,7 @@
</div>
</div>
</m-list-box>
<template v-if="sqlType==0">
<template v-if="sqlType === 0">
<m-list-box>
<div slot="text"><strong class='requiredIcon'>*</strong>{{$t('Title')}}</div>
<div slot="content">
......@@ -54,7 +54,7 @@
</div>
</m-list-box>
</template>
<m-list-box v-show="type === 'HIVE'">
<m-list-box v-if="type === 'HIVE'">
<div slot="text">{{$t('SQL Parameter')}}</div>
<div slot="content">
<el-input
......
......@@ -15,8 +15,7 @@
* limitations under the License.
*/
<template>
<div class="sql-model">
<div class="sqoop-model">
<m-list-box>
<div slot="text">{{$t('Custom Job')}}</div>
<div slot="content">
......@@ -78,99 +77,88 @@
</m-local-params>
</div>
</m-list-box>
<template>
<m-list-box>
<div slot="text" style="font-weight:bold">{{$t('Data Source')}}</div>
</m-list-box>
<hr style="margin-left: 60px;">
<m-list-box>
<div slot="text">{{$t('Type')}}</div>
<div slot="content">
<el-select
style="width: 130px;"
size="small"
v-model="sourceType"
:disabled="isDetails"
@change="_handleSourceTypeChange">
<el-option
v-for="city in sourceTypeList"
:key="city.code"
:value="city.code"
:label="city.code">
</el-option>
</el-select>
</div>
</m-list-box>
<template v-if="sourceType === 'MYSQL'">
<m-list-box>
<div slot="text" style="font-weight:bold">{{$t('Data Source')}}</div>
<div slot="text">{{$t('Datasource')}}</div>
<div slot="content">
<m-datasource
ref="refSourceDs"
@on-dsData="_onSourceDsData"
:data="{type:sourceMysqlParams.srcType,
typeList: [{id: 0, code: 'MYSQL', disabled: false}],
datasource:sourceMysqlParams.srcDatasource }"
>
</m-datasource>
</div>
</m-list-box>
<hr style="margin-left: 60px;">
<m-list-box>
<div slot="text">{{$t('Type')}}</div>
<div slot="text">{{$t('ModelType')}}</div>
<div slot="content">
<el-select
style="width: 130px;"
size="small"
v-model="sourceType"
:disabled="isDetails"
@change="_handleSourceTypeChange">
<el-option
v-for="city in sourceTypeList"
:key="city.code"
:value="city.code"
:label="city.code">
</el-option>
</el-select>
<el-radio-group v-model="srcQueryType" size="small" @change="_handleQueryType">
<el-radio label="0">{{$t('Form')}}</el-radio>
<el-radio label="1">SQL</el-radio>
</el-radio-group>
</div>
</m-list-box>
<template v-if="sourceType ==='MYSQL'">
<template v-if="sourceMysqlParams.srcQueryType === '0'">
<m-list-box>
<div slot="text">{{$t('Datasource')}}</div>
<div slot="text">{{$t('Table')}}</div>
<div slot="content">
<m-datasource
ref="refSourceDs"
@on-dsData="_onSourceDsData"
:data="{type:sourceMysqlParams.srcType,
typeList: [{id: 0, code: 'MYSQL', disabled: false}],
datasource:sourceMysqlParams.srcDatasource }"
>
</m-datasource>
<el-input
:disabled="isDetails"
type="text"
size="small"
v-model="sourceMysqlParams.srcTable"
:placeholder="$t('Please enter Mysql Table(required)')">
</el-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('ModelType')}}</div>
<div slot="text">{{$t('ColumnType')}}</div>
<div slot="content">
<el-radio-group v-model="srcQueryType" size="small" @change="_handleQueryType">
<el-radio label="0">{{$t('Form')}}</el-radio>
<el-radio label="1">SQL</el-radio>
<el-radio-group v-model="sourceMysqlParams.srcColumnType" size="small" style="vertical-align: sub;">
<el-radio label="0">{{$t('All Columns')}}</el-radio>
<el-radio label="1">{{$t('Some Columns')}}</el-radio>
</el-radio-group>
</div>
</m-list-box>
<template v-if="sourceMysqlParams.srcQueryType=='0'">
<m-list-box>
<div slot="text">{{$t('Table')}}</div>
<div slot="content">
<el-input
:disabled="isDetails"
type="text"
size="small"
v-model="sourceMysqlParams.srcTable"
:placeholder="$t('Please enter Mysql Table(required)')">
</el-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('ColumnType')}}</div>
<div slot="content">
<el-radio-group v-model="sourceMysqlParams.srcColumnType" size="small" style="vertical-align: sub;">
<el-radio label="0">{{$t('All Columns')}}</el-radio>
<el-radio label="1">{{$t('Some Columns')}}</el-radio>
</el-radio-group>
</div>
</m-list-box>
<m-list-box v-if="sourceMysqlParams.srcColumnType=='1'">
<div slot="text">{{$t('Column')}}</div>
<div slot="content">
<el-input
:disabled="isDetails"
type="text"
size="small"
v-model="sourceMysqlParams.srcColumns"
:placeholder="$t('Please enter Columns (Comma separated)')">
</el-input>
</div>
</m-list-box>
</template>
<m-list-box v-if="sourceMysqlParams.srcColumnType === '1'">
<div slot="text">{{$t('Column')}}</div>
<div slot="content">
<el-input
:disabled="isDetails"
type="text"
size="small"
v-model="sourceMysqlParams.srcColumns"
:placeholder="$t('Please enter Columns (Comma separated)')">
</el-input>
</div>
</m-list-box>
</template>
</template>
<template v-if="sourceType=='HIVE'">
<template v-if="sourceType === 'HIVE'">
<m-list-box>
<div slot="text">{{$t('Database')}}</div>
<div slot="content">
......@@ -220,8 +208,7 @@
</div>
</m-list-box>
</template>
<template v-if="sourceType=='HDFS'">
<template v-if="sourceType === 'HDFS'">
<m-list-box>
<div slot="text">{{$t('Export Dir')}}</div>
<div slot="content">
......@@ -235,25 +222,23 @@
</div>
</m-list-box>
</template>
<m-list-box v-show="srcQueryType === '1' && sourceType ==='MYSQL'">
<div slot="text">{{$t('SQL Statement')}}</div>
<div slot="content">
<div class="from-mirror">
<textarea
id="code-sqoop-mirror"
name="code-sqoop-mirror"
style="opacity: 0;">
</textarea>
<a class="ans-modal-box-max">
<em class="el-icon-full-screen" @click="setEditorVal"></em>
</a>
</div>
</div>
</m-list-box>
<template>
<m-list-box v-show="sourceType === 'MYSQL'">
<template v-if="sourceType === 'MYSQL'">
<m-list-box v-if="srcQueryType === '1'">
<div slot="text">{{$t('SQL Statement')}}</div>
<div slot="content">
<div class="from-mirror">
<textarea
id="code-sqoop-mirror"
name="code-sqoop-mirror"
style="opacity: 0;">
</textarea>
<a class="ans-modal-box-max">
<em class="el-icon-full-screen" @click="setEditorVal"></em>
</a>
</div>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('Map Column Hive')}}</div>
<div slot="content">
<m-local-params
......@@ -264,7 +249,7 @@
</m-local-params>
</div>
</m-list-box>
<m-list-box v-show="sourceType === 'MYSQL'">
<m-list-box>
<div slot="text">{{$t('Map Column Java')}}</div>
<div slot="content">
<m-local-params
......@@ -276,12 +261,10 @@
</div>
</m-list-box>
</template>
<m-list-box>
<div slot="text" style="font-weight:bold">{{$t('Data Target')}}</div>
</m-list-box>
<hr style="margin-left: 60px;">
<m-list-box>
<div slot="text">{{$t('Type')}}</div>
<div slot="content">
......@@ -299,7 +282,7 @@
</el-select>
</div>
</m-list-box>
<div v-show="targetType==='HIVE'">
<template v-if="targetType === 'HIVE'">
<m-list-box>
<div slot="text">{{$t('Database')}}</div>
<div slot="content">
......@@ -378,8 +361,8 @@
</el-input>
</div>
</m-list-box>
</div>
<div v-show="targetType==='HDFS'">
</template>
<template v-if="targetType === 'HDFS'">
<m-list-box>
<div slot="text">{{$t('Target Dir')}}</div>
<div slot="content">
......@@ -444,8 +427,8 @@
</el-input>
</div>
</m-list-box>
</div>
<div v-show="targetType==='MYSQL'">
</template>
<template v-if="targetType === 'MYSQL'">
<m-list-box>
<div slot="text">{{$t('Datasource')}}</div>
<div slot="content">
......@@ -534,8 +517,7 @@
</el-radio-group>
</div>
</m-list-box>
</div>
</template>
<m-list-box>
<div slot="text">{{$t('Concurrency')}}</div>
<div slot="content">
......
......@@ -16,35 +16,32 @@
*/
<template>
<div class="sub_process-model">
<div class="clearfix list">
<div class="text-box">
<span>{{$t('Child Node')}}</span>
<m-list-box>
<div slot="text">{{$t('Child Node')}}</div>
<div slot="content">
<el-select
style="width: 100%;"
size="small"
filterable
v-model="wdiCurr"
:disabled="isDetails"
@change="_handleWdiChanged">
<el-option
v-for="city in processDefinitionList"
:key="city.code"
:value="city.id"
:label="city.code">
</el-option>
</el-select>
</div>
<div class="cont-box">
<div class="label-box">
<el-select
style="width: 100%;"
size="small"
filterable
v-model="wdiCurr"
:disabled="isDetails"
@change="_handleWdiChanged">
<el-option
v-for="city in processDefinitionList"
:key="city.code"
:value="city.id"
:label="city.code">
</el-option>
</el-select>
</div>
</div>
</div>
</m-list-box>
</div>
</template>
<script>
import _ from 'lodash'
import i18n from '@/module/i18n'
import disabledState from '@/module/mixin/disabledState'
import mListBox from './_source/listBox'
export default {
name: 'sub_process',
......@@ -125,6 +122,7 @@
}
},
mounted () {
}
},
components: { mListBox }
}
</script>
......@@ -15,7 +15,7 @@
* limitations under the License.
*/
<template>
<div class="shell-model">
<div class="waterdrop-model">
<!--deploy mode-->
<m-list-box>
<div slot="text">{{$t('Deploy Mode')}}</div>
......
......@@ -365,6 +365,8 @@ body::-webkit-scrollbar-thumb {
.el-dialog__body {
padding: 10px;
}
.el-dialog__header {
.el-dialog__headerbtn {
right: 10px;
}
}
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册