提交 794c713c 编写于 作者: G gongzijian

i18n

上级 8ddcb19e
......@@ -32,31 +32,31 @@ const toolOper = (dagThis) => {
code: 'pointer',
icon: '',
disable: disabled,
desc: `${i18n.$t('拖动节点和选中项')}`
desc: `${i18n.$t('Drag Nodes and Selected Items')}`
},
{
code: 'line',
icon: '',
disable: disabled,
desc: `${i18n.$t('选择线条连接')}`
desc: `${i18n.$t('Select Line Connection')}`
},
{
code: 'remove',
icon: '',
disable: disabled,
desc: `${i18n.$t('删除选中的线或节点')}`
desc: `${i18n.$t('Delete selected lines or nodes')}`
},
{
code: 'download',
icon: '',
disable: !!dagThis.type,
desc: `${i18n.$t('下载')}`
desc: `${i18n.$t('Download')}`
},
{
code: 'screen',
icon: '',
disable: disabled,
desc: `${i18n.$t('全屏')}`
desc: `${i18n.$t('Full Screen')}`
}
]
}
......@@ -70,17 +70,17 @@ const toolOper = (dagThis) => {
let publishStatus = [
{
id: 0,
desc: `${i18n.$t('未发布')}`,
desc: `${i18n.$t('Unpublished')}`,
code: 'NOT_RELEASE'
},
{
id: 1,
desc: `${i18n.$t('上线')}`,
desc: `${i18n.$t('online')}`,
code: 'ONLINE'
},
{
id: 2,
desc: `${i18n.$t('下线')}`,
desc: `${i18n.$t('offline')}`,
code: 'OFFLINE'
}
]
......@@ -92,47 +92,47 @@ let publishStatus = [
*/
let runningType = [
{
desc: `${i18n.$t('启动工作流')}`,
desc: `${i18n.$t('Start Process')}`,
code: 'START_PROCESS'
},
{
desc: `${i18n.$t('从当前节点开始执行')}`,
desc: `${i18n.$t('Execute from the current node')}`,
code: 'START_CURRENT_TASK_PROCESS'
},
{
desc: `${i18n.$t('恢复被容错的工作流')}`,
desc: `${i18n.$t('Recover tolerance fault process')}`,
code: 'RECOVER_TOLERANCE_FAULT_PROCESS'
},
{
desc: `${i18n.$t('恢复暂停流程')}`,
desc: `${i18n.$t('Resume the suspension process')}`,
code: 'RECOVER_SUSPENDED_PROCESS'
},
{
desc: `${i18n.$t('从失败节点开始执行')}`,
desc: `${i18n.$t('Execute from the failed nodes')}`,
code: 'START_FAILURE_TASK_PROCESS'
},
{
desc: `${i18n.$t('补数')}`,
desc: `${i18n.$t('Complement Data')}`,
code: 'COMPLEMENT_DATA'
},
{
desc: `${i18n.$t('调度执行')}`,
desc: `${i18n.$t('Scheduling execution')}`,
code: 'SCHEDULER'
},
{
desc: `${i18n.$t('重跑')}`,
desc: `${i18n.$t('Rerun')}`,
code: 'REPEAT_RUNNING'
},
{
desc: `${i18n.$t('暂停')}`,
desc: `${i18n.$t('Pause')}`,
code: 'PAUSE'
},
{
desc: `${i18n.$t('停止')}`,
desc: `${i18n.$t('Stop')}`,
code: 'STOP'
},
{
desc: `${i18n.$t('恢复等待线程')}`,
desc: `${i18n.$t('Recovery waiting thread')}`,
code: 'RECOVER_WAITTING_THREAD'
}
]
......@@ -149,63 +149,63 @@ let runningType = [
let tasksState = {
'SUBMITTED_SUCCESS': {
id: 0,
desc: `${i18n.$t('提交成功')}`,
desc: `${i18n.$t('Submitted successfully')}`,
color: '#A9A9A9',
icoUnicode: '',
isSpin: false
},
'RUNNING_EXEUTION': {
id: 1,
desc: `${i18n.$t('正在执行')}`,
desc: `${i18n.$t('Executing')}`,
color: '#0097e0',
icoUnicode: '',
isSpin: true
},
'READY_PAUSE': {
id: 2,
desc: `${i18n.$t('准备暂停')}`,
desc: `${i18n.$t('Ready to pause')}`,
color: '#07b1a3',
icoUnicode: '',
isSpin: false
},
'PAUSE': {
id: 3,
desc: `${i18n.$t('暂停')}`,
desc: `${i18n.$t('Pause')}`,
color: '#057c72',
icoUnicode: '',
isSpin: false
},
'READY_STOP': {
id: 4,
desc: `${i18n.$t('准备停止')}`,
desc: `${i18n.$t('Ready to stop')}`,
color: '#FE0402',
icoUnicode: '',
isSpin: false
},
'STOP': {
id: 5,
desc: `${i18n.$t('停止')}`,
desc: `${i18n.$t('Stop')}`,
color: '#e90101',
icoUnicode: '',
isSpin: false
},
'FAILURE': {
id: 6,
desc: `${i18n.$t('失败')}`,
desc: `${i18n.$t('failed')}`,
color: '#000000',
icoUnicode: '',
isSpin: false
},
'SUCCESS': {
id: 7,
desc: `${i18n.$t('成功')}`,
desc: `${i18n.$t('success')}`,
color: '#33cc00',
icoUnicode: '',
isSpin: false
},
'NEED_FAULT_TOLERANCE': {
id: 8,
desc: `${i18n.$t('需要容错')}`,
desc: `${i18n.$t('Need fault tolerance')}`,
color: '#FF8C00',
icoUnicode: '',
isSpin: false
......@@ -219,14 +219,14 @@ let tasksState = {
},
'WAITTING_THREAD': {
id: 10,
desc: `${i18n.$t('等待线程')}`,
desc: `${i18n.$t('Waiting for thread')}`,
color: '#912eed',
icoUnicode: '',
isSpin: false
},
'WAITTING_DEPEND': {
id: 11,
desc: `${i18n.$t('等待依赖')}`,
desc: `${i18n.$t('Waiting for dependence')}`,
color: '#5101be',
icoUnicode: '',
isSpin: false
......
......@@ -386,10 +386,11 @@ svg path:hover {
.name-p {
position: absolute;
left: 50%;
bottom: -24px;
top: 58px;
width: 200px;
text-align: center;
margin-left: -100px;
word-break:break-all;
}
.ban-p {
position: absolute;
......
<template>
<div class="clearfix dag-model" >
<div class="toolbar">
<div class="title"><span>{{$t('工具栏')}}</span></div>
<div class="title"><span>{{$t('Toolbar')}}</span></div>
<div class="toolbar-btn">
<div class="bar-box roundedRect jtk-draggable jtk-droppable jtk-endpoint-anchor jtk-connected"
:class="v === dagBarId ? 'active' : ''"
......@@ -20,7 +20,7 @@
<x-button
style="vertical-align: middle;"
data-toggle="tooltip"
:title="$t('查看变量')"
:title="$t('View variables')"
data-container="body"
type="primary"
size="xsmall"
......@@ -42,7 +42,7 @@
</div>
<x-button
data-toggle="tooltip"
:title="$t('刷新DAG状态')"
:title="$t('Refresh DAG status')"
data-container="body"
style="vertical-align: middle;"
icon="fa fa-refresh"
......@@ -59,7 +59,7 @@
size="xsmall"
icon="fa fa-reply"
@click="_rtNodesDag" >
{{$t('返回上一节点')}}
{{$t('Return_1')}}
</x-button>
<x-button
style="vertical-align: middle;"
......@@ -70,7 +70,7 @@
@click="_saveChart"
icon="fa fa-save"
:disabled="isDetails">
{{spinnerLoading ? 'Loading...' : $t('保存')}}
{{spinnerLoading ? 'Loading...' : $t('Save')}}
</x-button>
</div>
</div>
......@@ -152,7 +152,7 @@
let idArr = allNodesId()
const titleTpl = (item, desc) => {
let $item = _.filter(taskList, v => v.name === item.name)[0]
return `<div style="text-align: left">${i18n.$t('名称')}${$item.name}</br>${i18n.$t('状态')}${desc}</br>${i18n.$t('类型')}${$item.taskType}</br>${i18n.$t('host')}${$item.host || '-'}</br>${i18n.$t('重试次数')}${$item.retryTimes}</br>${i18n.$t('提交时间')}${formatDate($item.submitTime)}</br>${i18n.$t('开始时间')}${formatDate($item.startTime)}</br>${i18n.$t('结束时间')}${$item.endTime ? formatDate($item.endTime) : '-'}</br></div>`
return `<div style="text-align: left">${i18n.$t('Name')}${$item.name}</br>${i18n.$t('State')}${desc}</br>${i18n.$t('type')}${$item.taskType}</br>${i18n.$t('host')}${$item.host || '-'}</br>${i18n.$t('Retry Count')}${$item.retryTimes}</br>${i18n.$t('Submit Time')}${formatDate($item.submitTime)}</br>${i18n.$t('Start Time')}${formatDate($item.startTime)}</br>${i18n.$t('End Time')}${$item.endTime ? formatDate($item.endTime) : '-'}</br></div>`
}
data.forEach(v1 => {
idArr.forEach(v2 => {
......@@ -232,7 +232,7 @@
Dag.saveStore().then(res => {
if (this.urlParam.id) {
/**
* 编辑
* Edit
* @param saveInstanceEditDAGChart => Process instance editing
* @param saveEditDAGChart => Process definition editing
*/
......@@ -300,7 +300,7 @@
_saveChart () {
// Verify node
if (!this.tasks.length) {
this.$message.warning(`${i18n.$t('未创建节点保存失败')}`)
this.$message.warning(`${i18n.$t('Failed to create node to save')}`)
return
}
......@@ -350,7 +350,7 @@
this._getTaskState(false).then(res => {
setTimeout(() => {
this.isRefresh = false
this.$message.success(`${i18n.$t('刷新状态成功')}`)
this.$message.success(`${i18n.$t('Refresh status succeeded')}`)
}, 2200)
})
},
......
......@@ -12,7 +12,7 @@
slot-scope="{ selectedModel }"
maxlength="4"
@on-blur="_onBlur"
:placeholder="$t('请选择')"
:placeholder="$t('Please choose')"
:value="selectedModel === null ? '0' : selectedModel.value"
style="width: 100%;"
@on-click-icon.stop="_ckIcon">
......@@ -81,7 +81,7 @@
if (val === '0') return true
if (!(/(^[0-9]*[1-9][0-9]*$)/.test(val))) {
this.$message.warning(`${i18n.$t('请输入正整数')}`)
this.$message.warning(`${i18n.$t('Please enter a positive integer')}`)
// init
this._ckIcon()
return false
......
......@@ -2,7 +2,7 @@
<div class="timeout-alarm-model">
<div class="clearfix list">
<div class="text-box">
<span>{{$t('任务超时告警')}}</span>
<span>{{$t('Timeout alarm')}}</span>
</div>
<div class="cont-box">
<label class="label-box">
......@@ -14,14 +14,14 @@
</div>
<div class="clearfix list" v-if="enable">
<div class="text-box">
<span>{{$t('超时策略')}}</span>
<span>{{$t('Timeout strategy')}}</span>
</div>
<div class="cont-box">
<label class="label-box">
<div style="padding-top: 6px;">
<x-checkbox-group v-model="strategy">
<x-checkbox label="WARN" :disabled="isDetails">{{$t('超时告警')}}</x-checkbox>
<x-checkbox label="FAILED" :disabled="isDetails">{{$t('超时失败')}}</x-checkbox>
<x-checkbox label="WARN" :disabled="isDetails">{{$t('Timeout alarm')}}</x-checkbox>
<x-checkbox label="FAILED" :disabled="isDetails">{{$t('Timeout failure')}}</x-checkbox>
</x-checkbox-group>
</div>
</label>
......@@ -29,12 +29,12 @@
</div>
<div class="clearfix list" v-if="enable">
<div class="text-box">
<span>{{$t('超时时长')}}</span>
<span>{{$t('Timeout period')}}</span>
</div>
<div class="cont-box">
<label class="label-box">
<x-input v-model="interval" style="width: 128px;" :disabled="isDetails">
<span slot="append">{{$t('')}}</span>
<span slot="append">{{$t('Minute')}}</span>
</x-input>
</label>
</div>
......@@ -71,12 +71,12 @@
_verification () {
// Verification timeout policy
if (this.enable && !this.strategy.length) {
this.$message.warning(`${this.$t('超时策略必须选一个')}`)
this.$message.warning(`${this.$t('Timeout strategy must be selected')}`)
return false
}
// Verify timeout duration Non 0 positive integer
if (this.enable && !parseInt(this.interval) && !_.isInteger(this.interval)) {
this.$message.warning(`${this.$t('超时时长必须为正整数')}`)
this.$message.warning(`${this.$t('Timeout must be a positive integer')}`)
return false
}
this.$emit('on-timeout', {
......
<template>
<div class="form-model-model" v-clickoutside="_handleClose">
<div class="title-box">
<span class="name">{{$t('当前节点设置')}}</span>
<span class="name">{{$t('Current node settings')}}</span>
<span class="go-subtask">
<!-- Component can't pop up box to do component processing -->
<m-log :item="backfillItem">
<template slot="history"><a href="javascript:" @click="_seeHistory" ><i class="iconfont">&#xe6ee;</i><em>{{$t('查看历史')}}</em></a></template>
<template slot="log"><a href="javascript:"><i class="iconfont">&#xe691;</i><em>{{$t('查看日志')}}</em></a></template>
<template slot="history"><a href="javascript:" @click="_seeHistory" ><i class="iconfont">&#xe6ee;</i><em>{{$t('View history')}}</em></a></template>
<template slot="log"><a href="javascript:"><i class="iconfont">&#xe691;</i><em>{{$t('View log')}}</em></a></template>
</m-log>
<a href="javascript:" @click="_goSubProcess" v-if="_isGoSubProcess"><i class="iconfont">&#xe600;</i><em>{{$t('进入该子节点')}}</em></a>
<a href="javascript:" @click="_goSubProcess" v-if="_isGoSubProcess"><i class="iconfont">&#xe600;</i><em>{{$t('Enter this child node')}}</em></a>
</span>
</div>
<div class="content-box" v-if="isContentBox">
......@@ -16,14 +16,14 @@
<!-- Node name -->
<div class="clearfix list">
<div class="text-box"><span>{{$t('节点名称')}}</span></div>
<div class="text-box"><span>{{$t('Node name')}}</span></div>
<div class="cont-box">
<label class="label-box">
<x-input
type="text"
v-model="name"
:disabled="isDetails"
:placeholder="$t('请输入name(必填)')"
:placeholder="$t('Please enter name(required)')"
maxlength="100"
@on-blur="_verifName()"
autocomplete="off">
......@@ -34,12 +34,12 @@
<!-- Running sign -->
<div class="clearfix list">
<div class="text-box"><span>{{$t('运行标志')}}</span></div>
<div class="text-box"><span>{{$t('Run flag')}}</span></div>
<div class="cont-box">
<label class="label-box">
<x-radio-group v-model="runFlag" >
<x-radio :label="'NORMAL'" :disabled="isDetails">{{$t('正常')}}</x-radio>
<x-radio :label="'FORBIDDEN'" :disabled="isDetails">{{$t('禁止执行')}}</x-radio>
<x-radio :label="'NORMAL'" :disabled="isDetails">{{$t('Normal')}}</x-radio>
<x-radio :label="'FORBIDDEN'" :disabled="isDetails">{{$t('Prohibition execution')}}</x-radio>
</x-radio-group>
</label>
</div>
......@@ -48,7 +48,7 @@
<!-- desc -->
<div class="clearfix list">
<div class="text-box">
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</div>
<div class="cont-box">
......@@ -59,7 +59,7 @@
type="textarea"
:disabled="isDetails"
v-model="desc"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</label>
......@@ -69,7 +69,7 @@
<!-- Task priority -->
<div class="clearfix list">
<div class="text-box">
<span>{{$t('任务优先级')}}</span>
<span>{{$t('Task priority')}}</span>
</div>
<div class="cont-box">
<label class="label-box">
......@@ -81,16 +81,16 @@
<!-- Number of failed retries -->
<div class="clearfix list" v-if="taskType !== 'SUB_PROCESS'">
<div class="text-box">
<span>{{$t('失败重试次数')}}</span>
<span>{{$t('Number of failed retries')}}</span>
</div>
<div class="cont-box">
<m-select-input v-model="maxRetryTimes" :list="[0,1,2,3,4]">
</m-select-input>
<span>({{$t('')}})</span>
<span class="text-b">{{$t('失败重试间隔')}}</span>
<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('')}})</span>
<span>({{$t('Minute')}})</span>
</div>
</div>
......@@ -163,8 +163,8 @@
</div>
<div class="bottom-box">
<div class="submit" style="background: #fff;">
<x-button type="text" @click="close()"> {{$t('取消')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" :disabled="isDetails" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : $t('确认添加')}} </x-button>
<x-button type="text" @click="close()"> {{$t('Cancel')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" :disabled="isDetails" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : $t('Confirm add')}} </x-button>
</div>
</div>
</div>
......@@ -269,13 +269,13 @@
*/
_goSubProcess () {
if (_.isEmpty(this.backfillItem)) {
this.$message.warning(`${i18n.$t('新创建子工作流还未执行,不能进入子工作流')}`)
this.$message.warning(`${i18n.$t('The newly created sub-Process has not yet been executed and cannot enter the sub-Process')}`)
return
}
if (this.router.history.current.name === 'projects-instance-details') {
let stateId = $(`#${this.id}`).attr('data-state-id') || null
if (!stateId) {
this.$message.warning(`${i18n.$t('该任务还未执行,不能进入子工作流')}`)
this.$message.warning(`${i18n.$t('The task has not been executed and cannot enter the sub-Process')}`)
return
}
this.store.dispatch('dag/getSubProcessId', { taskId: stateId }).then(res => {
......@@ -304,7 +304,7 @@
*/
_verifName () {
if (!_.trim(this.name)) {
this.$message.warning(`${i18n.$t('请输入名称(必填)')}`)
this.$message.warning(`${i18n.$t('Please enter name (required)')}`)
return false
}
if (this.name === this.backfillItem.name) {
......@@ -312,7 +312,7 @@
}
// Name repeat depends on dom backfill dependent store
if (isNameExDag(this.name, _.isEmpty(this.backfillItem) ? 'dom' : 'backfill')) {
this.$message.warning(`${i18n.$t('名称已存在请重新输入')}`)
this.$message.warning(`${i18n.$t('Name already exists')}`)
return false
}
return true
......
......@@ -10,18 +10,18 @@
<div v-show="isLog || source === 'list'" class="log-pop">
<div class="log-box" >
<div class="title">
<span>{{$t('查看日志')}}</span>
<span>{{$t('View log')}}</span>
<div class="full-screen">
<a href="javascript:" @click="_downloadLog" data-container="body" data-toggle="tooltip" :title="$t('下载日志')">
<a href="javascript:" @click="_downloadLog" data-container="body" data-toggle="tooltip" :title="$t('Download Log')">
<i class="iconfont" style="font-size: 20px">&#xe610;</i>
</a>
<a href="javascript:" class="refresh-log" :class="loading ? 'active' :''" @click="!loading && _refreshLog()" data-container="body" data-toggle="tooltip" :title="$t('刷新日志')">
<a href="javascript:" class="refresh-log" :class="loading ? 'active' :''" @click="!loading && _refreshLog()" data-container="body" data-toggle="tooltip" :title="$t('Refresh Log')">
<i class="fa iconfont">&#xe602;</i>
</a>
<a href="javascript:" @click="_screenOpen" v-show="!isScreen" data-container="body" data-toggle="tooltip" :title="$t('进入全屏')">
<a href="javascript:" @click="_screenOpen" v-show="!isScreen" data-container="body" data-toggle="tooltip" :title="$t('Enter full screen')">
<i class="iconfont">&#xe6e0;</i>
</a>
<a href="javascript:" @click="_screenClose" v-show="isScreen" data-container="body" data-toggle="tooltip" :title="$t('取消全屏')">
<a href="javascript:" @click="_screenClose" v-show="isScreen" data-container="body" data-toggle="tooltip" :title="$t('Cancel full screen')">
<i class="iconfont">&#xe660;</i>
</a>
</div>
......@@ -32,7 +32,7 @@
</div>
</div>
<div class="operation">
<x-button type="primary" shape="circle" @click="close"> {{$t('关闭')}} </x-button>
<x-button type="primary" shape="circle" @click="close"> {{$t('Close')}} </x-button>
</div>
</div>
</div>
......@@ -88,13 +88,13 @@
setTimeout(() => {
this.loading = false
if (res.data) {
this.$message.success(`${i18n.$t('更新日志成功')}`)
this.$message.success(`${i18n.$t('Update log success')}`)
} else {
this.$message.warning(`${i18n.$t('暂无更多日志')}`)
this.$message.warning(`${i18n.$t('No more logs')}`)
}
}, 1500)
// Handling text field size
handerTextareaSize().html('').text(res.data || `${i18n.$t('暂无日志')}`)
handerTextareaSize().html('').text(res.data || `${i18n.$t('No log')}`)
}).catch(e => {
this.$message.error(e.msg || '')
this.loading = false
......@@ -108,15 +108,15 @@
if (!res.data) {
this.isData = false
setTimeout(() => {
this.$message.warning(`${i18n.$t('暂无更多日志')}`)
this.$message.warning(`${i18n.$t('No more logs')}`)
}, 1000)
// Handling text field size
handerTextareaSize().html('').text(content || `${i18n.$t('暂无日志')}`)
handerTextareaSize().html('').text(content || `${i18n.$t('No log')}`)
} else {
this.isData = true
content = res.data
// Handling text field size
handerTextareaSize().html('').text(content || `${i18n.$t('暂无日志')}`)
handerTextareaSize().html('').text(content || `${i18n.$t('No log')}`)
setTimeout(() => {
$('#textarea').scrollTop(2)
......@@ -189,7 +189,7 @@
if (($this.scrollTop() + $this.height()) === $this.height()) {
if (self.loadingIndex > 0) {
self.$message.loading({
content: `${i18n.$t('正在努力请求日志中...')}`,
content: `${i18n.$t('Loading Log...')}`,
duration: 0,
closable: false
})
......@@ -201,7 +201,7 @@
// No data is not requested
if (self.isData) {
self.$message.loading({
content: `${i18n.$t('正在努力请求日志中...')}`,
content: `${i18n.$t('Loading Log...')}`,
duration: 0,
closable: false
})
......@@ -226,7 +226,7 @@
// Source is a task instance
if (this.source === 'list') {
this.$message.loading({
content: `${i18n.$t('正在努力请求日志中...')}`,
content: `${i18n.$t('Loading Log...')}`,
duration: 0,
closable: false
})
......
......@@ -7,19 +7,19 @@ import i18n from '@/module/i18n'
const cycleList = [
{
value: 'month',
label: `${i18n.$t('')}`
label: `${i18n.$t('month')}`
},
{
value: 'week',
label: `${i18n.$t('')}`
label: `${i18n.$t('week')}`
},
{
value: 'day',
label: `${i18n.$t('')}`
label: `${i18n.$t('day')}`
},
{
value: 'hour',
label: `${i18n.$t('')}`
label: `${i18n.$t('hour')}`
}
]
......@@ -30,81 +30,81 @@ const dateValueList = {
'hour': [
{
value: 'last1Hour',
label: `${i18n.$t('前1小时')}`
label: `${i18n.$t('Last1Hour')}`
},
{
value: 'last2Hours',
label: `${i18n.$t('前2小时')}`
label: `${i18n.$t('Last2Hours')}`
},
{
value: 'last3Hours',
label: `${i18n.$t('前3小时')}`
label: `${i18n.$t('Last3Hours')}`
}
],
'day': [
{
value: 'last1Days',
label: `${i18n.$t('昨天')}`
label: `${i18n.$t('Last1Days')}`
},
{
value: 'last2Days',
label: `${i18n.$t('前两天')}`
label: `${i18n.$t('Last2Days')}`
},
{
value: 'last3Days',
label: `${i18n.$t('前三天')}`
label: `${i18n.$t('Last3Days')}`
},
{
value: 'last7Days',
label: `${i18n.$t('前七天')}`
label: `${i18n.$t('Last7Days')}`
}
],
'week': [
{
value: 'lastWeek',
label: `${i18n.$t('上周')}`
label: `${i18n.$t('LastWeek')}`
},
{
value: 'lastMonday',
label: `${i18n.$t('上周一')}`
label: `${i18n.$t('LastMonday')}`
},
{
value: 'lastTuesday',
label: `${i18n.$t('上周二')}`
label: `${i18n.$t('LastTuesday')}`
},
{
value: 'lastWednesday',
label: `${i18n.$t('上周三')}`
label: `${i18n.$t('LastWednesday')}`
},
{
value: 'lastThursday',
label: `${i18n.$t('上周四')}`
label: `${i18n.$t('LastThursday')}`
},
{
value: 'lastFriday',
label: `${i18n.$t('上周五')}`
label: `${i18n.$t('LastFriday')}`
},
{
value: 'lastSaturday',
label: `${i18n.$t('上周六')}`
label: `${i18n.$t('LastSaturday')}`
},
{
value: 'lastSunday',
label: `${i18n.$t('上周日')}`
label: `${i18n.$t('LastSunday')}`
}
],
'month': [
{
value: 'lastMonth',
label: `${i18n.$t('上月')}`
label: `${i18n.$t('LastMonth')}`
},
{
value: 'lastMonthBegin',
label: `${i18n.$t('上月初')}`
label: `${i18n.$t('LastMonthBegin')}`
},
{
value: 'lastMonthEnd',
label: `${i18n.$t('上月末')}`
label: `${i18n.$t('LastMonthEnd')}`
}
]
}
......@@ -182,11 +182,11 @@ const typeList = [
const sqlTypeList = [
{
id: 0,
code: `${i18n.$t('查询')}`
code: `${i18n.$t('Query')}`
},
{
id: 1,
code: `${i18n.$t('非查询')}`
code: `${i18n.$t('Non Query')}`
}
]
......
......@@ -12,7 +12,7 @@
:label="city.code">
</x-option>
</x-select>
<x-select :placeholder="$t('请选择数据源')"
<x-select :placeholder="$t('Please select the datasource')"
v-model="datasource"
style="width: 288px;"
:disabled="isDetails">
......@@ -56,7 +56,7 @@
*/
_verifDatasource () {
if (!this.datasource) {
this.$message.warning(`${i18n.$t('请选择数据源')}`)
this.$message.warning(`${i18n.$t('Please select the datasource')}`)
return false
}
this.$emit('on-dsData', {
......
......@@ -19,17 +19,17 @@
</x-select>
<template v-if="isInstance">
<span class="instance-state">
<i class="iconfont" :class="'icon-' + el.state" v-if="el.state === 'SUCCESS'" data-toggle="tooltip" data-container="body" :title="$t('成功')">&#xe607;</i>
<i class="iconfont" :class="'icon-' + el.state" v-if="el.state === 'WAITING'" data-toggle="tooltip" data-container="body" :title="$t('等待')">&#xe62a;</i>
<i class="iconfont" :class="'icon-' + el.state" v-if="el.state === 'FAILED'" data-toggle="tooltip" data-container="body" :title="$t('失败')">&#xe626;</i>
<i class="iconfont" :class="'icon-' + el.state" v-if="el.state === 'SUCCESS'" data-toggle="tooltip" data-container="body" :title="$t('success')">&#xe607;</i>
<i class="iconfont" :class="'icon-' + el.state" v-if="el.state === 'WAITING'" data-toggle="tooltip" data-container="body" :title="$t('waiting')">&#xe62a;</i>
<i class="iconfont" :class="'icon-' + el.state" v-if="el.state === 'FAILED'" data-toggle="tooltip" data-container="body" :title="$t('failed')">&#xe626;</i>
</span>
</template>
<span class="operation">
<a href="javascript:" class="delete" @click="!isDetails && _remove($index)">
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" data-container="body" :title="$t('删除')" >&#xe611;</i>
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" data-container="body" :title="$t('delete')" >&#xe611;</i>
</a>
<a href="javascript:" class="add" @click="!isDetails && _add()" v-if="$index === (dependItemList.length - 1)">
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" data-container="body" :title="$t('添加')">&#xe636;</i>
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" data-container="body" :title="$t('Add')">&#xe636;</i>
</a>
</span>
</div>
......
......@@ -8,7 +8,7 @@
:disabled="isDetails"
type="text"
v-model="localParamsList[$index].prop"
:placeholder="$t('prop(必填)')"
:placeholder="$t('prop(required)')"
maxlength="64"
@on-blur="_verifProp()"
style="width: 164px;">
......@@ -41,25 +41,25 @@
:disabled="isDetails"
type="text"
v-model="localParamsList[$index].value"
:placeholder="$t('value(选填)')"
:placeholder="$t('value(optional)')"
maxlength="64"
@on-blur="_handleValue()"
style="width: 150px;position: relative;margin-bottom: -2px;">
</x-input>
<span class="lt-add">
<a href="javascript:" style="color:red;" @click="!isDetails && _removeUdp($index)" >
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('删除')" >&#xe611;</i>
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('delete')" >&#xe611;</i>
</a>
</span>
<span class="add" v-if="$index === (localParamsList.length - 1)">
<a href="javascript:" @click="!isDetails && _addUdp()" >
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('添加')">&#xe636;</i>
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('Add')">&#xe636;</i>
</a>
</span>
</div>
<span class="add" v-if="!localParamsList.length">
<a href="javascript:" @click="!isDetails && _addUdp()" >
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('添加')">&#xe636;</i>
<i class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('Add')">&#xe636;</i>
</a>
</span>
</div>
......@@ -149,14 +149,14 @@
})
if (!flag) {
if (!type) {
this.$message.warning(`${i18n.$t('prop不能为空')}`)
this.$message.warning(`${i18n.$t('prop is empty')}`)
}
return false
}
let newArr = _.cloneDeep(_.uniqWith(arr, _.isEqual))
if (newArr.length !== arr.length) {
if (!type) {
this.$message.warning(`${i18n.$t('prop中有重复')}`)
this.$message.warning(`${i18n.$t('prop is repeat')}`)
}
return false
}
......
......@@ -4,7 +4,7 @@
v-model="value"
filterable
:disabled="isDetails"
:placeholder="$t('请选择资源')"
:placeholder="$t('Please select resources')"
style="width: 100%;">
<x-option
v-for="city in resList"
......
<template>
<div class="dependence-model">
<m-list-box>
<div slot="text">{{$t('添加依赖')}}</div>
<div slot="text">{{$t('Add dependency')}}</div>
<div slot="content">
<div class="dep-opt">
<a href="javascript:"
@click="!isDetails && _addDep()"
class="add-dep">
<i v-if="!isLoading" class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('添加')">
<i v-if="!isLoading" class="iconfont" :class="_isDetails" data-toggle="tooltip" :title="$t('Add')">
&#xe636;
</i>
<i v-if="isLoading" class="iconfont fa fa-spin" data-toggle="tooltip" :title="$t('添加')">
<i v-if="isLoading" class="iconfont fa fa-spin" data-toggle="tooltip" :title="$t('Add')">
&#xe6af;
</i>
</a>
......@@ -20,20 +20,20 @@
class="dep-relation"
@click="!isDetails && _setGlobalRelation()"
v-if="dependTaskList.length">
{{relation === 'AND' ? $t('') : $t('')}}
{{relation === 'AND' ? $t('and') : $t('or')}}
</span>
<div class="dep-list" v-for="(el,$index) in dependTaskList">
<span class="dep-line-pie"
v-if="el.dependItemList.length"
@click="!isDetails && _setRelation($index)">
{{el.relation === 'AND' ? $t('') : $t('')}}
{{el.relation === 'AND' ? $t('and') : $t('or')}}
</span>
<i class="iconfont dep-delete"
data-toggle="tooltip"
data-container="body"
:class="_isDetails"
@click="!isDetails && _deleteDep($index)"
:title="$t('删除')" >
:title="$t('delete')" >
&#xe611;
</i>
<m-depend-item-list
......
<template>
<div class="spark-model">
<m-list-box>
<div slot="text">{{$t('程序类型')}}</div>
<div slot="text">{{$t('Program Type')}}</div>
<div slot="content">
<x-select v-model="programType" :disabled="isDetails" style="width: 100px;">
<x-option
......@@ -14,23 +14,23 @@
</div>
</m-list-box>
<m-list-box v-if="programType !== 'PYTHON'">
<div slot="text">{{$t('主函数的class')}}</div>
<div slot="text">{{$t('Main class')}}</div>
<div slot="content">
<x-input
:disabled="isDetails"
type="input"
v-model="mainClass"
:placeholder="$t('请输入mainClass')"
:placeholder="$t('Please enter main class')"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('主jar包')}}</div>
<div slot="text">{{$t('Main jar package')}}</div>
<div slot="content">
<x-select
style="width: 100%;"
:placeholder="$t('请选择主jar包')"
:placeholder="$t('Please enter main jar package')"
v-model="mainJar"
filterable
:disabled="isDetails">
......@@ -44,33 +44,33 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('命令行参数')}}</div>
<div slot="text">{{$t('Command-line parameters')}}</div>
<div slot="content">
<x-input
:autosize="{minRows:2}"
:disabled="isDetails"
type="textarea"
v-model="mainArgs"
:placeholder="$t('请输入命令行参数')"
:placeholder="$t('Please enter Command-line parameters')"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('其他参数')}}</div>
<div slot="text">{{$t('Other parameters')}}</div>
<div slot="content">
<x-input
:disabled="isDetails"
:autosize="{minRows:2}"
type="textarea"
v-model="others"
:placeholder="$t('请输入其他参数')"
:placeholder="$t('Please enter other parameters')"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('资源')}}</div>
<div slot="text">{{$t('Resources')}}</div>
<div slot="content">
<m-resources
ref="refResources"
......@@ -80,7 +80,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('自定义参数')}}</div>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
<m-local-params
ref="refLocalParams"
......@@ -145,12 +145,12 @@
*/
_verification () {
if (this.programType !== 'PYTHON' && !this.mainClass) {
this.$message.warning(`${i18n.$t('请填写主函数的class')}`)
this.$message.warning(`${i18n.$t('Please enter main class')}`)
return false
}
if (!this.mainJar) {
this.$message.warning(`${i18n.$t('请选择主jar包')}`)
this.$message.warning(`${i18n.$t('Please enter main jar package')}`)
return false
}
......
<template>
<div class="procedure-model">
<m-list-box>
<div slot="text">{{$t('数据源')}}</div>
<div slot="text">{{$t('Datasource')}}</div>
<div slot="content">
<m-datasource
ref="refDs"
......@@ -12,19 +12,19 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('方法')}}</div>
<div slot="text">{{$t('methods')}}</div>
<div slot="content">
<x-input
type="input"
:disabled="isDetails"
v-model="method"
:placeholder="$t('请输入method(选填)')"
:placeholder="$t('Please enter method(optional)')"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('自定义参数')}}</div>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
<m-local-params
ref="refLocalParams"
......@@ -85,7 +85,7 @@
// Verification function
if (!this.method) {
this.$message.warning(`${i18n.$t('请输入方法')}`)
this.$message.warning(`${i18n.$t('Please enter method')}`)
return false
}
......
<template>
<div class="shell-model">
<m-list-box>
<div slot="text">{{$t('脚本')}}</div>
<div slot="text">{{$t('Script')}}</div>
<div slot="content">
<div class="from-mirror">
<textarea id="code-python-mirror" name="code-python-mirror" style="opacity: 0;">
......@@ -10,7 +10,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('资源')}}</div>
<div slot="text">{{$t('Resources')}}</div>
<div slot="content">
<m-resources
ref="refResources"
......@@ -21,7 +21,7 @@
</m-list-box>
<m-list-box>
<div slot="text">{{$t('自定义参数')}}</div>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
<m-local-params
ref="refLocalParams"
......@@ -79,7 +79,7 @@
_verification () {
// rawScript 验证
if (!editor.getValue()) {
this.$message.warning(`${i18n.$t('请输入rawScript(必填)')}`)
this.$message.warning(`${i18n.$t('Please enter script(required)')}`)
return false
}
......
<template>
<div class="shell-model">
<m-list-box>
<div slot="text">{{$t('脚本')}}</div>
<div slot="text">{{$t('Script')}}</div>
<div slot="content">
<div class="from-mirror">
<textarea
......@@ -13,7 +13,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('资源')}}</div>
<div slot="text">{{$t('Resources')}}</div>
<div slot="content">
<m-resources
ref="refResources"
......@@ -23,7 +23,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('自定义参数')}}</div>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
<m-local-params
ref="refLocalParams"
......@@ -81,7 +81,7 @@
_verification () {
// rawScript verification
if (!editor.getValue()) {
this.$message.warning(`${i18n.$t('请输入rawScript(必填)')}`)
this.$message.warning(`${i18n.$t('Please enter script(required)')}`)
return false
}
......
<template>
<div class="spark-model">
<m-list-box>
<div slot="text">{{$t('程序类型')}}</div>
<div slot="text">{{$t('Program Type')}}</div>
<div slot="content">
<x-select
style="width: 130px;"
......@@ -17,23 +17,23 @@
</div>
</m-list-box>
<m-list-box v-if="programType !== 'PYTHON'">
<div slot="text">{{$t('主函数的class')}}</div>
<div slot="text">{{$t('Main class')}}</div>
<div slot="content">
<x-input
:disabled="isDetails"
type="input"
v-model="mainClass"
:placeholder="$t('请输入mainClass')"
:placeholder="$t('Please enter main class')"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('主jar包')}}</div>
<div slot="text">{{$t('Main jar package')}}</div>
<div slot="content">
<x-select
style="width: 100%;"
:placeholder="$t('请选择主jar包')"
:placeholder="$t('Please enter main jar package')"
v-model="mainJar"
filterable
:disabled="isDetails">
......@@ -47,7 +47,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('部署方式')}}</div>
<div slot="text">{{$t('Deploy Mode')}}</div>
<div slot="content">
<x-radio-group v-model="deployMode">
<x-radio :label="'cluster'" :disabled="isDetails"></x-radio>
......@@ -58,61 +58,61 @@
</m-list-box>
<div class="list-box-4p">
<div class="clearfix list">
<span class="sp1">{{$t('Driver内核数')}}</span>
<span class="sp1">{{$t('Driver core number')}}</span>
<span class="sp2">
<x-input
:disabled="isDetails"
type="input"
v-model="driverCores"
:placeholder="$t('请输入Driver内核数')"
:placeholder="$t('Please enter driver core number')"
style="width: 200px;"
autocomplete="off">
</x-input>
</span>
<span class="sp1 sp3">{{$t('Driver内存数')}}</span>
<span class="sp1 sp3">{{$t('Driver memory use')}}</span>
<span class="sp2">
<x-input
:disabled="isDetails"
type="input"
v-model="driverMemory"
:placeholder="$t('请输入Driver内存数')"
:placeholder="$t('Please enter driver memory use')"
style="width: 186px;"
autocomplete="off">
</x-input>
</span>
</div>
<div class="clearfix list">
<span class="sp1">{{$t('Executor数量')}}</span>
<span class="sp1">{{$t('Number of Executors')}}</span>
<span class="sp2">
<x-input
:disabled="isDetails"
type="input"
v-model="numExecutors"
:placeholder="$t('请输入Executor数量')"
:placeholder="$t('Please enter the number of Executor')"
style="width: 200px;"
autocomplete="off">
</x-input>
</span>
<span class="sp1 sp3">{{$t('Executor内存数')}}</span>
<span class="sp1 sp3">{{$t('Executor memory')}}</span>
<span class="sp2">
<x-input
:disabled="isDetails"
type="input"
v-model="executorMemory"
:placeholder="$t('请输入Executor内存数')"
:placeholder="$t('Please enter the Executor memory')"
style="width: 186px;"
autocomplete="off">
</x-input>
</span>
</div>
<div class="clearfix list">
<span class="sp1">{{$t('Executor内核数')}}</span>
<span class="sp1">{{$t('Executor core number')}}</span>
<span class="sp2">
<x-input
:disabled="isDetails"
type="input"
v-model="executorCores"
:placeholder="$t('请输入Executor内核数')"
:placeholder="$t('Please enter Executor core number')"
style="width: 200px;"
autocomplete="off">
</x-input>
......@@ -120,32 +120,32 @@
</div>
</div>
<m-list-box>
<div slot="text">{{$t('命令行参数')}}</div>
<div slot="text">{{$t('Command-line parameters')}}</div>
<div slot="content">
<x-input
:autosize="{minRows:2}"
:disabled="isDetails"
type="textarea"
v-model="mainArgs"
:placeholder="$t('请输入命令行参数')"
:placeholder="$t('Please enter Command-line parameters')"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('其他参数')}}</div>
<div slot="text">{{$t('Other parameters')}}</div>
<div slot="content">
<x-input
:disabled="isDetails"
:autosize="{minRows:2}"
type="textarea"
v-model="others"
:placeholder="$t('请输入其他参数')">
:placeholder="$t('Please enter other parameters')">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('资源')}}</div>
<div slot="text">{{$t('Resources')}}</div>
<div slot="content">
<m-resources
ref="refResources"
......@@ -155,7 +155,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('自定义参数')}}</div>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
<m-local-params
ref="refLocalParams"
......@@ -233,47 +233,47 @@
*/
_verification () {
if (this.programType !== 'PYTHON' && !this.mainClass) {
this.$message.warning(`${i18n.$t('请填写主函数的class')}`)
this.$message.warning(`${i18n.$t('Please enter main class')}`)
return false
}
if (!this.mainJar) {
this.$message.warning(`${i18n.$t('请选择主jar包')}`)
this.$message.warning(`${i18n.$t('Please enter main jar package')}`)
return false
}
if (!this.numExecutors) {
this.$message.warning(`${i18n.$t('请填写Executor数量')}`)
this.$message.warning(`${i18n.$t('Please enter the number of Executor')}`)
return false
}
if (!Number.isInteger(parseInt(this.numExecutors))) {
this.$message.warning(`${i18n.$t('Executor数量为正整数')}`)
this.$message.warning(`${i18n.$t('The number of Executors should be a positive integer')}`)
return false
}
if (!this.executorMemory) {
this.$message.warning(`${i18n.$t('请填写Executor内存数')}`)
this.$message.warning(`${i18n.$t('Please enter the Executor memory')}`)
return false
}
if (!this.executorMemory) {
this.$message.warning(`${i18n.$t('请填写Executor内存数')}`)
this.$message.warning(`${i18n.$t('Please enter the Executor memory')}`)
return false
}
if (!_.isNumber(parseInt(this.executorMemory))) {
this.$message.warning(`${i18n.$t('内存数为数字')}`)
this.$message.warning(`${i18n.$t('Memory should be a positive integer')}`)
return false
}
if (!this.executorCores) {
this.$message.warning(`${i18n.$t('请填写Executor内核数')}`)
this.$message.warning(`${i18n.$t('Please enter ExecutorPlease enter Executor core number')}`)
return false
}
if (!Number.isInteger(parseInt(this.executorCores))) {
this.$message.warning(`${i18n.$t('内核数为正整数')}`)
this.$message.warning(`${i18n.$t('Core number should be positive integer')}`)
return false
}
......
<template>
<div class="sql-model">
<m-list-box>
<div slot="text">{{$t('数据源')}}</div>
<div slot="text">{{$t('Datasource')}}</div>
<div slot="content">
<m-datasource
ref="refDs"
......@@ -11,7 +11,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('sql类型')}}</div>
<div slot="text">{{$t('SQL Type')}}</div>
<div slot="content">
<div style="display: inline-block;">
<m-sql-type
......@@ -21,26 +21,26 @@
</div>
<div v-if="!sqlType" style="display: inline-block;padding-left: 10px;margin-top: 2px;">
<x-checkbox-group v-model="showType">
<x-checkbox :label="'TABLE'" :disabled="isDetails">{{$t('表格')}}</x-checkbox>
<x-checkbox :label="'ATTACHMENT'" :disabled="isDetails">{{$t('附件')}}</x-checkbox>
<x-checkbox :label="'TABLE'" :disabled="isDetails">{{$t('Table')}}</x-checkbox>
<x-checkbox :label="'ATTACHMENT'" :disabled="isDetails">{{$t('Attachment')}}</x-checkbox>
</x-checkbox-group>
</div>
</div>
</m-list-box>
<m-list-box v-show="type === 'HIVE'">
<div slot="text">{{$t('sql参数')}}</div>
<div slot="text">{{$t('SQL Parameter')}}</div>
<div slot="content">
<x-input
:disabled="isDetails"
type="input"
v-model="connParams"
:placeholder="$t('请输入格式为') + ' key1=value1;key2=value2...'"
:placeholder="$t('Please enter format') + ' key1=value1;key2=value2...'"
autocomplete="off">
</x-input>
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('sql语句')}}</div>
<div slot="text">{{$t('SQL Statement')}}</div>
<div slot="content">
<div class="from-mirror">
<textarea
......@@ -52,7 +52,7 @@
</div>
</m-list-box>
<m-list-box v-if="type === 'HIVE'">
<div slot="text">{{$t('UDF函数')}}</div>
<div slot="text">{{$t('UDF Function')}}</div>
<div slot="content">
<m-udfs
ref="refUdfs"
......@@ -63,7 +63,7 @@
</div>
</m-list-box>
<m-list-box>
<div slot="text">{{$t('自定义参数')}}</div>
<div slot="text">{{$t('Custom Parameters')}}</div>
<div slot="content">
<m-local-params
ref="refLocalParams"
......@@ -146,7 +146,7 @@
*/
_verification () {
if (!editor.getValue()) {
this.$message.warning(`${i18n.$t('请输入sql语句(必填)')}`)
this.$message.warning(`${i18n.$t('Please enter a SQL Statement(required)')}`)
return false
}
......
......@@ -2,7 +2,7 @@
<div class="sub_process-model">
<div class="clearfix list">
<div class="text-box">
<span>{{$t('子节点')}}</span>
<span>{{$t('Child Node')}}</span>
</div>
<div class="cont-box">
<div class="label-box">
......@@ -49,7 +49,7 @@
*/
_verification () {
if (!this.wdiCurr) {
this.$message.warning(`${i18n.$t('请选择子工作流')}`)
this.$message.warning(`${i18n.$t('Please select a sub-Process')}`)
return false
}
this.$emit('on-params', {
......
<template>
<div class="affirm-model">
<m-popup :ok-text="$t('确认保存')"
:nameText="$t('是否保存DAG图')"
<m-popup :ok-text="$t('Save')"
:nameText="$t('Whether to save the DAG graph')"
@close="_close"
@ok="_ok">
</m-popup>
......
......@@ -264,10 +264,10 @@ JSP.prototype.tasksContextmenu = function (event) {
let isTwo = store.state.dag.isDetails
let html = [
`<a href="javascript:" id="startRunning" class="${isOne ? '' : 'disbled'}"><i class="iconfont">&#xe60b;</i><span>${i18n.$t('开始运行')}</span></a>`,
`<a href="javascript:" id="editNodes" class="${isTwo ? 'disbled' : ''}"><i class="iconfont">&#xe601;</i><span>${i18n.$t('编辑节点')}</span></a>`,
`<a href="javascript:" id="copyNodes" class="${isTwo ? 'disbled' : ''}"><i class="iconfont">&#xe61e;</i><span>${i18n.$t('复制节点')}</span></a>`,
`<a href="javascript:" id="removeNodes" class="${isTwo ? 'disbled' : ''}"><i class="iconfont">&#xe611;</i><span>${i18n.$t('删除节点')}</span></a>`
`<a href="javascript:" id="startRunning" class="${isOne ? '' : 'disbled'}"><i class="iconfont">&#xe60b;</i><span>${i18n.$t('Start')}</span></a>`,
`<a href="javascript:" id="editNodes" class="${isTwo ? 'disbled' : ''}"><i class="iconfont">&#xe601;</i><span>${i18n.$t('Edit')}</span></a>`,
`<a href="javascript:" id="copyNodes" class="${isTwo ? 'disbled' : ''}"><i class="iconfont">&#xe61e;</i><span>${i18n.$t('Copy')}</span></a>`,
`<a href="javascript:" id="removeNodes" class="${isTwo ? 'disbled' : ''}"><i class="iconfont">&#xe611;</i><span>${i18n.$t('Delete')}</span></a>`
]
let operationHtml = () => {
......
......@@ -38,7 +38,7 @@ const saveTargetarr = (valId, domId) => {
}
const rtBantpl = () => {
return `<i class="iconfont" data-toggle="tooltip" data-html="true" data-container="body" data-placement="left" title="${i18n.$t('禁止执行')}">&#xe63e;</i>`
return `<i class="iconfont" data-toggle="tooltip" data-html="true" data-container="body" data-placement="left" title="${i18n.$t('Prohibition execution')}">&#xe63e;</i>`
}
/**
......
......@@ -2,14 +2,14 @@
<div class="udp-model">
<div class="scrollbar contpi-boxt">
<div class="title">
<span>{{$t('设置DAG图名称')}}</span>
<span>{{$t('Set the DAG diagram name')}}</span>
</div>
<div>
<x-input
type="text"
v-model="name"
:disabled="router.history.current.name === 'projects-instance-details'"
:placeholder="$t('请输入name(必填)')">
:placeholder="$t('Please enter name(required)')">
</x-input>
</div>
<template v-if="router.history.current.name !== 'projects-instance-details'">
......@@ -18,13 +18,13 @@
type="textarea"
v-model="desc"
:autosize="{minRows:2}"
:placeholder="$t('请输入desc(选填)')"
:placeholder="$t('Please enter description(optional)')"
autocomplete="off">
</x-input>
</div>
</template>
<div class="title" style="padding-top: 6px;">
<span>{{$t('设置全局')}}</span>
<span>{{$t('Set global')}}</span>
</div>
<div class="content">
<div>
......@@ -41,11 +41,11 @@
<div class="submit">
<template v-if="router.history.current.name === 'projects-instance-details'">
<div class="lint-pt">
<x-checkbox v-model="syncDefine">{{$t('是否更新流程定义')}}</x-checkbox>
<x-checkbox v-model="syncDefine">{{$t('Whether to update the process definition')}}</x-checkbox>
</div>
</template>
<x-button type="text" @click="close()"> {{$t('取消')}} </x-button>
<x-button type="primary" shape="circle" @click="ok()" v-ps="['GENERAL_USER']" >{{$t('添加')}}</x-button>
<x-button type="text" @click="close()"> {{$t('Cancel')}} </x-button>
<x-button type="primary" shape="circle" @click="ok()" v-ps="['GENERAL_USER']" >{{$t('Add')}}</x-button>
</div>
</div>
</div>
......@@ -86,7 +86,7 @@
*/
ok () {
if (!this.name) {
this.$message.warning(`${i18n.$t('DAG图名称不能为空')}`)
this.$message.warning(`${i18n.$t('DAG graph name cannot be empty')}`)
return
}
......
<template>
<div class="variable-model">
<div class="list">
<div class="name"><i class="fa fa-code"></i><b style="padding-top: 3px;display: inline-block">{{$t('全局参数')}}</b></div>
<div class="name"><i class="fa fa-code"></i><b style="padding-top: 3px;display: inline-block">{{$t('Global parameters')}}</b></div>
<div class="var-cont">
<x-button size="xsmall" type="ghost" v-for="(item,$index) in list.globalParams" @click="_copy('gbudp-' + $index)" :data-clipboard-text="item.prop + ' = ' +item.value" :class="'gbudp-' + $index"><b style="color: #2A455B;">{{item.prop}}</b> = {{item.value}}</x-button>
</div>
</div>
<div class="list" style="height: 30px;">
<div class="name"><i class="fa fa-code"></i><b style="padding-top: 3px;display: inline-block">{{$t('局部参数')}}</b></div>
<div class="name"><i class="fa fa-code"></i><b style="padding-top: 3px;display: inline-block">{{$t('Local parameters')}}</b></div>
<div class="var-cont">
&nbsp;
</div>
......@@ -57,13 +57,13 @@
_copy (className) {
let clipboard = new Clipboard(`.${className}`)
clipboard.on('success', e => {
this.$message.success(`${i18n.$t('复制成功')}`)
this.$message.success(`${i18n.$t('Copy success')}`)
// Free memory
clipboard.destroy()
})
clipboard.on('error', e => {
// Copy is not supported
this.$message.warning(`${i18n.$t('该浏览器不支持自动复制')}`)
this.$message.warning(`${i18n.$t('The browser does not support automatic copying')}`)
// Free memory
clipboard.destroy()
})
......
<template>
<div class="datasource-popup-model">
<div class="top-p">
<span>{{item ? `${$t('编辑')}` : `${$t('创建')}`}}{{`${$t('数据源')}`}}</span>
<span>{{item ? `${$t('Edit')}` : `${$t('Create')}`}}{{`${$t('Datasource')}`}}</span>
</div>
<div class="content-p">
<div class="create-datasource-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('数据源')}}</template>
<template slot="name"><b>*</b>{{$t('Datasource')}}</template>
<template slot="content">
<x-radio-group v-model="type" size="small">
<x-radio :label="'MYSQL'">MYSQL</x-radio>
......@@ -20,84 +20,84 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('数据源名称')}}</template>
<template slot="name"><b>*</b>{{$t('Datasource Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="name"
:placeholder="$t('请输入数据源名称')"
:placeholder="$t('Please enter datasource name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="note"
:placeholder="$t('请输入描述')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('IP主机名')}}</template>
<template slot="name"><b>*</b>{{$t('IP')}}</template>
<template slot="content">
<x-input
type="input"
v-model="host"
:placeholder="$t('请输入IP主机名')"
:placeholder="$t('Please enter IP')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('端口')}}</template>
<template slot="name"><b>*</b>{{$t('Port')}}</template>
<template slot="content">
<x-input
type="input"
v-model="port"
:placeholder="$t('请输入端口')"
:placeholder="$t('Please enter port')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('用户名')}}</template>
<template slot="name"><b>*</b>{{$t('User Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="userName"
:placeholder="$t('请输入用户名')"
:placeholder="$t('Please enter user name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('密码')}}</template>
<template slot="name">{{$t('Password')}}</template>
<template slot="content">
<x-input
type="password"
v-model="password"
:placeholder="$t('请输入密码')"
:placeholder="$t('Please enter your password')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('数据库名')}}</template>
<template slot="name"><b>*</b>{{$t('Database Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="database"
:placeholder="$t('请输入数据库名')"
:placeholder="$t('Please enter database name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('jdbc连接参数')}}</template>
<template slot="name">{{$t('jdbc connect parameters')}}</template>
<template slot="content">
<x-input
type="textarea"
......@@ -111,9 +111,9 @@
</div>
</div>
<div class="bottom-p">
<x-button type="text" @click="_close()"> {{$t('取消')}} </x-button>
<x-button type="success" shape="circle" @click="_testConnect()" :loading="testLoading">{{testLoading ? 'Loading...' : $t('测试连接')}}</x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="_ok()">{{spinnerLoading ? 'Loading...' :item ? `${$t('确认编辑')}` : `${$t('确认提交')}`}} </x-button>
<x-button type="text" @click="_close()"> {{$t('Cancel')}} </x-button>
<x-button type="success" shape="circle" @click="_testConnect()" :loading="testLoading">{{testLoading ? 'Loading...' : $t('Test Connect')}}</x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="_ok()">{{spinnerLoading ? 'Loading...' :item ? `${$t('Edit')}` : `${$t('Submit')}`}} </x-button>
</div>
</div>
</template>
......@@ -158,7 +158,7 @@
},
methods: {
_rtOtherPlaceholder () {
return `${i18n.$t('请输入格式为')} {"key1":"value1","key2":"value2"...} ${i18n.$t('连接参数')}`
return `${i18n.$t('Please enter format')} {"key1":"value1","key2":"value2"...} ${i18n.$t('connection parameter')}`
},
/**
* submit
......@@ -231,29 +231,29 @@
*/
_verification () {
if (!this.name) {
this.$message.warning(`${i18n.$t('请输入资源名称')}`)
this.$message.warning(`${i18n.$t('Please enter resource name')}`)
return false
}
if (!this.host) {
this.$message.warning(`${i18n.$t('请输入IP/主机名')}`)
this.$message.warning(`${i18n.$t('Please enter IP/hostname')}`)
return false
}
if (!this.port) {
this.$message.warning(`${i18n.$t('请输入端口')}`)
this.$message.warning(`${i18n.$t('Please enter port')}`)
return false
}
if (!this.userName) {
this.$message.warning(`${i18n.$t('请输入用户名')}`)
this.$message.warning(`${i18n.$t('Please enter user name')}`)
return false
}
if (!this.database) {
this.$message.warning(`${i18n.$t('请输入数据库名')}`)
this.$message.warning(`${i18n.$t('Please enter database name')}`)
return false
}
if (this.other) {
if (!isJson(this.other)) {
this.$message.warning(`${i18n.$t('jdbc连接参数不是一个正确的JSON格式')}`)
this.$message.warning(`${i18n.$t('jdbc connection parameters is not a correct JSON format')}`)
return false
}
}
......
......@@ -4,28 +4,28 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('数据源名称')}}</span>
<span>{{$t('Datasource Name')}}</span>
</th>
<th width="120">
<span>{{$t('数据源类型')}}</span>
<span>{{$t('Datasource Type')}}</span>
</th>
<th width="100">
<span>{{$t('数据源参数')}}</span>
<span>{{$t('Datasource Parameter')}}</span>
</th>
<th>
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th width="150">
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th width="150">
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="80">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -43,7 +43,7 @@
<td>
<m-tooltips-JSON :JSON="JSON.parse(item.connectionParams)" :id="item.id">
<span slot="reference">
<a href="javascript:" class="links" style="font-size: 12px;">{{$t('点击查看')}}</a>
<a href="javascript:" class="links" style="font-size: 12px;">{{$t('Click to view')}}</a>
</span>
</m-tooltips-JSON>
</td>
......@@ -57,7 +57,7 @@
size="xsmall"
data-toggle="tooltip"
v-ps="['GENERAL_USER']"
:title="$t('编辑')"
:title="$t('Edit')"
icon="iconfont icon-bianjixiugai"
@click="_edit(item)">
</x-button>
......@@ -65,10 +65,10 @@
:ref="'poptip-delete-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -77,7 +77,7 @@
size="xsmall"
icon="iconfont icon-shanchu"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
v-ps="['GENERAL_USER']">
</x-button>
</template>
......
<template>
<m-list-construction :title="$t('数据源中心')">
<m-list-construction :title="$t('Datasource')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_create('')" v-ps="['GENERAL_USER']">{{$t('创建数据源')}}</x-button>
<x-button type="ghost" size="small" @click="_create('')" v-ps="['GENERAL_USER']">{{$t('Create Datasource')}}</x-button>
</template>
</m-conditions>
</template>
......
<template>
<m-list-construction :title="$t('首页')">
<m-list-construction :title="$t('Home')">
<template slot="content">
<m-project-chart :id="0"></m-project-chart>
</template>
......
......@@ -30,7 +30,7 @@
:style="{width:emailWidth + 'px'}"
type="text"
v-model="email"
:placeholder="$t('请输入邮箱')"
:placeholder="$t('Please enter email')"
@keydown.tab="_emailTab"
@keyup.delete="_emailDelete"
@keyup.enter="_emailEnter"
......@@ -87,10 +87,10 @@
this.email = ''
this._handlerEmailWitch()
} else {
this.$message.warning(`${i18n.$t('邮箱已存在!收件人和抄送人不能重复')}`)
this.$message.warning(`${i18n.$t('Mailbox already exists! Recipients and copyers cannot repeat')}`)
}
} else {
this.$message.warning(`${i18n.$t('邮箱输入不合法')}`)
this.$message.warning(`${i18n.$t('Mailbox input is illegal')}`)
}
},
/**
......@@ -191,7 +191,7 @@
// Non-existing data
if (_.filter(_.cloneDeep(this.repeatData).concat(_.cloneDeep(this.activeList)), v => v === item).length) {
this.$message.warning(`${i18n.$t('邮箱已存在!收件人和抄送人不能重复')}`)
this.$message.warning(`${i18n.$t('Mailbox already exists! Recipients and copyers cannot repeat')}`)
return
}
// Width initialization
......
......@@ -4,28 +4,28 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('工作流名称')}}</span>
<span>{{$t('Process Name')}}</span>
</th>
<th width="50">
<span>{{$t('状态')}}</span>
<span>{{$t('State')}}</span>
</th>
<th width="140">
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th width="140">
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th>
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th width="90">
<span>{{$t('定时状态')}}</span>
<span>{{$t('Timing state')}}</span>
</th>
<th width="220">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -49,18 +49,18 @@
</td>
<td><span class="ellipsis">{{item.desc}}</span></td>
<td>
<span v-if="item.scheduleReleaseState === 'OFFLINE'">{{$t('下线')}}</span>
<span v-if="item.scheduleReleaseState === 'ONLINE'">{{$t('上线')}}</span>
<span v-if="item.scheduleReleaseState === 'OFFLINE'">{{$t('offline')}}</span>
<span v-if="item.scheduleReleaseState === 'ONLINE'">{{$t('online')}}</span>
<span v-if="!item.scheduleReleaseState">-</span>
</td>
<td>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('编辑')" @click="_edit(item)" :disabled="item.releaseState === 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-bianji"><!--{{$t('编辑')}}--></x-button>
<x-button type="success" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('启动')" @click="_start(item)" :disabled="item.releaseState !== 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-qidong"><!--{{$t('启动')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('定时')" @click="_timing(item)" :disabled="item.releaseState !== 'ONLINE' || item.scheduleReleaseState !== null" v-ps="['GENERAL_USER']" icon="iconfont icon-timer"><!--{{$t('定时')}}--></x-button>
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('下线')" @click="_downline(item)" v-if="item.releaseState === 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-erji-xiaxianjilu"><!--{{$t('下线')}}--></x-button>
<x-button type="warning" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('上线')" @click="_poponline(item)" v-if="item.releaseState === 'OFFLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-erji-xiaxianjilu-copy"><!--{{$t('上线')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('定时管理')" @click="_timingManage(item)" :disabled="item.releaseState !== 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-paibanguanli"><!--{{$t('定时管理')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('树形图')" @click="_treeView(item)" icon="iconfont icon-juxingkaobei"><!--{{$t('树形图')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('Edit')" @click="_edit(item)" :disabled="item.releaseState === 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-bianji"><!--{{$t('编辑')}}--></x-button>
<x-button type="success" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('Start')" @click="_start(item)" :disabled="item.releaseState !== 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-qidong"><!--{{$t('启动')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('Timing')" @click="_timing(item)" :disabled="item.releaseState !== 'ONLINE' || item.scheduleReleaseState !== null" v-ps="['GENERAL_USER']" icon="iconfont icon-timer"><!--{{$t('定时')}}--></x-button>
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('offline')" @click="_downline(item)" v-if="item.releaseState === 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-erji-xiaxianjilu"><!--{{$t('下线')}}--></x-button>
<x-button type="warning" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('online')" @click="_poponline(item)" v-if="item.releaseState === 'OFFLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-erji-xiaxianjilu-copy"><!--{{$t('上线')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('Cron Management')" @click="_timingManage(item)" :disabled="item.releaseState !== 'ONLINE'" v-ps="['GENERAL_USER']" icon="iconfont icon-paibanguanli"><!--{{$t('定时管理')}}--></x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('TreeView')" @click="_treeView(item)" icon="iconfont icon-juxingkaobei"><!--{{$t('树形图')}}--></x-button>
</td>
</tr>
</table>
......
<template>
<div class="start-process-model">
<div class="title-box">
<span>{{$t('启动前请先设置参数')}}</span>
<span>{{$t('Please set the parameters before starting')}}</span>
</div>
<div class="clearfix list">
<div class="text">
{{$t('失败策略')}}
{{$t('Failure Strategy')}}
</div>
<div class="cont">
<x-radio-group v-model="failureStrategy" style="margin-top: 7px;">
<x-radio :label="'CONTINUE'">{{$t('继续')}}</x-radio>
<x-radio :label="'END'">{{$t('结束')}}</x-radio>
<x-radio :label="'CONTINUE'">{{$t('Continue')}}</x-radio>
<x-radio :label="'END'">{{$t('End')}}</x-radio>
</x-radio-group>
</div>
</div>
<div class="clearfix list" v-if="sourceType === 'contextmenu'">
<div class="text">
{{$t('节点执行')}}
{{$t('Node execution')}}
</div>
<div class="cont">
<x-radio-group v-model="taskDependType">
<x-radio :label="'TASK_POST'">{{$t('向后执行')}}</x-radio>
<x-radio :label="'TASK_PRE'">{{$t('向前执行')}}</x-radio>
<x-radio :label="'TASK_ONLY'">{{$t('仅执行当前节点')}}</x-radio>
<x-radio :label="'TASK_POST'">{{$t('Backward execution')}}</x-radio>
<x-radio :label="'TASK_PRE'">{{$t('Forward execution')}}</x-radio>
<x-radio :label="'TASK_ONLY'">{{$t('Execute only the current node')}}</x-radio>
</x-radio-group>
</div>
</div>
<div class="clearfix list">
<div class="text">
{{$t('通知策略')}}
{{$t('Notification strategy')}}
</div>
<div class="cont">
<x-select style="width: 200px;" v-model="warningType">
......@@ -43,7 +43,7 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('流程优先级')}}
{{$t('Process priority')}}
</div>
<div class="cont">
<m-priority v-model="processInstancePriority"></m-priority>
......@@ -51,14 +51,14 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('通知组')}}
{{$t('Notification group')}}
</div>
<div class="cont">
<x-select
style="width: 200px;"
v-model="warningGroupId"
:disabled="!notifyGroupList.length">
<x-input slot="trigger" slot-scope="{ selectedModel }" readonly :placeholder="$t('请选择通知组')" :value="selectedModel ? selectedModel.label : ''" style="width: 200px;" @on-click-icon.stop="warningGroupId = {}">
<x-input slot="trigger" slot-scope="{ selectedModel }" readonly :placeholder="$t('Please select a notification group')" :value="selectedModel ? selectedModel.label : ''" style="width: 200px;" @on-click-icon.stop="warningGroupId = {}">
<i slot="suffix" class="fa fa-times-circle" style="font-size: 15px;cursor: pointer;" v-show="warningGroupId.id"></i>
<i slot="suffix" class="ans-icon-arrow-down" style="font-size: 12px;" v-show="!warningGroupId.id"></i>
</x-input>
......@@ -73,7 +73,7 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('收件人')}}
{{$t('Recipient')}}
</div>
<div class="cont">
<m-email v-model="receivers" :repeat-data="receiversCc"></m-email>
......@@ -81,7 +81,7 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('抄送人')}}
{{$t('Cc')}}
</div>
<div class="cont">
<m-email v-model="receiversCc" :repeat-data="receivers"></m-email>
......@@ -89,29 +89,29 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('补数')}}
{{$t('Complement Data')}}
</div>
<div class="cont">
<div style="padding-top: 6px;">
<x-checkbox v-model="execType">{{$t('是否补数')}}</x-checkbox>
<x-checkbox v-model="execType">{{$t('Whether it is a complement process?')}}</x-checkbox>
</div>
</div>
</div>
<template v-if="execType">
<div class="clearfix list" style="margin:-6px 0 16px 0">
<div class="text">
{{$t('执行方式')}}
{{$t('Mode of execution')}}
</div>
<div class="cont">
<x-radio-group v-model="runMode" style="margin-top: 7px;">
<x-radio :label="'RUN_MODE_SERIAL'">{{$t('串行执行')}}</x-radio>
<x-radio :label="'RUN_MODE_PARALLEL'">{{$t('并行执行')}}</x-radio>
<x-radio :label="'RUN_MODE_SERIAL'">{{$t('Serial execution')}}</x-radio>
<x-radio :label="'RUN_MODE_PARALLEL'">{{$t('Parallel execution')}}</x-radio>
</x-radio-group>
</div>
</div>
<div class="clearfix list">
<div class="text">
{{$t('时间')}}
{{$t('Date')}}
</div>
<div class="cont">
<x-datepicker
......@@ -121,15 +121,15 @@
@on-change="_datepicker"
:value="scheduleTime"
type="daterange"
:placeholder="$t('选择日期区间')"
:placeholder="$t('Select date range')"
format="YYYY-MM-DD HH:mm:ss">
</x-datepicker>
</div>
</div>
</template>
<div class="submit">
<x-button type="text" @click="close()"> {{$t('取消')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : $t('启动')}} </x-button>
<x-button type="text" @click="close()"> {{$t('Cancel')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : $t('Start')}} </x-button>
</div>
</div>
</template>
......
<template>
<div class="timing-process-model">
<div class="title-box">
<span>{{$t('定时前请先设置参数')}}</span>
<span>{{$t('Set parameters before timing')}}</span>
</div>
<div class="clearfix list">
<div class="text">
{{$t('起止时间')}}
{{$t('Start and stop time')}}
</div>
<div class="cont">
<x-datepicker
......@@ -15,14 +15,14 @@
@on-change="_datepicker"
:value="scheduleTime"
type="daterange"
:placeholder="$t('选择日期区间')"
:placeholder="$t('Select date range')"
format="YYYY-MM-DD HH:mm:ss">
</x-datepicker>
</div>
</div>
<div class="clearfix list">
<div class="text">
{{$t('定时')}}
{{$t('Timing')}}
</div>
<div class="cont">
<template>
......@@ -45,18 +45,18 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('失败策略')}}
{{$t('Failure Strategy')}}
</div>
<div class="cont">
<x-radio-group v-model="failureStrategy" style="margin-top: 7px;">
<x-radio :label="'CONTINUE'">{{$t('继续')}}</x-radio>
<x-radio :label="'END'">{{$t('结束')}}</x-radio>
<x-radio :label="'CONTINUE'">{{$t('Continue')}}</x-radio>
<x-radio :label="'END'">{{$t('End')}}</x-radio>
</x-radio-group>
</div>
</div>
<div class="clearfix list">
<div class="text">
{{$t('通知策略')}}
{{$t('Notification strategy')}}
</div>
<div class="cont">
<x-select
......@@ -73,7 +73,7 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('流程优先级')}}
{{$t('Process priority')}}
</div>
<div class="cont">
<m-priority v-model="processInstancePriority"></m-priority>
......@@ -81,14 +81,14 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('通知组')}}
{{$t('Notification group')}}
</div>
<div class="cont">
<x-select
style="width: 200px;"
:disabled="!notifyGroupList.length"
v-model="warningGroupId">
<x-input slot="trigger" readonly slot-scope="{ selectedModel }" :placeholder="$t('请选择通知组')" :value="selectedModel ? selectedModel.label : ''" style="width: 200px;" @on-click-icon.stop="warningGroupId = {}">
<x-input slot="trigger" readonly slot-scope="{ selectedModel }" :placeholder="$t('Please select a notification group')" :value="selectedModel ? selectedModel.label : ''" style="width: 200px;" @on-click-icon.stop="warningGroupId = {}">
<i slot="suffix" class="fa fa-times-circle" style="font-size: 15px;cursor: pointer;" v-show="warningGroupId.id"></i>
<i slot="suffix" class="ans-icon-arrow-down" style="font-size: 12px;" v-show="!warningGroupId.id"></i>
</x-input>
......@@ -103,7 +103,7 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('收件人')}}
{{$t('Recipient')}}
</div>
<div class="cont" style="width: 680px;">
<m-email v-model="receivers" :repeat-data="receiversCc"></m-email>
......@@ -111,15 +111,15 @@
</div>
<div class="clearfix list">
<div class="text">
{{$t('抄送人')}}
{{$t('Cc')}}
</div>
<div class="cont" style="width: 680px;">
<m-email v-model="receiversCc" :repeat-data="receivers"></m-email>
</div>
</div>
<div class="submit">
<x-button type="text" @click="close()"> {{$t('取消')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : (item.crontab ? $t('编辑') : $t('创建'))}} </x-button>
<x-button type="text" @click="close()"> {{$t('Cancel')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : (item.crontab ? $t('Edit') : $t('Create'))}} </x-button>
</div>
</div>
</template>
......@@ -166,12 +166,12 @@
},
_verification () {
if (!this.scheduleTime) {
this.$message.warning(`${i18n.$t('请选择时间')}`)
this.$message.warning(`${i18n.$t('Please select time')}`)
return false
}
if (!this.crontab) {
this.$message.warning(`${i18n.$t('请填写 crontab')}`)
this.$message.warning(`${i18n.$t('Please enter crontab')}`)
return false
}
return true
......
......@@ -20,19 +20,19 @@ import i18n from '@/module/i18n'
let warningTypeList = [
{
id: 'NONE',
code: `${i18n.$t('都不发')}`
code: `${i18n.$t('none_1')}`
},
{
id: 'SUCCESS',
code: `${i18n.$t('成功发')}`
code: `${i18n.$t('success_1')}`
},
{
id: 'FAILURE',
code: `${i18n.$t('失败发')}`
code: `${i18n.$t('failure_1')}`
},
{
id: 'ALL',
code: `${i18n.$t('成功或失败都发')}`
code: `${i18n.$t('All_1')}`
}
]
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('工作流定义')">
<m-list-construction :title="$t('Process definition')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" v-ps="['GENERAL_USER']" @click="() => this.$router.push({name: 'definition-create'})">{{$t('创建工作流')}}</x-button>
<x-button type="ghost" size="small" v-ps="['GENERAL_USER']" @click="() => this.$router.push({name: 'definition-create'})">{{$t('Create process')}}</x-button>
</template>
</m-conditions>
</template>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('树形图')">
<m-list-construction :title="$t('TreeView')">
<template slot="conditions"></template>
<template slot="content">
<div class="tree-view-index-model">
......@@ -20,13 +20,13 @@
type="primary"
size="default"
icon="fa fa-reply">
返回上一节点
{{$t('Return_1')}}
</x-button>
</div>
<div class="tasks-color">
<div class="toolbar-color-sp">
<a href="javascript:">
<span>节点类型</span>
<span>Node Type</span>
</a>
<a href="javascript:" v-for="(k,v) in tasksType">
<i class="fa fa-circle" :style="{color:k.color}"></i>
......@@ -35,7 +35,7 @@
</div>
<div class="state-tasks-color-sp">
<a href="javascript:">
<span>任务状态</span>
<span>{{$t('Task Status')}}</span>
</a>
<a href="javascript:" v-for="(item) in tasksState">
<i class="fa fa-square" :style="{color:item.color}"></i>
......
......@@ -9,34 +9,34 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('流程名称')}}</span>
<span>{{$t('Process Name')}}</span>
</th>
<th>
<span>{{$t('开始时间')}}</span>
<span>{{$t('Start Time')}}</span>
</th>
<th>
<span>{{$t('结束时间')}}</span>
<span>{{$t('End Time')}}</span>
</th>
<th>
<span>{{$t('crontab')}}</span>
</th>
<th>
<span>{{$t('失败策略')}}</span>
<span>{{$t('Failure Strategy')}}</span>
</th>
<th>
<span>{{$t('状态')}}</span>
<span>{{$t('State')}}</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="80">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -73,7 +73,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
@click="_editTiming(item)"
icon="iconfont icon-bianji"
:disabled="item.releaseState === 'ONLINE'" >
......@@ -83,7 +83,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('上线')"
:title="$t('online')"
@click="_online(item)"
icon="iconfont icon-erji-xiaxianjilu-copy"
v-if="item.releaseState === 'OFFLINE'">
......@@ -93,7 +93,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('下线')"
:title="$t('offline')"
icon="iconfont icon-erji-xiaxianjilu"
@click="_offline(item)"
v-if="item.releaseState === 'ONLINE'">
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('定时管理')">
<m-list-construction :title="$t('Cron Management')">
<template slot="content">
<m-list></m-list>
</template>
......
......@@ -9,14 +9,14 @@
@on-change="_datepicker"
:value="scheduleTime"
type="daterange"
:placeholder="$t('选择日期区间')"
:placeholder="$t('Select date range')"
format="YYYY-MM-DD HH:mm:ss">
</x-datepicker>
</div>
<div class="row" >
<div class="col-md-6">
<div class="chart-title">
<span>{{$t('任务状态统计')}}</span>
<span>{{$t('Task status statistics')}}</span>
</div>
<div class="row">
<div class="col-md-7">
......@@ -26,9 +26,9 @@
<div class="table-small-model">
<table>
<tr>
<th width="40">{{$t('序号')}}</th>
<th>{{$t('数量')}}</th>
<th>{{$t('状态')}}</th>
<th width="40">{{$t('#')}}</th>
<th>{{$t('Number')}}</th>
<th>{{$t('State')}}</th>
</tr>
<tr v-for="(item,$index) in taskCountDtosList">
<td><span>{{$index+1}}</span></td>
......@@ -46,7 +46,7 @@
</div>
<div class="col-md-6">
<div class="chart-title">
<span>{{$t('流程状态统计')}}</span>
<span>{{$t('Process Status Statistics')}}</span>
</div>
<div class="row">
<div class="col-md-7">
......@@ -56,9 +56,9 @@
<div class="table-small-model">
<table>
<tr>
<th width="40">{{$t('序号')}}</th>
<th>{{$t('数量')}}</th>
<th>{{$t('状态')}}</th>
<th width="40">{{$t('#')}}</th>
<th>{{$t('Number')}}</th>
<th>{{$t('State')}}</th>
</tr>
<tr v-for="(item,$index) in processStateCountList">
<td><span>{{$index+1}}</span></td>
......@@ -74,7 +74,7 @@
<div class="row">
<div class="col-md-12">
<div class="chart-title" style="margin-bottom: -20px;margin-top: 30px">
<span>{{$t('流程定义统计')}}</span>
<span>{{$t('Process Definition Statistics')}}</span>
</div>
<div>
<div id="process-definition-bar" style="height:500px"></div>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('项目首页')">
<m-list-construction :title="$t('Project Home')">
<template slot="content">
<m-project-chart :id="id"></m-project-chart>
</template>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('甘特图')">
<m-list-construction :title="$t('Gantt')">
<template slot="content">
<div class="gantt-model">
<div class="gantt-state">
<div class="state-tasks-color-sp">
<a href="javascript:">
<span>{{$t('任务状态')}}</span>
<span>{{$t('Task Status')}}</span>
</a>
<a href="javascript:" v-for="(item) in tasksState">
<i class="fa fa-square" :style="{color:item.color}"></i>
......@@ -71,7 +71,7 @@
this.isNodata = true
return
}
// 甘特图
// Gantt
Gantt.init({
el: '.gantt',
tasks: res.tasks
......
......@@ -23,43 +23,43 @@ import i18n from '@/module/i18n'
let stateType = [
{
code: '',
label: `${i18n.$t('')}`
label: `${i18n.$t('none')}`
}, {
code: 'SUBMITTED_SUCCESS',
label: `${i18n.$t('提交成功')}`
label: `${i18n.$t('Submitted successfully')}`
}, {
code: 'RUNNING_EXEUTION',
label: `${i18n.$t('正在运行')}`
label: `${i18n.$t('Running')}`
}, {
code: 'READY_PAUSE',
label: `${i18n.$t('准备暂停')}`
label: `${i18n.$t('Ready to pause')}`
}, {
code: 'PAUSE',
label: `${i18n.$t('暂停')}`
label: `${i18n.$t('Pause')}`
}, {
code: 'READY_STOP',
label: `${i18n.$t('准备停止')}`
label: `${i18n.$t('Ready to stop')}`
}, {
code: 'STOP',
label: `${i18n.$t('停止')}`
label: `${i18n.$t('Stop')}`
}, {
code: 'FAILURE',
label: `${i18n.$t('失败')}`
label: `${i18n.$t('failed')}`
}, {
code: 'SUCCESS',
label: `${i18n.$t('成功')}`
label: `${i18n.$t('success')}`
}, {
code: 'NEED_FAULT_TOLERANCE',
label: `${i18n.$t('需要容错')}`
label: `${i18n.$t('Need fault tolerance')}`
}, {
code: 'KILL',
label: `${i18n.$t('kill')}`
}, {
code: 'WAITTING_THREAD',
label: `${i18n.$t('等待线程')}`
label: `${i18n.$t('Waiting for thread')}`
}, {
code: 'WAITTING_DEPEND',
label: `${i18n.$t('等待依赖完成')}`
label: `${i18n.$t('Waiting for dependency to complete')}`
}
]
......
......@@ -13,7 +13,7 @@
placement="bottom-end"
v-model="datepicker"
:panelNum="2">
<x-input slot="input" readonly slot-scope="{value}" :value="value" style="width: 310px;" size="small" :placeholder="$t('按选择日期区间')">
<x-input slot="input" readonly slot-scope="{value}" :value="value" style="width: 310px;" size="small" :placeholder="$t('Select date range')">
<i slot="suffix"
@click.stop="_dateEmpty()"
class="ans-icon-fail-solid"
......@@ -25,7 +25,7 @@
</div>
<div class="list">
<x-select style="width: 160px;" @on-change="_onChangeState" :value="stateType" >
<x-input slot="trigger" readonly :value="selectedModel ? selectedModel.label : ''" slot-scope="{ selectedModel }" style="width: 160px;" size="small" :placeholder="$t('按状态')" suffix-icon="ans-icon-arrow-down">
<x-input slot="trigger" readonly :value="selectedModel ? selectedModel.label : ''" slot-scope="{ selectedModel }" style="width: 160px;" size="small" :placeholder="$t('State')" suffix-icon="ans-icon-arrow-down">
</x-input>
<x-option
v-for="city in stateTypeList"
......@@ -39,7 +39,7 @@
<x-input v-model="host" style="width: 140px;" size="small" :placeholder="$t('host')"></x-input>
</div>
<div class="list">
<x-input v-model="searchVal" style="width: 200px;" size="small" :placeholder="$t('按名称')"></x-input>
<x-input v-model="searchVal" style="width: 200px;" size="small" :placeholder="$t('name')"></x-input>
</div>
</template>
</m-conditions>
......
......@@ -4,37 +4,37 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('工作流名称')}}</span>
<span>{{$t('Process Name')}}</span>
</th>
<th width="120">
<span>{{$t('运行类型')}}</span>
<span>{{$t('Run Type')}}</span>
</th>
<th width="140">
<span>{{$t('开始时间')}}</span>
<span>{{$t('Start Time')}}</span>
</th>
<th width="140">
<span>{{$t('结束时间')}}</span>
<span>{{$t('End Time')}}</span>
</th>
<th width="90">
<span>{{$t('运行时长(s)')}}</span>
<span>{{$t('Duration')}}s</span>
</th>
<th width="72">
<span>{{$t('运行次数')}}</span>
<span>{{$t('Run Times')}}</span>
</th>
<th width="100">
<span>{{$t('host')}}</span>
</th>
<th width="70">
<span>{{$t('容错标识')}}</span>
<span>{{$t('fault-tolerant sign')}}</span>
</th>
<th width="50">
<span>{{$t('状态')}}</span>
<span>{{$t('State')}}</span>
</th>
<th width="260">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -67,55 +67,55 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
@click="_reEdit(item)"
v-ps="['GENERAL_USER']"
icon="iconfont icon-bianjixiugai"
:disabled="item.state !== 'SUCCESS' && item.state !== 'PAUSE' && item.state !== 'FAILURE' && item.state !== 'STOP'"><!--{{$t('编辑')}}--></x-button>
:disabled="item.state !== 'SUCCESS' && item.state !== 'PAUSE' && item.state !== 'FAILURE' && item.state !== 'STOP'"></x-button>
<x-button type="info"
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('重跑')"
:title="$t('Rerun')"
@click="_reRun(item,$index)"
v-ps="['GENERAL_USER']"
icon="iconfont icon-shuaxin"
:disabled="item.state !== 'SUCCESS' && item.state !== 'PAUSE' && item.state !== 'FAILURE' && item.state !== 'STOP'"><!--{{$t('重跑')}}--></x-button>
:disabled="item.state !== 'SUCCESS' && item.state !== 'PAUSE' && item.state !== 'FAILURE' && item.state !== 'STOP'"></x-button>
<x-button type="success"
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('恢复失败')"
:title="$t('Recovery Failed')"
@click="_restore(item,$index)"
v-ps="['GENERAL_USER']"
icon="iconfont icon-cuowuguanbishibai"
:disabled="item.state !== 'FAILURE'"><!--{{$t('恢复失败')}}--></x-button>
:disabled="item.state !== 'FAILURE'"></x-button>
<x-button type="error"
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('停止')"
:title="$t('Stop')"
@click="_stop(item)"
v-ps="['GENERAL_USER']"
icon="iconfont icon-zanting1"
:disabled="item.state !== 'RUNNING_EXEUTION'"><!--{{$t('停止')}}--></x-button>
:disabled="item.state !== 'RUNNING_EXEUTION'"></x-button>
<x-button type="warning"
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="item.state === 'PAUSE' ? $t('恢复暂停') : $t('暂停')"
:title="item.state === 'PAUSE' ? $t('Recovery Suspend') : $t('Pause')"
@click="_suspend(item,$index)"
v-ps="['GENERAL_USER']"
:icon="item.state === 'PAUSE' ? 'iconfont icon-ai06' : 'iconfont icon-zanting'"
:disabled="item.state !== 'RUNNING_EXEUTION' && item.state !== 'PAUSE'"><!--{{item.state === 'PAUSE' ? $t('恢复暂停') : $t('暂停')}}--></x-button>
:disabled="item.state !== 'RUNNING_EXEUTION' && item.state !== 'PAUSE'"></x-button>
<x-poptip
:ref="'poptip-delete-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -124,7 +124,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
v-ps="['GENERAL_USER']">
</x-button>
</template>
......@@ -134,15 +134,14 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('甘特图')"
:title="$t('Gantt')"
@click="_gantt(item)"
icon="iconfont icon-gantt">
<!--{{$t('甘特图')}}-->
</x-button>
</div>
<div v-show="!item.disabled">
<!--编辑-->
<!--Edit-->
<x-button
type="info"
shape="circle"
......@@ -151,7 +150,7 @@
disabled="true">
</x-button>
<!--重跑-->
<!--Rerun-->
<x-button
v-show="buttonType === 'run'"
type="info"
......@@ -169,7 +168,7 @@
disabled="true">
</x-button>
<!--恢复失败-->
<!--Recovery Failed-->
<x-button
v-show="buttonType === 'store'"
type="success"
......@@ -187,7 +186,7 @@
disabled="true">
</x-button>
<!--停止-->
<!--Stop-->
<x-button
type="error"
shape="circle"
......@@ -196,7 +195,7 @@
disabled="true">
</x-button>
<!--倒计时 => 恢复暂停/暂停-->
<!--倒计时 => Recovery Suspend/Pause-->
<x-button
v-show="item.state === 'PAUSE' && buttonType === 'suspend'"
type="warning"
......@@ -205,7 +204,7 @@
disabled="true">
{{item.count}}s
</x-button>
<!--恢复暂停-->
<!--Recovery Suspend-->
<x-button
v-show="item.state === 'PAUSE' && buttonType !== 'suspend'"
type="warning"
......@@ -214,7 +213,7 @@
icon="iconfont icon-ai06"
disabled="true">
</x-button>
<!--暂停-->
<!--Pause-->
<x-button
v-show="item.state !== 'PAUSE'"
type="warning"
......@@ -224,7 +223,7 @@
disabled="true">
</x-button>
<!--删除-->
<!--delete-->
<x-button
type="error"
shape="circle"
......@@ -233,7 +232,7 @@
:disabled="true">
</x-button>
<!--甘特图-->
<!--Gantt-->
<x-button
type="info"
shape="circle"
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('工作流实例')">
<m-list-construction :title="$t('Process Instance')">
<template slot="conditions">
<m-conditions @on-query="_onQuery"></m-conditions>
</template>
......@@ -43,7 +43,7 @@
total: null,
// 数据
processInstanceList: [],
// 参数
// Parameter
searchParams: {
// 搜索关键词
searchVal: '',
......@@ -53,11 +53,11 @@
pageNo: 1,
// host
host: '',
// 状态
// State
stateType: '',
// 开始时间
// Start Time
startDate: '',
// 结束时间
// End Time
endDate: ''
}
}
......@@ -66,7 +66,7 @@
methods: {
...mapActions('dag', ['getProcessInstance']),
/**
* 查询
* Query
*/
_onQuery (o) {
this.searchParams = _.assign(this.searchParams, o)
......
<template>
<m-popup ref="popup" :ok-text="item ? $t('确认编辑') : $t('确认提交')" :nameText="item ? $t('编辑项目') : $t('创建项目')" @ok="_ok">
<m-popup ref="popup" :ok-text="item ? $t('Edit') : $t('Submit')" :nameText="item ? $t('Edit') : $t('Create Project')" @ok="_ok">
<template slot="content">
<div class="projects-create-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('项目名称')}}</template>
<template slot="name"><b>*</b>{{$t('Project Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="projectName"
:placeholder="$t('请输入name')"
:placeholder="$t('Please enter name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
......@@ -78,7 +78,7 @@
},
_verification () {
if (!this.projectName) {
this.$message.warning(`${i18n.$t('请输入名称')}`)
this.$message.warning(`${i18n.$t('Please enter name')}`)
return false
}
return true
......
......@@ -4,25 +4,25 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('项目名称')}}</span>
<span>{{$t('Project Name')}}</span>
</th>
<th>
<span>{{$t('所属用户')}}</span>
<span>{{$t('Owned Users')}}</span>
</th>
<th>
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="80">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -49,7 +49,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
@click="_edit(item)"
icon="iconfont icon-bianjixiugai"
v-ps="['GENERAL_USER']">
......@@ -58,10 +58,10 @@
:ref="'poptip-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -69,7 +69,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
icon="iconfont icon-shanchu"
v-ps="['GENERAL_USER']">
</x-button>
......
<template>
<m-list-construction :title="$t('项目管理')">
<m-list-construction :title="$t('Project')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_create('')" v-ps="['GENERAL_USER']">{{$t('创建项目')}}</x-button>
<x-button type="ghost" size="small" @click="_create('')" v-ps="['GENERAL_USER']">{{$t('Create Project')}}</x-button>
</template>
</m-conditions>
</template>
......
......@@ -4,40 +4,40 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('名称')}}</span>
<span>{{$t('Name')}}</span>
</th>
<th>
<span>{{$t('工作流实例')}}</span>
<span>{{$t('Process Instance')}}</span>
</th>
<th width="80">
<span>{{$t('节点类型')}}</span>
<span>{{$t('Node Type')}}</span>
</th>
<th width="40">
<span>{{$t('状态')}}</span>
<span>{{$t('State')}}</span>
</th>
<th width="140">
<span>{{$t('提交时间')}}</span>
<span>{{$t('Submit Time')}}</span>
</th>
<th width="140">
<span>{{$t('开始时间')}}</span>
<span>{{$t('Start Time')}}</span>
</th>
<th width="140">
<span>{{$t('结束时间')}}</span>
<span>{{$t('End Time')}}</span>
</th>
<th width="110">
<span>{{$t('host')}}</span>
</th>
<th width="74">
<span>{{$t('运行时长')}}(s)</span>
<span>{{$t('Duration')}}(s)</span>
</th>
<th width="84">
<span>{{$t('重试次数')}}</span>
<span>{{$t('Retry Count')}}</span>
</th>
<th width="50">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -66,7 +66,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('查看日志')"
:title="$t('View log')"
icon="iconfont icon-xitongcaozuorizhi"
@click="_refreshLog(item)">
</x-button>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('任务实例')">
<m-list-construction :title="$t('Task Instance')">
<template slot="conditions">
<m-conditions @on-query="_onQuery"></m-conditions>
</template>
......
......@@ -4,37 +4,37 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('任务名称')}}</span>
<span>{{$t('Task Name')}}</span>
</th>
<th width="66">
<span>{{$t('任务日期')}}</span>
<span>{{$t('Task Date')}}</span>
</th>
<th width="150">
<span>{{$t('开始时间')}}</span>
<span>{{$t('Start Time')}}</span>
</th>
<th width="150">
<span>{{$t('结束时间')}}</span>
<span>{{$t('End Time')}}</span>
</th>
<th width="134">
<span>{{$t('运行时长')}}({{$t('')}})</span>
<span>{{$t('Duration')}}(s)</span>
</th>
<th>
<span>{{$t('源表')}}</span>
<span>{{$t('Source Table')}}</span>
</th>
<th width="100">
<span>{{$t('记录数')}}</span>
<span>{{$t('Record Number')}}</span>
</th>
<th>
<span>{{$t('目标表')}}</span>
<span>{{$t('Target Table')}}</span>
</th>
<th width="100">
<span>{{$t('记录数')}}</span>
<span>{{$t('Record Number')}}</span>
</th>
<th width="88">
<span>{{$t('状态')}}</span>
<span>{{$t('State')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -45,8 +45,14 @@
<span class="ellipsis" data-toggle="tooltip" data-container="body" :title="_rtTooltip(item.procName)" data-html="true">{{item.procName}}</span>
</td>
<td><span>{{item.procDate}}</span></td>
<td><span>{{item.startTime | formatDate}}</span></td>
<td><span>{{item.endTime | formatDate}}</span></td>
<td>
<span v-if="item.startTime">{{item.startTime | formatDate}}</span>
<span v-else>-</span>
</td>
<td>
<span v-if="item.endTime">{{item.endTime | formatDate}}</span>
<span v-else>-</span>
</td>
<td><span>{{item.duration}}</span></td>
<td><span class="ellipsis" data-toggle="tooltip" data-container="body" :title="_rtTooltip(item.sourceTab)" data-html="true">{{item.sourceTab}}</span></td>
<td>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'projects'"></m-secondary-menu>
<m-list-construction :title="$t('任务记录')">
<m-list-construction :title="$t('Task record')">
<template slot="conditions">
<m-conditions>
<template slot="search-group">
......@@ -16,7 +16,7 @@
format="YYYY-MM-DD HH:mm:ss"
placement="bottom-end"
:panelNum="2">
<x-input slot="input" readonly slot-scope="{value}" :value="value" style="width: 310px;" size="small" :placeholder="$t('按选择日期区间')">
<x-input slot="input" readonly slot-scope="{value}" :value="value" style="width: 310px;" size="small" :placeholder="$t('Select date range')">
<i slot="suffix"
@click.stop="_dateEmpty()"
class="ans-icon-fail-solid"
......@@ -27,14 +27,14 @@
</x-datepicker>
</div>
<div class="list">
<x-input v-model="destTable" style="width: 120px;" size="small" :placeholder="$t('按目标表')"></x-input>
<x-input v-model="destTable" style="width: 120px;" size="small" :placeholder="$t('Target Table')"></x-input>
</div>
<div class="list">
<x-input v-model="sourceTable" style="width: 120px;" size="small" :placeholder="$t('按源表')"></x-input>
<x-input v-model="sourceTable" style="width: 120px;" size="small" :placeholder="$t('Source Table')"></x-input>
</div>
<div class="list">
<x-select style="width: 90px;" @on-change="_onChangeState">
<x-input slot="trigger" readonly :value="selectedModel ? selectedModel.label : ''" slot-scope="{ selectedModel }" style="width: 90px;" size="small" :placeholder="$t('按状态')" suffix-icon="ans-icon-arrow-down"></x-input>
<x-input slot="trigger" readonly :value="selectedModel ? selectedModel.label : ''" slot-scope="{ selectedModel }" style="width: 90px;" size="small" :placeholder="$t('State')" suffix-icon="ans-icon-arrow-down"></x-input>
<x-option
v-for="city in stateList"
:key="city.label"
......@@ -48,11 +48,11 @@
@on-change="_onChangeDate"
format="YYYY-MM-DD"
:panelNum="1">
<x-input slot="input" readonly slot-scope="{value}" style="width: 130px;" :value="value" size="small" :placeholder="$t('按日期')"></x-input>
<x-input slot="input" readonly slot-scope="{value}" style="width: 130px;" :value="value" size="small" :placeholder="$t('Date')"></x-input>
</x-datepicker>
</div>
<div class="list">
<x-input v-model="taskName" style="width: 130px;" size="small" :placeholder="$t('按任务名称')"></x-input>
<x-input v-model="taskName" style="width: 130px;" size="small" :placeholder="$t('Task Name')"></x-input>
</div>
</template>
</m-conditions>
......@@ -101,27 +101,27 @@
endDate: '',
stateList: [
{
label: `${i18n.$t('')}`,
label: `${i18n.$t('none')}`,
code: ``
},
{
label: `${i18n.$t('成功')}`,
code: `${i18n.$t('成功')}`
label: `${i18n.$t('success')}`,
code: `${i18n.$t('success')}`
},
{
label: `${i18n.$t('等待')}`,
code: `${i18n.$t('等待')}`
label: `${i18n.$t('waiting')}`,
code: `${i18n.$t('waiting')}`
},
{
label: `${i18n.$t('执行中')}`,
code: `${i18n.$t('执行中')}`
label: `${i18n.$t('In Execution')}`,
code: `${i18n.$t('In Execution')}`
},
{
label: `${i18n.$t('完成')}`,
code: `${i18n.$t('完成')}`
label: `${i18n.$t('Finish')}`,
code: `${i18n.$t('Finish')}`
}, {
label: `${i18n.$t('失败')}`,
code: `${i18n.$t('失败')}`
label: `${i18n.$t('failed')}`,
code: `${i18n.$t('failed')}`
}
]
}
......
<template>
<m-list-construction :title="$t('定时管理')">
<m-list-construction :title="$t('Cron Management')">
<template slot="content">
<m-list></m-list>
</template>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'resource'"></m-secondary-menu>
<m-list-construction :title="$t('创建文件')">
<m-list-construction :title="$t('Create File')">
<template slot="content">
<div class="resource-create-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('文件名称')}}</template>
<template slot="name"><b>*</b>{{$t('File Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="fileName"
style="width: 300px;"
:placeholder="$t('请输入name')"
:placeholder="$t('Please enter name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('文件格式')}}</template>
<template slot="name"><b>*</b>{{$t('File Format')}}</template>
<template slot="content">
<x-select v-model="suffix" style="width: 100px;" @on-change="_onChange">
<x-option
......@@ -30,19 +30,19 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
style="width: 430px;"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('文件内容')}}</template>
<template slot="name"><b>*</b>{{$t('File Content')}}</template>
<template slot="content">
<textarea id="code-create-mirror" name="code-create-mirror"></textarea>
</template>
......@@ -51,8 +51,8 @@
<template slot="name">&nbsp;</template>
<template slot="content">
<div class="submit">
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : $t('确认创建')}} </x-button>
<x-button type="text" @click="() => $router.push({name: 'file'})"> {{$t('取消')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" v-ps="['GENERAL_USER']">{{spinnerLoading ? 'Loading...' : $t('Create')}} </x-button>
<x-button type="text" @click="() => $router.push({name: 'file'})"> {{$t('Cancel')}} </x-button>
</div>
</template>
</m-list-box-f>
......@@ -112,11 +112,11 @@
},
_validation () {
if (!this.fileName) {
this.$message.warning(`${i18n.$t('请输入资源名称')}`)
this.$message.warning(`${i18n.$t('Please enter resource name')}`)
return false
}
if (!editor.getValue()) {
this.$message.warning(`${i18n.$t('请输入资源内容')}`)
this.$message.warning(`${i18n.$t('Please enter the resource content')}`)
return false
}
......
<template>
<div class="no-type-model">
<img src="./down_error.png" alt="">
<p>{{$t('不支持在线查看类型')}}</p>
<p>{{$t('Online viewing type is not supported')}}</p>
</div>
</template>
<script>
......
<template>
<div class="main-layout-box file-details-model">
<m-secondary-menu :type="'resource'" ></m-secondary-menu>
<m-list-construction :title="$t('文件详情')">
<m-list-construction :title="$t('File Details')">
<div slot="content" style="margin: 20px">
<div class="file-details-content">
<h2>
<span>{{name}}</span>
<div class="down">
<i class="iconfont" data-container="body" data-toggle="tooltip" :title="$t('下载详情')" @click="_downloadFile">&#xe610;</i>
<i class="iconfont" data-container="body" data-toggle="tooltip" :title="$t('Download Details')" @click="_downloadFile">&#xe610;</i>
<em>{{size}}</em>
</div>
</h2>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'resource'" ></m-secondary-menu>
<m-list-construction :title="$t('文件详情')">
<m-list-construction :title="$t('File Details')">
<div slot="content" style="margin: 20px">
<div class="file-edit-content">
<h2>
......@@ -13,8 +13,8 @@
<textarea id="code-edit-mirror" name="code-edit-mirror"></textarea>
</div>
<div class="submit-c">
<x-button type="text" shape="circle" @click="close()" :disabled="disabled"> {{$t('返回')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()">{{spinnerLoading ? 'Loading...' : $t('保存')}} </x-button>
<x-button type="text" shape="circle" @click="close()" :disabled="disabled"> {{$t('Return')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()">{{spinnerLoading ? 'Loading...' : $t('Save')}} </x-button>
</div>
</template>
<m-no-data :msg="msg" v-if="msg"></m-no-data>
......
......@@ -4,25 +4,25 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('名称')}}</span>
<span>{{$t('Name')}}</span>
</th>
<th>
<span>{{$t('文件名称')}}</span>
<span>{{$t('File Name')}}</span>
</th>
<th>
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th width="100">
<span>{{$t('大小')}}</span>
<span>{{$t('Size')}}</span>
</th>
<th width="140">
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="140">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -48,7 +48,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
:disabled="_rtDisb(item)"
@click="_edit(item,$index)"
icon="iconfont icon-bianjixiugai"
......@@ -60,7 +60,7 @@
size="xsmall"
icon="iconfont icon-wendangxiugai"
data-toggle="tooltip"
:title="$t('重命名')"
:title="$t('Rename')"
@click="_rename(item,$index)"
v-ps="['GENERAL_USER']">
</x-button>
......@@ -70,7 +70,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('下载')"
:title="$t('Download')"
@click="_downloadFile(item)"
icon="iconfont icon-download"
v-ps="['GENERAL_USER']">
......@@ -80,10 +80,10 @@
:ref="'poptip-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -92,7 +92,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
v-ps="['GENERAL_USER']">
</x-button>
</template>
......
<template>
<m-popup :ok-text="$t('确认重命名')" :nameText="$t('重命名')" @ok="_ok" :asyn-loading="true">
<m-popup :ok-text="$t('Confirm Rename')" :nameText="$t('Rename')" @ok="_ok" :asyn-loading="true">
<template slot="content">
<div class="resource-rename-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('名称')}}</template>
<template slot="name"><b>*</b>{{$t('Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="name"
:placeholder="$t('请输入name')"
:placeholder="$t('Please enter name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
......@@ -73,7 +73,7 @@
return new Promise((resolve, reject) => {
if (!this.name) {
reject({ // eslint-disable-line
msg: `${i18n.$t('请输入资源名称')}`
msg: `${i18n.$t('Please enter resource name')}`
})
} else {
resolve()
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'resource'"></m-secondary-menu>
<m-list-construction :title="$t('文件管理')">
<m-list-construction :title="$t('File Management')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button-group size="small" >
<x-button type="ghost" @click="() => $router.push({name: 'resource-file-create'})" v-ps="['GENERAL_USER']">{{$t('创建文件')}}</x-button>
<x-button type="ghost" @click="_uploading" v-ps="['GENERAL_USER']">{{$t('上传文件')}}</x-button>
<x-button type="ghost" @click="() => $router.push({name: 'resource-file-create'})" v-ps="['GENERAL_USER']">{{$t('Create File')}}</x-button>
<x-button type="ghost" @click="_uploading" v-ps="['GENERAL_USER']">{{$t('Upload Files')}}</x-button>
</x-button-group>
</template>
</m-conditions>
......@@ -55,7 +55,7 @@
methods: {
...mapActions('resource', ['getResourcesListP']),
/**
* 文件上传
* File Upload
*/
_uploading () {
findComponentDownward(this.$root, 'roof-nav')._fileUpdate('FILE')
......
<template>
<m-popup :ok-text="item ? $t('编辑') : $t('确定提交')" :nameText="item ? $t('编辑UDF函数') : $t('创建UDF函数')" @ok="_ok" ref="popup">
<m-popup :ok-text="item ? $t('Edit') : $t('Submit')" :nameText="item ? $t('Edit UDF Function') : $t('Create UDF Function')" @ok="_ok" ref="popup">
<template slot="content">
<div class="udf-create-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('类型')}}</template>
<template slot="name"><b>*</b>{{$t('type')}}</template>
<template slot="content">
<x-radio-group v-model="type">
<x-radio :label="'HIVE'">HIVE UDF</x-radio>
......@@ -12,49 +12,49 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('UDF函数名称')}}</template>
<template slot="name"><b>*</b>{{$t('UDF Function Name')}}</template>
<template slot="content">
<x-input
type="input"
maxlength="40"
v-model="funcName"
:placeholder="$t('请输入函数名')">
:placeholder="$t('Please enter a function name')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('包名类名')}}</template>
<template slot="name"><b>*</b>{{$t('Package Name')}}</template>
<template slot="content">
<x-input
type="input"
maxlength="40"
v-model="className"
:placeholder="$t('请输入包名类名')">
:placeholder="$t('Please enter a Package name')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('参数')}}</template>
<template slot="name">{{$t('Parameter')}}</template>
<template slot="content">
<x-input
type="input"
v-model="argTypes"
:placeholder="$t('请输入参数')">
:placeholder="$t('Please enter a parameter')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('数据库名')}}</template>
<template slot="name">{{$t('Database Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="database"
:placeholder="$t('请输入数据库名')">
:placeholder="$t('Please enter database name')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('UDF资源')}}</template>
<template slot="name"><b>*</b>{{$t('UDF Resources')}}</template>
<template slot="content">
<x-select
filterable
......@@ -68,7 +68,7 @@
:label="city.alias">
</x-option>
</x-select>
<x-button type="primary" @click="_toggleUpdate" :disabled="upDisabled">{{$t('上传资源')}}</x-button>
<x-button type="primary" @click="_toggleUpdate" :disabled="upDisabled">{{$t('Upload Resources')}}</x-button>
</template>
</m-list-box-f>
<m-list-box-f v-if="isUpdate">
......@@ -81,12 +81,12 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('使用说明')}}</template>
<template slot="name">{{$t('Instructions')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:placeholder="$t('请输入使用说明')">
:placeholder="$t('Please enter a instructions')">
</x-input>
</template>
</m-list-box-f>
......@@ -209,15 +209,15 @@
*/
_validation () {
if (!this.funcName) {
this.$message.warning(`${i18n.$t('请输入UDF函数名称')}`)
this.$message.warning(`${i18n.$t('Please enter a UDF function name')}`)
return false
}
if (!this.className) {
this.$message.warning(`${i18n.$t('请输入包名类名')}`)
this.$message.warning(`${i18n.$t('Please enter a Package name')}`)
return false
}
if (!this.resourceId) {
this.$message.warning(`${i18n.$t('请选择UDF资源')}`)
this.$message.warning(`${i18n.$t('Select UDF Resources')}`)
return false
}
return true
......
......@@ -4,34 +4,34 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('UDF函数名称')}}</span>
<span>{{$t('UDF Function Name')}}</span>
</th>
<th>
<span>{{$t('类名')}}</span>
<span>{{$t('Class Name')}}</span>
</th>
<th>
<span>{{$t('参数')}}</span>
<span>{{$t('Parameter')}}</span>
</th>
<th width="80">
<span>{{$t('类型')}}</span>
<span>{{$t('type')}}</span>
</th>
<th>
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th>
<span>{{$t('jar包')}}</span>
<span>{{$t('Jar Package')}}</span>
</th>
<th>
<span>{{$t('库名')}}</span>
<span>{{$t('Library Name')}}</span>
</th>
<th width="140">
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="80">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -68,7 +68,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
@click="_edit(item)"
icon="iconfont icon-bianjixiugai"
v-ps="['GENERAL_USER']">
......@@ -77,10 +77,10 @@
:ref="'poptip-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -89,7 +89,7 @@
size="xsmall"
icon="iconfont icon-shanchu"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
v-ps="['GENERAL_USER']">
</x-button>
</template>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'resource'"></m-secondary-menu>
<m-list-construction :title="$t('UDF函数管理')">
<m-list-construction :title="$t('UDF Function')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" @click="_create" v-ps="['GENERAL_USER']" size="small" >{{$t('创建UDF函数')}}</x-button>
<x-button type="ghost" @click="_create" v-ps="['GENERAL_USER']" size="small" >{{$t('Create UDF Function')}}</x-button>
</template>
</m-conditions>
</template>
......
......@@ -4,28 +4,28 @@
<table class="fixed">
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('UDF资源名称')}}</span>
<span>{{$t('UDF Resource Name')}}</span>
</th>
<th>
<span>{{$t('文件名称')}}</span>
<span>{{$t('File Name')}}</span>
</th>
<th width="80">
<span>{{$t('文件大小')}}</span>
<span>{{$t('File Size')}}</span>
</th>
<th>
<span>{{$t('文件描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th width="140">
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th width="140">
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="110">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -57,7 +57,7 @@
size="xsmall"
icon="iconfont icon-wendangxiugai"
data-toggle="tooltip"
:title="$t('重命名')"
:title="$t('Rename')"
@click="_rename(item,$index)"
v-ps="['GENERAL_USER']">
</x-button>
......@@ -66,7 +66,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('下载')"
:title="$t('Download')"
icon="iconfont icon-download"
@click="_downloadFile(item)"
v-ps="['GENERAL_USER']">
......@@ -75,10 +75,10 @@
:ref="'poptip-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -86,7 +86,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
icon="iconfont icon-shanchu"
v-ps="['GENERAL_USER']">
</x-button>
......
<template>
<m-popup :ok-text="$t('确认重命名')" :nameText="$t('重命名')" @ok="_ok" :asyn-loading="true">
<m-popup :ok-text="$t('Confirm Rename')" :nameText="$t('Rename')" @ok="_ok" :asyn-loading="true">
<template slot="content">
<div class="resource-rename-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('名称')}}</template>
<template slot="name"><b>*</b>{{$t('Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="name"
:placeholder="$t('请输入name')"
:placeholder="$t('Please enter name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
......@@ -73,7 +73,7 @@
return new Promise((resolve, reject) => {
if (!this.name) {
reject({ // eslint-disable-line
msg: `${i18n.$t('请输入资源名称')}`
msg: `${i18n.$t('Please enter resource name')}`
})
} else {
resolve()
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'resource'"></m-secondary-menu>
<m-list-construction :title="$t('UDF资源管理')">
<m-list-construction :title="$t('UDF Resources')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_uploading" v-ps="['GENERAL_USER']">{{$t('上传UDF资源')}}</x-button>
<x-button type="ghost" size="small" @click="_uploading" v-ps="['GENERAL_USER']">{{$t('Upload UDF Resources')}}</x-button>
</template>
</m-conditions>
</template>
......@@ -52,7 +52,7 @@
methods: {
...mapActions('resource', ['getResourcesListP']),
/**
* 文件上传
* File Upload
*/
_uploading () {
findComponentDownward(this.$root, 'roof-nav')._fileUpdate('UDF')
......
<template>
<m-popup
ref="popup"
:ok-text="item ? $t('确认编辑') : $t('确认提交')"
:nameText="item ? $t('编辑队列') : $t('创建队列')"
:ok-text="item ? $t('Edit') : $t('Submit')"
:nameText="item ? $t('Edit queue') : $t('Create queue')"
@ok="_ok">
<template slot="content">
<div class="create-tenement-model">
<m-list-box-f>
<template slot="name"><b>*</b>名称</template>
<template slot="name"><b>*</b>{{$t('Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="queueName"
placeholder="请输入名称"
placeholder="Please enter name"
autocomplete="off">
</x-input>
</template>
......@@ -103,7 +103,7 @@
},
_verification(){
if (!this.queueName) {
this.$message.warning(`请输入名称`)
this.$message.warning(`Please enter name`)
return false
}
if (!this.queue) {
......
......@@ -4,22 +4,22 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('名称')}}</span>
<span>{{$t('Name')}}</span>
</th>
<th>
<span>队列值</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="70">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -54,7 +54,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
@click="_edit(item)"
icon="iconfont icon-bianjixiugai">
</x-button>
......@@ -62,13 +62,13 @@
:ref="'poptip-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('删除')">{{$t('删除')}}</x-button>
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('delete')">{{$t('delete')}}</x-button>
</template>
</x-poptip>-->
</td>
......
......@@ -2,11 +2,11 @@
<div class="main-layout-box">
<m-secondary-menu :type="'security'"></m-secondary-menu>
<template>
<m-list-construction :title="$t('队列管理')">
<m-list-construction :title="$t('Queue manage')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_create('')">{{$t('创建队列')}}</x-button>
<x-button type="ghost" size="small" @click="_create('')">{{$t('Create queue')}}</x-button>
</template>
</m-conditions>
</template>
......@@ -52,7 +52,7 @@
methods: {
...mapActions('security', ['getQueueListP']),
/**
* 查询
* Query
*/
_onConditions (o) {
this.searchVal = o.searchVal
......
......@@ -4,16 +4,16 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('ip')}}</span>
<span>{{$t('IP')}}</span>
</th>
<th>
<span>{{$t('进程pid')}}</span>
<span>{{$t('Process Pid')}}</span>
</th>
<th>
<span>{{$t('zk注册目录')}}</span>
<span>{{$t('zk registration directory')}}</span>
</th>
<th>
<span>{{$t('cpuUsage')}}</span>
......@@ -22,10 +22,10 @@
<span>{{$t('memoryUsage')}}</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('最后心跳时间')}}</span>
<span>{{$t('Last heartbeat time')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'security'"></m-secondary-menu>
<m-list-construction :title="$t('服务管理-Master')">
<m-list-construction :title="$t('Service-Master')">
<template slot="content">
<template v-if="masterList.length">
<m-list :list="masterList"></m-list>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'security'"></m-secondary-menu>
<m-list-construction :title="$t('服务管理-Worker')">
<m-list-construction :title="$t('Service-Worker')">
<template slot="content">
<template v-if="workerList.length">
<m-list :list="workerList"></m-list>
......
<template>
<m-popup
ref="popup"
:ok-text="item ? $t('确认编辑') : $t('确认提交')"
:nameText="item ? $t('编辑租户') : $t('创建租户')"
:ok-text="item ? $t('Edit') : $t('Submit')"
:nameText="item ? $t('Edit Tenant') : $t('Create Tenant')"
@ok="_ok">
<template slot="content">
<div class="create-tenement-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('租户编码')}}</template>
<template slot="name"><b>*</b>{{$t('Tenant Code')}}</template>
<template slot="content">
<x-input
type="input"
:disabled="item ? true : false"
v-model="tenantCode"
:placeholder="$t('请输入name')">
:placeholder="$t('Please enter name')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('租户名称')}}</template>
<template slot="name"><b>*</b>{{$t('Tenant Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="tenantName"
:placeholder="$t('请输入name')"
:placeholder="$t('Please enter name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('队列')}}</template>
<template slot="name"><b>*</b>{{$t('Queue')}}</template>
<template slot="content">
<x-select v-model="queueId">
<x-option
......@@ -42,12 +42,12 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
......@@ -116,15 +116,15 @@
_verification () {
let isEn = /^[A-Za-z]+$/
if (!this.tenantCode) {
this.$message.warning(`${i18n.$t('请输入租户编码只允许英文')}`)
this.$message.warning(`${i18n.$t('Please enter the tenant code in English')}`)
return false
}
if (!isEn.test(this.tenantCode)) {
this.$message.warning(`${i18n.$t('请输入英文租户编码')}`)
this.$message.warning(`${i18n.$t('Please enter tenant code in English')}`)
return false
}
if (!this.tenantName) {
this.$message.warning(`${i18n.$t('请输入租户名称')}`)
this.$message.warning(`${i18n.$t('Please enter name')}`)
return false
}
return true
......
......@@ -4,28 +4,28 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('租户编码')}}</span>
<span>{{$t('Tenant Code')}}</span>
</th>
<th>
<span>{{$t('租户名称')}}</span>
<span>{{$t('Tenant Name')}}</span>
</th>
<th>
<span>{{$t('描述')}}</span>
<span>{{$t('Description')}}</span>
</th>
<th>
<span>{{$t('队列')}}</span>
<span>{{$t('Queue')}}</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="70">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -60,7 +60,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('编辑')"
:title="$t('Edit')"
@click="_edit(item)"
icon="iconfont icon-bianjixiugai">
</x-button>
......@@ -68,13 +68,13 @@
:ref="'poptip-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('删除')">{{$t('删除')}}</x-button>
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('delete')">{{$t('delete')}}</x-button>
</template>
</x-poptip>-->
</td>
......
......@@ -2,11 +2,11 @@
<div class="main-layout-box">
<m-secondary-menu :type="'security'"></m-secondary-menu>
<template>
<m-list-construction :title="$t('租户管理')">
<m-list-construction :title="$t('Tenant Management')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_create('')">{{$t('创建租户')}}</x-button>
<x-button type="ghost" size="small" @click="_create('')">{{$t('Create Tenant')}}</x-button>
</template>
</m-conditions>
</template>
......@@ -52,7 +52,7 @@
methods: {
...mapActions('security', ['getTenantListP']),
/**
* 查询
* Query
*/
_onConditions (o) {
this.searchVal = o.searchVal
......
<template>
<m-popup
ref="popup"
:ok-text="item ? $t('确认编辑') : $t('确认提交')"
:nameText="item ? $t('编辑用户') : $t('创建用户')"
:ok-text="item ? $t('Edit') : $t('Submit')"
:nameText="item ? $t('Edit User') : $t('Create User')"
@ok="_ok">
<template slot="content">
<div class="create-user-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('用户名称')}}</template>
<template slot="name"><b>*</b>{{$t('User Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="userName"
:placeholder="$t('请输入用户名称')">
:placeholder="$t('Please enter user name')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f v-if="router.history.current.name !== 'account'">
<template slot="name"><b>*</b>{{$t('密码')}}</template>
<template slot="name"><b>*</b>{{$t('Password')}}</template>
<template slot="content">
<x-input
type="input"
v-model="userPassword"
:placeholder="$t('请输入密码')">
:placeholder="$t('Please enter your password')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f v-if="isADMIN">
<template slot="name"><b>*</b>{{$t('租户')}}</template>
<template slot="name"><b>*</b>{{$t('Tenant')}}</template>
<template slot="content">
<x-select v-model="tenantId">
<x-option
......@@ -40,22 +40,22 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('邮件')}}</template>
<template slot="name"><b>*</b>{{$t('Email')}}</template>
<template slot="content">
<x-input
type="input"
v-model="email"
:placeholder="$t('请输入邮件')">
:placeholder="$t('Please enter email')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('手机')}}</template>
<template slot="name">{{$t('Phone')}}</template>
<template slot="content">
<x-input
type="input"
v-model="phone"
:placeholder="$t('请输入手机')">
:placeholder="$t('Please enter phone number')">
</x-input>
</template>
</m-list-box-f>
......@@ -116,28 +116,28 @@
// user name
if (!this.userName) {
this.$message.warning(`${i18n.$t('请输入用户名')}`)
this.$message.warning(`${i18n.$t('Please enter user name')}`)
return false
}
// password
if (!this.userPassword && !this.item) {
this.$message.warning(`${i18n.$t('请输入密码')}`)
this.$message.warning(`${i18n.$t('Please enter your password')}`)
return false
}
// email
if (!this.email) {
this.$message.warning(`${i18n.$t('请输入邮箱')}`)
this.$message.warning(`${i18n.$t('Please enter email')}`)
return false
}
// Verify email
if (!regEmail.test(this.email)) {
this.$message.warning(`${i18n.$t('请输入正确的邮箱格式')}`)
this.$message.warning(`${i18n.$t('Please enter the correct email format')}`)
return false
}
// Verify phone
if (this.phone) {
if (!regPhone.test(this.phone)) {
this.$message.warning(`${i18n.$t('请输入正确的手机格式')}`)
this.$message.warning(`${i18n.$t('Please enter the correct mobile phone format')}`)
return false
}
}
......
......@@ -4,28 +4,28 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('用户名称')}}</span>
<span>{{$t('User Name')}}</span>
</th>
<th>
<span>{{$t('租户')}}</span>
<span>{{$t('Tenant')}}</span>
</th>
<th>
<span>{{$t('邮箱')}}</span>
<span>{{$t('Email')}}</span>
</th>
<th>
<span>{{$t('手机')}}</span>
<span>{{$t('Phone')}}</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="120">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="item.id">
......@@ -52,26 +52,26 @@
popper-class="user-list-poptip"
placement="bottom-end">
<div class="auth-select-box">
<a href="javascript:" @click="_authProject(item,$index)">{{$t('项目')}}</a>
<a href="javascript:" @click="_authFile(item,$index)">{{$t('资源')}}</a>
<a href="javascript:" @click="_authDataSource(item,$index)">{{$t('数据源')}}</a>
<a href="javascript:" @click="_authUdfFunc(item,$index)">{{$t('UDF函数')}}</a>
<a href="javascript:" @click="_authProject(item,$index)">{{$t('Project')}}</a>
<a href="javascript:" @click="_authFile(item,$index)">{{$t('Resources')}}</a>
<a href="javascript:" @click="_authDataSource(item,$index)">{{$t('Datasource')}}</a>
<a href="javascript:" @click="_authUdfFunc(item,$index)">{{$t('UDF Function')}}</a>
</div>
<template slot="reference">
<x-button type="warning" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('授权')" icon="iconfont icon-yonghu1"></x-button>
<x-button type="warning" shape="circle" size="xsmall" data-toggle="tooltip" :title="$t('Authorize')" icon="iconfont icon-yonghu1"></x-button>
</template>
</x-poptip>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-bianjixiugai" :title="$t('编辑')" @click="_edit(item)">
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-bianjixiugai" :title="$t('Edit')" @click="_edit(item)">
</x-button>
<x-poptip
:ref="'poptip-delete-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button
......@@ -79,7 +79,7 @@
shape="circle"
size="xsmall"
data-toggle="tooltip"
:title="$t('删除')"
:title="$t('delete')"
icon="iconfont icon-shanchu">
</x-button>
</template>
......@@ -174,7 +174,7 @@
sourceListPrs: sourceListPrs,
targetListPrs: targetListPrs,
type: {
name: `${i18n.$t('项目')}`
name: `${i18n.$t('Project')}`
}
}
})
......@@ -226,7 +226,7 @@
sourceListPrs: sourceListPrs,
targetListPrs: targetListPrs,
type: {
name: `${i18n.$t('资源')}`
name: `${i18n.$t('Resources')}`
}
}
})
......@@ -278,7 +278,7 @@
sourceListPrs: sourceListPrs,
targetListPrs: targetListPrs,
type: {
name: `${i18n.$t('数据源')}`
name: `${i18n.$t('Datasource')}`
}
}
})
......@@ -330,7 +330,7 @@
sourceListPrs: sourceListPrs,
targetListPrs: targetListPrs,
type: {
name: 'UDF函数'
name: 'UDF Function'
}
}
})
......
......@@ -2,11 +2,11 @@
<div class="main-layout-box">
<m-secondary-menu :type="'security'"></m-secondary-menu>
<template>
<m-list-construction :title="$t('用户管理')">
<m-list-construction :title="$t('User Management')">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_create('')">{{$t('创建用户')}}</x-button>
<x-button type="ghost" size="small" @click="_create('')">{{$t('Create User')}}</x-button>
</template>
</m-conditions>
</template>
......@@ -52,7 +52,7 @@
methods: {
...mapActions('security', ['getUsersList']),
/**
* 查询
* Query
*/
_onConditions (o) {
this.searchVal = o.searchVal
......
<template>
<m-popup
ref="popup"
:ok-text="item ? $t('确认编辑') : $t('确认提交')"
:nameText="item ? $t('编辑告警组') : $t('创建告警组')"
:ok-text="item ? $t('Edit') : $t('Submit')"
:nameText="item ? $t('Edit alarm group') : $t('Create alarm group')"
@ok="_ok">
<template slot="content">
<div class="create-warning-model">
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('组名称')}}</template>
<template slot="name"><b>*</b>{{$t('Group Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="groupName"
:placeholder="$t('请输入组名称')">
:placeholder="$t('Please enter group name')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('组类型')}}</template>
<template slot="name"><b>*</b>{{$t('Group Type')}}</template>
<template slot="content">
<x-select v-model="groupType">
<x-option
......@@ -30,12 +30,12 @@
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('备注')}}</template>
<template slot="name">{{$t('Remarks')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:placeholder="$t('请输入desc')">
:placeholder="$t('Please enter description')">
</x-input>
</template>
</m-list-box-f>
......@@ -57,7 +57,7 @@
groupName: '',
groupType: 'EMAIL',
desc: '',
options: [{ code: `${i18n.$t('邮件')}`, id: 'EMAIL' }, { code: `${i18n.$t('短信')}`, id: 'SMS' }]
options: [{ code: `${i18n.$t('Email')}`, id: 'EMAIL' }, { code: `${i18n.$t('SMS')}`, id: 'SMS' }]
}
},
props: {
......@@ -86,7 +86,7 @@
_verification () {
// group name
if (!this.groupName) {
this.$message.warning(`${i18n.$t('请输入组名称')}`)
this.$message.warning(`${i18n.$t('Please enter group name')}`)
return false
}
return true
......
......@@ -4,25 +4,25 @@
<table>
<tr>
<th>
<span>{{$t('编号')}}</span>
<span>{{$t('#')}}</span>
</th>
<th>
<span>{{$t('组名称')}}</span>
<span>{{$t('Group Name')}}</span>
</th>
<th>
<span>{{$t('组类型')}}</span>
<span>{{$t('Group Type')}}</span>
</th>
<th>
<span>{{$t('备注')}}</span>
<span>{{$t('Remarks')}}</span>
</th>
<th>
<span>{{$t('创建时间')}}</span>
<span>{{$t('Create Time')}}</span>
</th>
<th>
<span>{{$t('更新时间')}}</span>
<span>{{$t('Update Time')}}</span>
</th>
<th width="120">
<span>{{$t('操作')}}</span>
<span>{{$t('Operation')}}</span>
</th>
</tr>
<tr v-for="(item, $index) in list" :key="$index">
......@@ -34,7 +34,7 @@
<a href="javascript:" class="links">{{item.groupName}}</a>
</span>
</td>
<td><span>{{item.groupType === 'EMAIL' ? '邮件' : '短信'}}</span></td>
<td><span>{{item.groupType === 'EMAIL' ? `${$t('Email')}` : `${$t('SMS')}`}}</span></td>
<td>
<span>{{item.desc}}</span>
</td>
......@@ -43,21 +43,21 @@
</td>
<td><span>{{item.updateTime | formatDate}}</span></td>
<td>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-yonghu1" :title="$t('管理用户')" @click="_mangeUser(item)">
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-yonghu1" :title="$t('Managing Users')" @click="_mangeUser(item)">
</x-button>
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-bianjixiugai" :title="$t('编辑')" @click="_edit(item)">
<x-button type="info" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-bianjixiugai" :title="$t('Edit')" @click="_edit(item)">
</x-button>
<x-poptip
:ref="'poptip-delete-' + $index"
placement="bottom-end"
width="90">
<p>{{$t('确定删除吗?')}}</p>
<p>{{$t('Delete?')}}</p>
<div style="text-align: right; margin: 0;padding-top: 4px;">
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('取消')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('确定')}}</x-button>
<x-button type="text" size="xsmall" shape="circle" @click="_closeDelete($index)">{{$t('Cancel')}}</x-button>
<x-button type="primary" size="xsmall" shape="circle" @click="_delete(item,$index)">{{$t('Confirm')}}</x-button>
</div>
<template slot="reference">
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-shanchu" :title="$t('删除')">
<x-button type="error" shape="circle" size="xsmall" data-toggle="tooltip" icon="iconfont icon-shanchu" :title="$t('delete')">
</x-button>
</template>
</x-poptip>
......@@ -150,7 +150,7 @@
sourceListPrs: sourceListPrs,
targetListPrs: targetListPrs,
type: {
name: `${i18n.$t('管理用户')}`
name: `${i18n.$t('Managing Users')}`
}
}
})
......
......@@ -2,11 +2,11 @@
<div class="main-layout-box">
<m-secondary-menu :type="'security'"></m-secondary-menu>
<template>
<m-list-construction :title="'告警组管理'">
<m-list-construction :title="'Warning group management'">
<template slot="conditions">
<m-conditions @on-conditions="_onConditions">
<template slot="button-group">
<x-button type="ghost" size="small" @click="_create('')">创建告警组</x-button>
<x-button type="ghost" size="small" @click="_create('')">{{$t('Create alarm group')}}</x-button>
</template>
</m-conditions>
</template>
......
<template>
<div class="user-info-model">
<m-list-box-f>
<template slot="name">{{$t('用户名称')}}</template>
<template slot="name">{{$t('User Name')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.userName}}</span>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('邮箱')}}</template>
<template slot="name">{{$t('Email')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.email}}</span>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('手机')}}</template>
<template slot="name">{{$t('Phone')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.phone}}</span>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('权限')}}</template>
<template slot="name">{{$t('Permission')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.userType === 'GENERAL_USER' ? `${$t('普通用户')}` : `${$t('管理员')}`}}</span>
<span class="sp1">{{userInfo.userType === 'GENERAL_USER' ? `${$t('Ordinary users')}` : `${$t('Administrator')}`}}</span>
</template>
</m-list-box-f>
<m-list-box-f v-ps="['GENERAL_USER']">
<template slot="name">{{$t('租户')}}</template>
<template slot="name">{{$t('Tenant')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.tenantName}}</span>
</template>
</m-list-box-f>
<m-list-box-f v-ps="['GENERAL_USER']">
<template slot="name">{{$t('队列')}}</template>
<template slot="name">{{$t('Queue')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.queueName}}</span>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('创建时间')}}</template>
<template slot="name">{{$t('Create Time')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.createTime | formatDate}}</span>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('更新时间')}}</template>
<template slot="name">{{$t('Update Time')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.updateTime | formatDate}}</span>
</template>
......@@ -51,7 +51,7 @@
<m-list-box-f>
<template slot="name">&nbsp;</template>
<template slot="content">
<x-button type="primary" shape="circle" @click="_edit()" >{{$t('修改')}}</x-button>
<x-button type="primary" shape="circle" @click="_edit()" >{{$t('Edit')}}</x-button>
</template>
</m-list-box-f>
</div>
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'user'"></m-secondary-menu>
<m-list-construction :title="$t('用户信息')">
<m-list-construction :title="$t('User Information')">
<template slot="content">
<m-info></m-info>
</template>
......
<template>
<div class="user-info-model password-model">
<m-list-box-f>
<template slot="name">{{$t('用户名称')}}</template>
<template slot="name">{{$t('User Name')}}</template>
<template slot="content">
<span class="sp1">{{userInfo.userName}}</span>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('密码')}}</template>
<template slot="name">{{$t('Password')}}</template>
<template slot="content">
<x-input
style="width: 320px;"
type="password"
v-model="userPassword"
:placeholder="$t('请输入密码')">
:placeholder="$t('Please enter your password')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('确认密码')}}</template>
<template slot="name">{{$t('Confirm Password')}}</template>
<template slot="content">
<x-input
style="width: 320px;"
type="password"
v-model="oldUserPassword"
:placeholder="$t('请输入确认密码')">
:placeholder="$t('Please enter confirm password')">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">&nbsp;</template>
<template slot="content">
<x-button type="primary" shape="circle" @click="_edit()" :loading="spinnerLoading">{{spinnerLoading ? 'Loading...' : '修改'}}</x-button>
<x-button type="primary" shape="circle" @click="_edit()" :loading="spinnerLoading">{{spinnerLoading ? 'Loading...' : 'Edit'}}</x-button>
</template>
</m-list-box-f>
</div>
......@@ -92,33 +92,33 @@
// password
if (regCn.test(this.userPassword)) {
this.$message.warning(`${i18n.$t('密码不能为中文')}`)
this.$message.warning(`${i18n.$t('Password cannot be in Chinese')}`)
return false
}
if (!this.userPassword) {
this.$message.warning(`${i18n.$t('请输入密码(6-22)字符密码')}`)
this.$message.warning(`${i18n.$t('Please enter a password (6-22) character password')}`)
return false
}
if (this.userPassword.length < 6 || this.userPassword.length > 22) {
this.$message.warning(`${i18n.$t('请输入密码(6-22)字符密码')}`)
this.$message.warning(`${i18n.$t('Please enter a password (6-22) character password')}`)
return false
}
// confirm password
if (regCn.test(this.oldUserPassword)) {
this.$message.warning(`${i18n.$t('确认密码不能为中文')}`)
this.$message.warning(`${i18n.$t('Confirmation password cannot be in Chinese')}`)
return false
}
if (!this.oldUserPassword) {
this.$message.warning(`${i18n.$t('请输入确认密码(6-22)字符密码')}`)
this.$message.warning(`${i18n.$t('Please enter a confirmation password (6-22) character password')}`)
return false
}
if (this.oldUserPassword.length < 6 || this.oldUserPassword.length > 22) {
this.$message.warning(`${i18n.$t('请输入确认密码(6-22)字符密码')}`)
this.$message.warning(`${i18n.$t('Please enter a confirmation password (6-22) character password')}`)
return false
}
if (this.userPassword !== this.oldUserPassword) {
this.$message.warning(`${i18n.$t('密码与确认密码不一致,请重新确认')}`)
this.$message.warning(`${i18n.$t('The password is inconsistent with the confirmation password')}`)
return false
}
return true
......
<template>
<div class="main-layout-box">
<m-secondary-menu :type="'user'"></m-secondary-menu>
<m-list-construction :title="$t('密码修改')">
<m-list-construction :title="$t('Edit Password')">
<template slot="content">
<m-info></m-info>
</template>
......
......@@ -35,7 +35,7 @@ const router = new Router({
name: 'home',
component: resolve => require(['../pages/home/index'], resolve),
meta: {
title: `${i18n.$t('首页')} - EasyScheduler`
title: `${i18n.$t('Home')} - EasyScheduler`
}
},
{
......@@ -43,7 +43,7 @@ const router = new Router({
name: 'projects',
component: resolve => require(['../pages/projects/index'], resolve),
meta: {
title: `${i18n.$t('项目管理')}`
title: `${i18n.$t('Project')}`
},
redirect: {
name: 'projects-list'
......@@ -54,7 +54,7 @@ const router = new Router({
name: 'projects-index',
component: resolve => require(['../pages/projects/pages/index/index'], resolve),
meta: {
title: `${i18n.$t('项目首页')}`
title: `${i18n.$t('Project Home')}`
}
},
{
......@@ -62,7 +62,7 @@ const router = new Router({
name: 'projects-list',
component: resolve => require(['../pages/projects/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('项目')}`
title: `${i18n.$t('Project')}`
}
},
{
......@@ -70,7 +70,7 @@ const router = new Router({
name: 'definition',
component: resolve => require(['../pages/projects/pages/definition/index'], resolve),
meta: {
title: `${i18n.$t('工作流定义')}`
title: `${i18n.$t('Process definition')}`
},
redirect: {
name: 'projects-definition-list'
......@@ -81,7 +81,7 @@ const router = new Router({
name: 'projects-definition-list',
component: resolve => require(['../pages/projects/pages/definition/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('工作流定义')}`
title: `${i18n.$t('Process definition')}`
}
},
{
......@@ -89,7 +89,7 @@ const router = new Router({
name: 'projects-definition-details',
component: resolve => require(['../pages/projects/pages/definition/pages/details/index'], resolve),
meta: {
title: `${i18n.$t('流程定义详情')}`
title: `${i18n.$t('Process definition details')}`
}
},
{
......@@ -97,7 +97,7 @@ const router = new Router({
name: 'definition-create',
component: resolve => require(['../pages/projects/pages/definition/pages/create/index'], resolve),
meta: {
title: `${i18n.$t('创建流程定义')}`
title: `${i18n.$t('Create process definition')}`
}
},
{
......@@ -105,7 +105,7 @@ const router = new Router({
name: 'definition-tree-view-index',
component: resolve => require(['../pages/projects/pages/definition/pages/tree/index'], resolve),
meta: {
title: `${i18n.$t('树形图')}`
title: `${i18n.$t('TreeView')}`
}
},
{
......@@ -113,7 +113,7 @@ const router = new Router({
name: 'definition-timing-details',
component: resolve => require(['../pages/projects/pages/definition/timing/index'], resolve),
meta: {
title: `${i18n.$t('定时任务列表')}`
title: `${i18n.$t('Scheduled task list')}`
}
}
]
......@@ -123,7 +123,7 @@ const router = new Router({
name: 'instance',
component: resolve => require(['../pages/projects/pages/instance/index'], resolve),
meta: {
title: `${i18n.$t('工作流实例')}`
title: `${i18n.$t('Process Instance')}`
},
redirect: {
name: 'projects-instance-list'
......@@ -134,7 +134,7 @@ const router = new Router({
name: 'projects-instance-list',
component: resolve => require(['../pages/projects/pages/instance/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('工作流实例')}`
title: `${i18n.$t('Process Instance')}`
}
},
{
......@@ -142,7 +142,7 @@ const router = new Router({
name: 'projects-instance-details',
component: resolve => require(['../pages/projects/pages/instance/pages/details/index'], resolve),
meta: {
title: `${i18n.$t('流程实例详情')}`
title: `${i18n.$t('Process instance details')}`
}
},
{
......@@ -150,7 +150,7 @@ const router = new Router({
name: 'instance-gantt-index',
component: resolve => require(['../pages/projects/pages/instance/pages/gantt/index'], resolve),
meta: {
title: `${i18n.$t('甘特图')}`
title: `${i18n.$t('Gantt')}`
}
}
]
......@@ -160,7 +160,7 @@ const router = new Router({
name: 'task-instance-index',
component: resolve => require(['../pages/projects/pages/taskInstance'], resolve),
meta: {
title: `${i18n.$t('任务实例')}`
title: `${i18n.$t('Task Instance')}`
},
redirect: {
name: 'task-instance-list'
......@@ -171,7 +171,7 @@ const router = new Router({
name: 'task-instance-list',
component: resolve => require(['../pages/projects/pages/taskInstance/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('任务实例')}`
title: `${i18n.$t('Task Instance')}`
}
}
]
......@@ -181,7 +181,7 @@ const router = new Router({
name: 'task-record-index',
component: resolve => require(['../pages/projects/pages/taskRecord'], resolve),
meta: {
title: `${i18n.$t('任务记录')}`
title: `${i18n.$t('Task record')}`
},
redirect: {
name: 'task-record-list'
......@@ -192,7 +192,7 @@ const router = new Router({
name: 'task-record-list',
component: resolve => require(['../pages/projects/pages/taskRecord/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('任务记录')}`
title: `${i18n.$t('Task record')}`
}
}
]
......@@ -207,7 +207,7 @@ const router = new Router({
name: 'file'
},
meta: {
title: `${i18n.$t('资源中心')}`
title: `${i18n.$t('Resources')}`
},
children: [
{
......@@ -215,7 +215,7 @@ const router = new Router({
name: 'file',
component: resolve => require(['../pages/resource/pages/file/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('文件管理')}`
title: `${i18n.$t('File Management')}`
}
},
{
......@@ -223,7 +223,7 @@ const router = new Router({
name: 'resource-file-create',
component: resolve => require(['../pages/resource/pages/file/pages/create/index'], resolve),
meta: {
title: `${i18n.$t('创建资源')}`
title: `${i18n.$t('Create Resource')}`
}
},
{
......@@ -231,7 +231,7 @@ const router = new Router({
name: 'resource-file-details',
component: resolve => require(['../pages/resource/pages/file/pages/details/index'], resolve),
meta: {
title: `${i18n.$t('文件详情')}`
title: `${i18n.$t('File Details')}`
}
},
{
......@@ -239,7 +239,7 @@ const router = new Router({
name: 'resource-file-edit',
component: resolve => require(['../pages/resource/pages/file/pages/edit/index'], resolve),
meta: {
title: `${i18n.$t('文件详情')}`
title: `${i18n.$t('File Details')}`
}
},
{
......@@ -247,7 +247,7 @@ const router = new Router({
name: 'udf',
component: resolve => require(['../pages/resource/pages/udf/index'], resolve),
meta: {
title: `${i18n.$t('UDF管理')}`
title: `${i18n.$t('UDF management')}`
},
children: [
{
......@@ -255,7 +255,7 @@ const router = new Router({
name: 'resource-udf-resource',
component: resolve => require(['../pages/resource/pages/udf/pages/resource/index'], resolve),
meta: {
title: `${i18n.$t('UDF资源管理')}`
title: `${i18n.$t('UDF Resources')}`
}
},
{
......@@ -263,7 +263,7 @@ const router = new Router({
name: 'resource-udf-function',
component: resolve => require(['../pages/resource/pages/udf/pages/function/index'], resolve),
meta: {
title: `${i18n.$t('UDF函数管理')}`
title: `${i18n.$t('UDF Function')}`
}
}
]
......@@ -275,7 +275,7 @@ const router = new Router({
name: 'datasource',
component: resolve => require(['../pages/datasource/index'], resolve),
meta: {
title: `${i18n.$t('数据源中心')}`
title: `${i18n.$t('Datasource')}`
},
redirect: {
name: 'datasource-list'
......@@ -286,7 +286,7 @@ const router = new Router({
name: 'datasource-list',
component: resolve => require(['../pages/datasource/pages/list/index'], resolve),
meta: {
title: `${i18n.$t('数据源中心')}`
title: `${i18n.$t('Datasource')}`
}
}
]
......@@ -296,7 +296,7 @@ const router = new Router({
name: 'security',
component: resolve => require(['../pages/security/index'], resolve),
meta: {
title: `${i18n.$t('安全中心')}`
title: `${i18n.$t('Security')}`
},
redirect: {
name: 'tenement-manage'
......@@ -307,7 +307,7 @@ const router = new Router({
name: 'tenement-manage',
component: resolve => require(['../pages/security/pages/tenement/index'], resolve),
meta: {
title: `${i18n.$t('租户管理')}`
title: `${i18n.$t('Tenant Management')}`
}
},
{
......@@ -315,7 +315,7 @@ const router = new Router({
name: 'users-manage',
component: resolve => require(['../pages/security/pages/users/index'], resolve),
meta: {
title: `${i18n.$t('用户管理')}`
title: `${i18n.$t('User Management')}`
}
},
{
......@@ -323,7 +323,7 @@ const router = new Router({
name: 'warning-groups-manage',
component: resolve => require(['../pages/security/pages/warningGroups/index'], resolve),
meta: {
title: `${i18n.$t('告警组管理')}`
title: `${i18n.$t('Warning group management')}`
}
},
{
......@@ -331,7 +331,7 @@ const router = new Router({
name: 'queue-manage',
component: resolve => require(['../pages/security/pages/queue/index'], resolve),
meta: {
title: `${i18n.$t('队列管理')}`
title: `${i18n.$t('Queue manage')}`
}
},
{
......@@ -339,7 +339,7 @@ const router = new Router({
name: 'servers-manage',
component: resolve => require(['../pages/security/pages/servers/index'], resolve),
meta: {
title: `${i18n.$t('服务管理')}`
title: `${i18n.$t('Servers management')}`
},
redirect: {
name: 'servers-master'
......@@ -350,7 +350,7 @@ const router = new Router({
name: 'servers-master',
component: resolve => require(['../pages/security/pages/servers/pages/master/index'], resolve),
meta: {
title: `${i18n.$t('服务管理-Master')}`
title: `${i18n.$t('Service-Master')}`
}
},
{
......@@ -358,7 +358,7 @@ const router = new Router({
name: 'servers-worker',
component: resolve => require(['../pages/security/pages/servers/pages/worker/index'], resolve),
meta: {
title: `${i18n.$t('服务管理-Worker')}`
title: `${i18n.$t('Service-Worker')}`
}
}
]
......@@ -370,7 +370,7 @@ const router = new Router({
name: 'user',
component: resolve => require(['../pages/user/index'], resolve),
meta: {
title: `${i18n.$t('用户中心')}`
title: `${i18n.$t('User Center')}`
},
redirect: {
name: 'account'
......@@ -381,7 +381,7 @@ const router = new Router({
name: 'account',
component: resolve => require(['../pages/user/pages/account/index'], resolve),
meta: {
title: `${i18n.$t('用户信息')}`
title: `${i18n.$t('User Information')}`
}
},
{
......@@ -389,7 +389,7 @@ const router = new Router({
name: 'password',
component: resolve => require(['../pages/user/pages/password/index'], resolve),
meta: {
title: `${i18n.$t('修改密码')}`
title: `${i18n.$t('Edit password')}`
}
}
]
......
......@@ -5,13 +5,13 @@
</div>
<div class="from-model">
<div class="list">
<label>{{$t('用户名')}}</label>
<label>{{$t('User Name')}}</label>
<div>
<x-input
size="large"
type="text"
v-model="userName"
:placeholder="$t('请输入用户名')"
:placeholder="$t('Please enter user name')"
maxlength="20"
@on-enterkey="_ok">
</x-input>
......@@ -21,13 +21,13 @@
</p>
</div>
<div class="list">
<label>{{$t('密码')}}</label>
<label>{{$t('Password')}}</label>
<div>
<x-input
type="password"
size="large"
v-model="userPassword"
:placeholder="$t('请输入密码')"
:placeholder="$t('Please enter your password')"
maxlength="20"
@on-enterkey="_ok">
</x-input>
......@@ -37,7 +37,7 @@
</p>
</div>
<div class="list" style="margin-top: 10px;">
<x-button type="primary" shape="circle" size="large" :loading="spinnerLoading" long @click="_ok">{{spinnerLoading ? 'Loading...' : ` ${$t('登录')} `}} </x-button>
<x-button type="primary" shape="circle" size="large" :loading="spinnerLoading" long @click="_ok">{{spinnerLoading ? 'Loading...' : ` ${$t('Login')} `}} </x-button>
</div>
</div>
<div class="ctr">Copyright © 2019 Analysys Inc.</div>
......@@ -84,12 +84,12 @@
_verification () {
let flag = true
if (!this.userName) {
this.userNameText = `${i18n.$t('请输入用户名')}`
this.userNameText = `${i18n.$t('Please enter user name')}`
this.isUserName = true
flag = false
}
if (!this.userPassword) {
this.userPasswordText = `${i18n.$t('请输入密码')}`
this.userPasswordText = `${i18n.$t('Please enter your password')}`
this.isUserPassword = true
flag = false
}
......
......@@ -14,7 +14,7 @@
<x-input v-model="searchVal"
@on-enterkey="_ckQuery"
size="small"
:placeholder="$t('请输入关键词')"
:placeholder="$t('Please enter keyword')"
type="text"
style="width:180px;">
</x-input>
......
<template>
<m-popup
ref="popup"
:ok-text="$t('确认上传')"
:nameText="$t('文件上传')"
:ok-text="$t('Confirm Upload')"
:nameText="$t('File Upload')"
@ok="_ok"
:disabled="progress === 0 ? false : true">
<template slot="content">
......@@ -14,7 +14,7 @@
id="file-update-model">
<div class="tooltip-info">
<i class="fa fa-info-circle"></i>
<span>{{$t('请将文件拖拽到当前上传窗口内!')}}</span>
<span>{{$t('Drag the file into the current upload window')}}</span>
</div>
<!--<div class="hide-archive" v-if="progress !== 0" @click="_ckArchive">
<i class="fa fa-minus" data-toggle="tooltip" title="关闭窗口 继续上传" data-container="body" ></i>
......@@ -24,40 +24,40 @@
<i class="fa fa-cloud-upload"></i>
</div>
<p class="p1">
<span>{{$t('拖动区域上传')}}</span>
<span>{{$t('Drag area upload')}}</span>
</p>
</div>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('文件名')}}</template>
<template slot="name"><b>*</b>{{$t('File Name')}}</template>
<template slot="content">
<x-input
type="input"
v-model="name"
:disabled="progress !== 0"
:placeholder="$t('请输入name')"
:placeholder="$t('Please enter name')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name">{{$t('描述')}}</template>
<template slot="name">{{$t('Description')}}</template>
<template slot="content">
<x-input
type="textarea"
v-model="desc"
:disabled="progress !== 0"
:placeholder="$t('请输入desc')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</template>
</m-list-box-f>
<m-list-box-f>
<template slot="name"><b>*</b>{{$t('上传文件')}}</template>
<template slot="name"><b>*</b>{{$t('Upload Files')}}</template>
<template slot="content">
<div class="file-update-box">
<template v-if="progress === 0">
<input name="file" id="file" type="file" class="file-update">
<x-button type="dashed" size="xsmall"> {{$t('点击上传')}} </x-button>
<x-button type="dashed" size="xsmall"> {{$t('Upload')}} </x-button>
</template>
<div class="progress-box" v-if="progress !== 0">
<m-progress-bar :value="progress" text-placement="left-right"></m-progress-bar>
......@@ -131,11 +131,11 @@
*/
_validation () {
if (!this.name) {
this.$message.warning(`${i18n.$t('请输入文件名')}`)
this.$message.warning(`${i18n.$t('Please enter file name')}`)
return false
}
if (!this.file) {
this.$message.warning(`${i18n.$t('请选择要上传的文件')}`)
this.$message.warning(`${i18n.$t('Please select the file to upload')}`)
return false
}
return true
......
......@@ -10,12 +10,12 @@
v-model="udfName"
:disabled="progress !== 0"
style="width: 268px"
:placeholder="$t('请输入资源名称')"
:placeholder="$t('Please enter resource name')"
autocomplete="off">
</x-input>
<div class="p1" style="position: absolute;">
<input name="file" id="file" type="file" class="file-update" v-if="!progress">
<x-button type="dashed" size="small" :disabled="progress !== 0"> {{$t('点击上传')}} </x-button>
<x-button type="dashed" size="small" :disabled="progress !== 0"> {{$t('Upload')}} </x-button>
</div>
</div>
</li>
......@@ -25,12 +25,12 @@
size="small"
v-model="udfDesc"
:disabled="progress !== 0"
:placeholder="$t('请输入资源描述')"
:placeholder="$t('Please enter description')"
autocomplete="off">
</x-input>
</li>
<li style="margin-top: -4px;margin-bottom: 8px;">
<x-button type="success" size="xsmall" long @click="_ok" :loading="spinnerLoading">{{spinnerLoading ? `Loading... (${progress}%)` : $t('上传UDF资源')}}</x-button>
<x-button type="success" size="xsmall" long @click="_ok" :loading="spinnerLoading">{{spinnerLoading ? `Loading... (${progress}%)` : $t('Upload UDF Resources')}}</x-button>
</li>
</ul>
</div>
......@@ -62,11 +62,11 @@
*/
_validation () {
if (!this.udfName) {
this.$message.warning(`${i18n.$t('请输入文件名')}`)
this.$message.warning(`${i18n.$t('Please enter file name')}`)
return false
}
if (!this.file) {
this.$message.warning(`${i18n.$t('请选择要上传的文件')}`)
this.$message.warning(`${i18n.$t('Please select the file to upload')}`)
return false
}
return true
......
......@@ -7,28 +7,28 @@
<div class="clearfix list">
<div class="nav-links">
<router-link :to="{ path: '/home'}" tag="a" active-class="active">
<span><i class="iconfont">&#xe61d;</i>{{$t('首页')}}</span><b></b>
<span><i class="iconfont">&#xe61d;</i>{{$t('Home')}}</span><b></b>
</router-link>
</div>
</div>
<div class="clearfix list">
<div class="nav-links">
<router-link :to="{ path: '/projects'}" tag="a" active-class="active">
<span><i class="iconfont">&#xe635;</i>{{$t('项目管理')}}</span><b></b>
<span><i class="iconfont">&#xe635;</i>{{$t('Project Manage')}}</span><b></b>
</router-link>
</div>
</div>
<div class="clearfix list">
<div class="nav-links">
<router-link :to="{ path: '/resource'}" tag="a" active-class="active">
<span><i class="iconfont">&#xe768;</i>{{$t('资源中心')}}</span><b></b>
<span><i class="iconfont">&#xe768;</i>{{$t('Resources manage')}}</span><b></b>
</router-link>
</div>
</div>
<div class="clearfix list">
<div class="nav-links">
<router-link :to="{ path: '/datasource'}" tag="a" active-class="active">
<span><i class="iconfont">&#xeef4;</i>{{$t('数据源中心')}}</span><b></b>
<span><i class="iconfont">&#xeef4;</i>{{$t('Datasource')}}</span><b></b>
</router-link>
</div>
</div>
......@@ -42,14 +42,14 @@
<div class="clearfix list" >
<div class="nav-links">
<router-link :to="{ path: '/security'}" tag="a" active-class="active" v-ps="['ADMIN_USER']">
<span><i class="iconfont">&#xe671;</i>{{$t('安全中心')}}</span><b></b>
<span><i class="iconfont">&#xe671;</i>{{$t('Security')}}</span><b></b>
</router-link>
</div>
</div>
</div>
<div class="right">
<!--<span class="docs">
<a :href="docLink">{{$t('文档中心')}}</a>
<a :href="docLink">doc</a>
</span>-->
<span class="lang">
<x-poptip
......@@ -72,11 +72,11 @@
<div class="lrns-list">
<a href="javascript:" @click="_goAccount">
<i class="iconfont">&#xe629;</i>
<span>{{$t('用户信息')}}</span>
<span>{{$t('User Information')}}</span>
</a>
<a href="javascript:" @click="_signOut">
<i class="iconfont">&#xe60c;</i>
<span>{{$t('退出')}}</span>
<span>{{$t('Logout')}}</span>
</a>
</div>
<div class="login-model" slot="reference">
......@@ -109,23 +109,23 @@
<ul @click="mIsNav = false">
<router-link :to="{ path: '/home'}" tag="li" active-class="active">
<i class="iconfont">&#xe61d;</i>
<span>{{$t('首页')}}</span>
<span>{{$t('Home')}}</span>
</router-link>
<router-link :to="{ path: '/projects'}" tag="li" active-class="active">
<i class="iconfont">&#xe635;</i>
<span>{{$t('项目管理')}}</span>
<span>{{$t('Project manage')}}</span>
</router-link>
<router-link :to="{ path: '/resource'}" tag="li" active-class="active">
<i class="iconfont">&#xe768;</i>
<span>{{$t('资源中心')}}</span>
<span>{{$t('Resources manage')}}</span>
</router-link>
<router-link :to="{ path: '/datasource'}" tag="li" active-class="active">
<i class="iconfont">&#xeef4;</i>
<span>{{$t('数据源中心')}}</span>
<span>{{$t('Datasource')}}</span>
</router-link>
<router-link :to="{ path: '/security'}" tag="li" active-class="active" v-ps="['ADMIN_USER']">
<i class="iconfont">&#xe671;</i>
<span>{{$t('安全中心')}}</span>
<span>{{$t('Security')}}</span>
</router-link>
</ul>
</div>
......
......@@ -4,7 +4,7 @@
<div class="img">
<img src="./images/errorTip.png" alt="">
</div>
<div class="text">{{msg || $t('查询无数据')}}</div>
<div class="text">{{msg || $t('No data')}}</div>
</div>
</div>
</template>
......
......@@ -7,7 +7,7 @@
<slot name="content"></slot>
</div>
<div class="bottom-p">
<x-button type="text" shape="circle" @click="close()" :disabled="disabled"> {{$t('取消')}} </x-button>
<x-button type="text" shape="circle" @click="close()" :disabled="disabled"> {{$t('Cancel')}} </x-button>
<x-button type="primary" shape="circle" :loading="spinnerLoading" @click="ok()" :disabled="disabled || apDisabled">{{spinnerLoading ? 'Loading...' : okText}} </x-button>
</div>
</div>
......@@ -25,11 +25,11 @@
props: {
nameText: {
type: String,
default: `${i18n.$t('创建')}`
default: `${i18n.$t('Create')}`
},
okText: {
type: String,
default: `${i18n.$t('确认')}`
default: `${i18n.$t('Confirm')}`
},
disabled: {
type: Boolean,
......
......@@ -5,11 +5,11 @@
</div>
<template v-if="textPlacement === 'bottom'">
<div class="textp text-1">
{{$t('文件上传中')}} <span>({{value}}%)</span>
{{$t('Uploading...')}} <span>({{value}}%)</span>
</div>
</template>
<template v-if="textPlacement === 'left-right'">
<div class="textp text-2-1">{{$t('文件上传中')}}</div>
<div class="textp text-2-1">{{$t('Uploading...')}}</div>
<div class="textp text-2-2"><span>({{value}}%)</span></div>
</template>
</div>
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册