Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
淡淡忧伤的程序员
DolphinScheduler
提交
9b710f39
DolphinScheduler
项目概览
淡淡忧伤的程序员
/
DolphinScheduler
与 Fork 源项目一致
Fork自
apache / DolphinScheduler
通知
48
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
DolphinScheduler
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
9b710f39
编写于
4月 23, 2019
作者:
B
baoliang
浏览文件
操作
浏览文件
下载
差异文件
Merge remote-tracking branch 'upstream/dev-20190415' into dev-20190415
上级
c2f8e8ef
0c42d076
变更
31
隐藏空白更改
内联
并排
Showing
31 changed file
with
980 addition
and
213 deletion
+980
-213
escheduler-api/src/main/java/cn/escheduler/api/dto/CommandStateCount.java
...rc/main/java/cn/escheduler/api/dto/CommandStateCount.java
+60
-0
escheduler-api/src/main/java/cn/escheduler/api/service/DataAnalysisService.java
...n/java/cn/escheduler/api/service/DataAnalysisService.java
+23
-7
escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sql.vue
...rc/js/conf/home/pages/dag/_source/formModel/tasks/sql.vue
+36
-2
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/_source/gaugeOption.js
...f/home/pages/monitor/pages/servers/_source/gaugeOption.js
+121
-0
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/_source/list.vue
...js/conf/home/pages/monitor/pages/servers/_source/list.vue
+20
-17
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/master.vue
...i/src/js/conf/home/pages/monitor/pages/servers/master.vue
+134
-9
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/mysql.vue
...ui/src/js/conf/home/pages/monitor/pages/servers/mysql.vue
+68
-25
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/servers.scss
...src/js/conf/home/pages/monitor/pages/servers/servers.scss
+44
-0
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
...i/src/js/conf/home/pages/monitor/pages/servers/worker.vue
+140
-16
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/zookeeper.vue
...rc/js/conf/home/pages/monitor/pages/servers/zookeeper.vue
+6
-10
escheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/email.vue
...es/projects/pages/definition/pages/list/_source/email.vue
+4
-4
escheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/start.vue
...es/projects/pages/definition/pages/list/_source/start.vue
+2
-2
escheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/projectChart.vue
.../home/pages/projects/pages/index/_source/projectChart.vue
+166
-95
escheduler-ui/src/js/conf/home/pages/security/pages/queue/_source/list.vue
.../js/conf/home/pages/security/pages/queue/_source/list.vue
+1
-2
escheduler-ui/src/js/conf/home/pages/security/pages/queue/index.vue
...-ui/src/js/conf/home/pages/security/pages/queue/index.vue
+9
-1
escheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/list.vue
.../conf/home/pages/security/pages/tenement/_source/list.vue
+1
-2
escheduler-ui/src/js/conf/home/pages/security/pages/tenement/index.vue
.../src/js/conf/home/pages/security/pages/tenement/index.vue
+9
-1
escheduler-ui/src/js/conf/home/pages/security/pages/token/index.vue
...-ui/src/js/conf/home/pages/security/pages/token/index.vue
+39
-0
escheduler-ui/src/js/conf/home/pages/security/pages/users/_source/list.vue
.../js/conf/home/pages/security/pages/users/_source/list.vue
+1
-2
escheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue
...-ui/src/js/conf/home/pages/security/pages/users/index.vue
+9
-1
escheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/_source/list.vue
.../home/pages/security/pages/warningGroups/_source/list.vue
+1
-2
escheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/index.vue
...js/conf/home/pages/security/pages/warningGroups/index.vue
+9
-1
escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue
...f/home/pages/security/pages/workerGroups/_source/list.vue
+1
-2
escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue
.../js/conf/home/pages/security/pages/workerGroups/index.vue
+8
-1
escheduler-ui/src/js/conf/home/pages/user/pages/token/_source/createToken.vue
.../conf/home/pages/user/pages/token/_source/createToken.vue
+15
-6
escheduler-ui/src/js/conf/home/pages/user/pages/token/_source/list.vue
.../src/js/conf/home/pages/user/pages/token/_source/list.vue
+1
-2
escheduler-ui/src/js/conf/home/pages/user/pages/token/index.vue
...uler-ui/src/js/conf/home/pages/user/pages/token/index.vue
+9
-1
escheduler-ui/src/js/conf/home/router/index.js
escheduler-ui/src/js/conf/home/router/index.js
+8
-0
escheduler-ui/src/js/conf/home/store/projects/actions.js
escheduler-ui/src/js/conf/home/store/projects/actions.js
+24
-0
escheduler-ui/src/js/conf/home/store/security/actions.js
escheduler-ui/src/js/conf/home/store/security/actions.js
+1
-1
escheduler-ui/src/js/module/components/secondaryMenu/_source/menu.js
...ui/src/js/module/components/secondaryMenu/_source/menu.js
+10
-1
未找到文件。
escheduler-api/src/main/java/cn/escheduler/api/dto/CommandStateCount.java
0 → 100644
浏览文件 @
9b710f39
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package
cn.escheduler.api.dto
;
import
cn.escheduler.common.enums.ExecutionStatus
;
/**
* command state count
*/
public
class
CommandStateCount
{
private
int
errorCount
;
private
int
normalCount
;
private
ExecutionStatus
commandState
;
public
CommandStateCount
(){}
public
CommandStateCount
(
int
errorCount
,
int
normalCount
,
ExecutionStatus
commandState
)
{
this
.
errorCount
=
errorCount
;
this
.
normalCount
=
normalCount
;
this
.
commandState
=
commandState
;
}
public
int
getErrorCount
()
{
return
errorCount
;
}
public
void
setErrorCount
(
int
errorCount
)
{
this
.
errorCount
=
errorCount
;
}
public
int
getNormalCount
()
{
return
normalCount
;
}
public
void
setNormalCount
(
int
normalCount
)
{
this
.
normalCount
=
normalCount
;
}
public
ExecutionStatus
getCommandState
()
{
return
commandState
;
}
public
void
setCommandState
(
ExecutionStatus
commandState
)
{
this
.
commandState
=
commandState
;
}
}
escheduler-api/src/main/java/cn/escheduler/api/service/DataAnalysisService.java
浏览文件 @
9b710f39
...
@@ -17,6 +17,7 @@
...
@@ -17,6 +17,7 @@
package
cn.escheduler.api.service
;
package
cn.escheduler.api.service
;
import
cn.escheduler.api.dto.CommandStateCount
;
import
cn.escheduler.api.dto.DefineUserDto
;
import
cn.escheduler.api.dto.DefineUserDto
;
import
cn.escheduler.api.dto.TaskCountDto
;
import
cn.escheduler.api.dto.TaskCountDto
;
import
cn.escheduler.api.enums.Status
;
import
cn.escheduler.api.enums.Status
;
...
@@ -38,10 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired;
...
@@ -38,10 +39,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import
org.springframework.stereotype.Service
;
import
org.springframework.stereotype.Service
;
import
java.text.MessageFormat
;
import
java.text.MessageFormat
;
import
java.util.Date
;
import
java.util.*
;
import
java.util.HashMap
;
import
java.util.List
;
import
java.util.Map
;
/**
/**
* data analysis service
* data analysis service
...
@@ -298,7 +296,16 @@ public class DataAnalysisService {
...
@@ -298,7 +296,16 @@ public class DataAnalysisService {
dataMap
.
put
(
errorExecutionStatus
.
getExecutionStatus
(),
errorCommandStateCountsMap
);
dataMap
.
put
(
errorExecutionStatus
.
getExecutionStatus
(),
errorCommandStateCountsMap
);
}
}
result
.
put
(
Constants
.
DATA_LIST
,
dataMap
);
List
<
CommandStateCount
>
list
=
new
ArrayList
<>();
Iterator
<
Map
.
Entry
<
ExecutionStatus
,
Map
<
String
,
Integer
>>>
iterator
=
dataMap
.
entrySet
().
iterator
();
while
(
iterator
.
hasNext
()){
Map
.
Entry
<
ExecutionStatus
,
Map
<
String
,
Integer
>>
next
=
iterator
.
next
();
CommandStateCount
commandStateCount
=
new
CommandStateCount
(
next
.
getValue
().
get
(
"errorCommandState"
),
next
.
getValue
().
get
(
"commandState"
),
next
.
getKey
());
list
.
add
(
commandStateCount
);
}
result
.
put
(
Constants
.
DATA_LIST
,
list
);
putMsg
(
result
,
Status
.
SUCCESS
);
putMsg
(
result
,
Status
.
SUCCESS
);
return
result
;
return
result
;
}
}
...
@@ -356,9 +363,18 @@ public class DataAnalysisService {
...
@@ -356,9 +363,18 @@ public class DataAnalysisService {
}
}
}
}
}
}
Integer
taskQueueCount
=
0
;
Integer
taskKillCount
=
0
;
if
(
tasksQueueIds
.
length
!=
0
){
taskQueueCount
=
taskInstanceMapper
.
countTask
(
loginUser
.
getId
(),
loginUser
.
getUserType
(),
projectId
,
tasksQueueIds
);
}
if
(
tasksQueueIds
.
length
!=
0
){
taskKillCount
=
taskInstanceMapper
.
countTask
(
loginUser
.
getId
(),
loginUser
.
getUserType
(),
projectId
,
tasksQueueIds
);
}
Integer
taskQueueCount
=
taskInstanceMapper
.
countTask
(
loginUser
.
getId
(),
loginUser
.
getUserType
(),
projectId
,
tasksQueueIds
);
Integer
taskKillCount
=
taskInstanceMapper
.
countTask
(
loginUser
.
getId
(),
loginUser
.
getUserType
(),
projectId
,
tasksQueueIds
);
dataMap
.
put
(
"taskQueue"
,
taskQueueCount
);
dataMap
.
put
(
"taskQueue"
,
taskQueueCount
);
dataMap
.
put
(
"taskKill"
,
taskKillCount
);
dataMap
.
put
(
"taskKill"
,
taskKillCount
);
...
...
escheduler-ui/src/js/conf/home/pages/dag/_source/formModel/tasks/sql.vue
浏览文件 @
9b710f39
...
@@ -27,6 +27,20 @@
...
@@ -27,6 +27,20 @@
</div>
</div>
</div>
</div>
</m-list-box>
</m-list-box>
<template
v-if=
"!sqlType && showType.length"
>
<m-list-box>
<div
slot=
"text"
>
收件人
</div>
<div
slot=
"content"
>
<m-email
v-model=
"receivers"
:repeat-data=
"receiversCc"
></m-email>
</div>
</m-list-box>
<m-list-box>
<div
slot=
"text"
>
抄送人
</div>
<div
slot=
"content"
>
<m-email
v-model=
"receiversCc"
:repeat-data=
"receivers"
></m-email>
</div>
</m-list-box>
</
template
>
<m-list-box
v-show=
"type === 'HIVE'"
>
<m-list-box
v-show=
"type === 'HIVE'"
>
<div
slot=
"text"
>
{{$t('SQL Parameter')}}
</div>
<div
slot=
"text"
>
{{$t('SQL Parameter')}}
</div>
<div
slot=
"content"
>
<div
slot=
"content"
>
...
@@ -83,6 +97,7 @@
...
@@ -83,6 +97,7 @@
import
mDatasource
from
'
./_source/datasource
'
import
mDatasource
from
'
./_source/datasource
'
import
mLocalParams
from
'
./_source/localParams
'
import
mLocalParams
from
'
./_source/localParams
'
import
disabledState
from
'
@/module/mixin/disabledState
'
import
disabledState
from
'
@/module/mixin/disabledState
'
import
mEmail
from
'
@/conf/home/pages/projects/pages/definition/pages/list/_source/email
'
import
codemirror
from
'
@/conf/home/pages/resource/pages/file/pages/_source/codemirror
'
import
codemirror
from
'
@/conf/home/pages/resource/pages/file/pages/_source/codemirror
'
let
editor
let
editor
...
@@ -108,7 +123,11 @@
...
@@ -108,7 +123,11 @@
// Form/attachment
// Form/attachment
showType
:
[
'
TABLE
'
],
showType
:
[
'
TABLE
'
],
// Sql parameter
// Sql parameter
connParams
:
''
connParams
:
''
,
// recipients
receivers
:
[],
// copy to
receiversCc
:
[]
}
}
},
},
mixins
:
[
disabledState
],
mixins
:
[
disabledState
],
...
@@ -174,6 +193,8 @@
...
@@ -174,6 +193,8 @@
sql
:
editor
.
getValue
(),
sql
:
editor
.
getValue
(),
udfs
:
this
.
udfs
,
udfs
:
this
.
udfs
,
sqlType
:
this
.
sqlType
,
sqlType
:
this
.
sqlType
,
receivers
:
this
.
receivers
.
join
(
'
,
'
),
receiversCc
:
this
.
receiversCc
.
join
(
'
,
'
),
showType
:
(()
=>
{
showType
:
(()
=>
{
/**
/**
* Special processing return order TABLE,ATTACHMENT
* Special processing return order TABLE,ATTACHMENT
...
@@ -223,12 +244,23 @@
...
@@ -223,12 +244,23 @@
if
(
val
)
{
if
(
val
)
{
this
.
showType
=
[]
this
.
showType
=
[]
}
}
if
(
val
!==
0
)
{
this
.
receivers
=
[]
this
.
receiversCc
=
[]
}
},
},
// Listening data source
// Listening data source
type
(
val
)
{
type
(
val
)
{
if
(
val
!==
'
HIVE
'
)
{
if
(
val
!==
'
HIVE
'
)
{
this
.
connParams
=
''
this
.
connParams
=
''
}
}
},
//
showType
(
val
)
{
if
(
!
val
.
length
)
{
this
.
receivers
=
[]
this
.
receiversCc
=
[]
}
}
}
},
},
created
()
{
created
()
{
...
@@ -245,6 +277,8 @@
...
@@ -245,6 +277,8 @@
this
.
connParams
=
o
.
params
.
connParams
||
''
this
.
connParams
=
o
.
params
.
connParams
||
''
this
.
localParams
=
o
.
params
.
localParams
||
[]
this
.
localParams
=
o
.
params
.
localParams
||
[]
this
.
showType
=
o
.
params
.
showType
.
split
(
'
,
'
)
||
[]
this
.
showType
=
o
.
params
.
showType
.
split
(
'
,
'
)
||
[]
this
.
receivers
=
o
.
params
.
receivers
&&
o
.
params
.
receivers
.
split
(
'
,
'
)
||
[]
this
.
receiversCc
=
o
.
params
.
receiversCc
&&
o
.
params
.
receiversCc
.
split
(
'
,
'
)
||
[]
}
}
},
},
mounted
()
{
mounted
()
{
...
@@ -262,6 +296,6 @@
...
@@ -262,6 +296,6 @@
}
}
},
},
computed
:
{},
computed
:
{},
components
:
{
mListBox
,
mDatasource
,
mLocalParams
,
mUdfs
,
mSqlType
}
components
:
{
mListBox
,
mDatasource
,
mLocalParams
,
mUdfs
,
mSqlType
,
mEmail
}
}
}
</
script
>
</
script
>
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/_source/gaugeOption.js
0 → 100644
浏览文件 @
9b710f39
export
default
{
series
:
[
{
type
:
'
gauge
'
,
center
:
[
'
50%
'
,
'
45%
'
],
// 仪表位置
radius
:
'
80%
'
,
// 仪表大小
startAngle
:
200
,
// 开始角度
endAngle
:
-
20
,
// 结束角度
axisLine
:
{
show
:
false
,
lineStyle
:
{
// 属性lineStyle控制线条样式
color
:
[
[
0.5
,
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
1
,
0
,
[{
// eslint-disable-line
offset
:
1
,
color
:
'
#E75F25
'
// 50% 处的颜色
},
{
offset
:
0.8
,
color
:
'
#D9452C
'
// 40% 处的颜色
}],
false
)
],
// 100% 处的颜色
[
0.7
,
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
1
,
0
,
[{
// eslint-disable-line
offset
:
1
,
color
:
'
#FFC539
'
// 70% 处的颜色
},
{
offset
:
0.8
,
color
:
'
#FE951E
'
// 66% 处的颜色
},
{
offset
:
0
,
color
:
'
#E75F25
'
// 50% 处的颜色
}],
false
)
],
[
0.9
,
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[{
// eslint-disable-line
offset
:
1
,
color
:
'
#C7DD6B
'
// 90% 处的颜色
},
{
offset
:
0.8
,
color
:
'
#FEEC49
'
// 86% 处的颜色
},
{
offset
:
0
,
color
:
'
#FFC539
'
// 70% 处的颜色
}],
false
)
],
[
1
,
new
echarts
.
graphic
.
LinearGradient
(
0
,
0
,
0
,
1
,
[
{
// eslint-disable-line
offset
:
0.2
,
color
:
'
#1CAD52
'
// 92% 处的颜色
},
{
offset
:
0
,
color
:
'
#C7DD6B
'
// 90% 处的颜色
}],
false
)
]
],
width
:
10
}
},
splitLine
:
{
show
:
false
},
axisTick
:
{
show
:
false
},
axisLabel
:
{
show
:
false
},
pointer
:
{
// 指针样式
length
:
'
45%
'
},
detail
:
{
show
:
false
}
},
{
type
:
'
gauge
'
,
center
:
[
'
50%
'
,
'
45%
'
],
// 默认全局居中
radius
:
'
70%
'
,
startAngle
:
200
,
endAngle
:
-
20
,
axisLine
:
{
show
:
true
,
lineStyle
:
{
// 属性lineStyle控制线条样式
color
:
[
// 表盘颜色
[
0.5
,
'
#DA462C
'
],
// 0-50%处的颜色
[
0.7
,
'
#FF9618
'
],
// 51%-70%处的颜色
[
0.9
,
'
#FFED44
'
],
// 70%-90%处的颜色
[
1
,
'
#20AE51
'
]
// 90%-100%处的颜色
],
width
:
30
// 表盘宽度
}
},
splitLine
:
{
// 分割线样式(及10、20等长线样式)
length
:
30
,
lineStyle
:
{
// 属性lineStyle控制线条样式
width
:
2
}
},
axisTick
:
{
// 刻度线样式(及短线样式)
length
:
20
},
axisLabel
:
{
// 文字样式(及“10”、“20”等文字样式)
color
:
'
black
'
,
distance
:
5
// 文字离表盘的距离
},
detail
:
{
formatter
:
'
{score|{value}%}
'
,
offsetCenter
:
[
0
,
'
50%
'
],
backgroundColor
:
'
#2D8BF0
'
,
height
:
30
,
rich
:
{
score
:
{
color
:
'
white
'
,
fontFamily
:
'
微软雅黑
'
,
fontSize
:
32
}
}
},
data
:
[{
value
:
70
,
label
:
{
textStyle
:
{
fontSize
:
12
}
}
}]
}
]
}
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/_source/list.vue
浏览文件 @
9b710f39
...
@@ -7,25 +7,28 @@
...
@@ -7,25 +7,28 @@
<span>
{{
$t
(
'
#
'
)
}}
</span>
<span>
{{
$t
(
'
#
'
)
}}
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
IP
'
)
}}
</span>
<span>
node
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
Process Pid
'
)
}}
</span>
<span>
ip
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
zk registration directory
'
)
}}
</span>
<span>
模式
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
cpuUsage
'
)
}}
</span>
<span>
连接数
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
memoryUsage
'
)
}}
</span>
<span>
watch数
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
Create Time
'
)
}}
</span>
<span>
数据量
</span>
</th>
</th>
<th>
<th>
<span>
{{
$t
(
'
Last heartbeat time
'
)
}}
</span>
<span>
Sent/Received
</span>
</th>
<th>
<span>
节点自检状态
</span>
</th>
</th>
</tr>
</tr>
<tr
v-for=
"(item, $index) in list"
:key=
"$index"
>
<tr
v-for=
"(item, $index) in list"
:key=
"$index"
>
...
@@ -34,22 +37,25 @@
...
@@ -34,22 +37,25 @@
</td>
</td>
<td>
<td>
<span>
<span>
<a
href=
"javascript:"
class=
"links"
>
{{
item
.
host
}}
</a>
<a
href=
"javascript:"
class=
"links"
>
task1
</a>
</span>
</span>
</td>
</td>
<td><span>
{{
item
.
port
}}
</span></td>
<td><span>
192.11.1.1
</span></td>
<td>
<td>
<span>
{{
item
.
zkDirectory
}}
</span>
<span>
2222
</span>
</td>
</td>
<td>
<td>
<span>
{{
_rtResInfo
(
JSON
.
parse
(
item
.
resInfo
)[
'
cpuUsage
'
])
}}
</span>
<span>
3333
</span>
</td>
</td>
<td>
<td>
<span>
{{
_rtResInfo
(
JSON
.
parse
(
item
.
resInfo
)[
'
memoryUsage
'
])
}}
</span>
<span>
4444
</span>
</td>
</td>
<td><span>
{{
item
.
createTime
|
formatDate
}}
</span></td>
<td><span>
5555
</span></td>
<td>
<td>
<span>
{{
item
.
lastHeartbeatTime
|
formatDate
}}
</span>
<span>
6666
</span>
</td>
<td>
<span>
7777
</span>
</td>
</td>
</tr>
</tr>
</table>
</table>
...
@@ -70,9 +76,6 @@
...
@@ -70,9 +76,6 @@
list
:
Array
list
:
Array
},
},
methods
:
{
methods
:
{
_rtResInfo
(
val
)
{
return
(
val
*
100
).
toFixed
(
2
)
+
'
%
'
}
}
}
}
}
</
script
>
</
script
>
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/master.vue
浏览文件 @
9b710f39
<
template
>
<
template
>
<m-list-construction
:title=
"
$t('Service-Master')
"
>
<m-list-construction
:title=
"
'Master管理'
"
>
<template
slot=
"content"
>
<template
slot=
"content"
>
<div
class=
"servers-wrapper"
>
<div
class=
"servers-wrapper"
>
<div
class=
"row"
>
<div
class=
"row"
>
<div
class=
"col-md-4"
>
.col-md-8
</div>
<div
class=
"col-md-4"
>
<div
class=
"col-md-4"
>
.col-md-4
</div>
<div
class=
"gridb-model"
>
<div
class=
"col-md-4"
>
.col-md-4
</div>
<div
class=
"title"
>
<span>
Cpu详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a1"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a2"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #0098e1;"
>
12
</b>
</div>
<div
class=
"text-1"
>
cpu
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
Cpu详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a3"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a4"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #7a56b8;"
>
72
</b>
</div>
<div
class=
"text-1"
>
cpu
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
Cpu详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a5"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a6"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #e84d80;"
>
44
</b>
</div>
<div
class=
"text-1"
>
cpu
</div>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
...
@@ -16,6 +134,7 @@
...
@@ -16,6 +134,7 @@
import
mList
from
'
./_source/list
'
import
mList
from
'
./_source/list
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
gaugeOption
from
'
./_source/gaugeOption
'
import
mListConstruction
from
'
@/module/components/listConstruction/listConstruction
'
import
mListConstruction
from
'
@/module/components/listConstruction/listConstruction
'
export
default
{
export
default
{
...
@@ -36,14 +155,20 @@
...
@@ -36,14 +155,20 @@
},
},
watch
:
{},
watch
:
{},
created
()
{
created
()
{
this
.
isLoading
=
true
this
.
getProcessMasterList
().
then
(
res
=>
{
this
.
masterList
=
res
.
data
this
.
isLoading
=
false
})
},
},
mounted
()
{
mounted
()
{
let
b
=
{}
let
a
=
[
'
a1
'
,
'
a2
'
,
'
a3
'
,
'
a4
'
,
'
a5
'
,
'
a6
'
]
a
.
forEach
((
v
,
i
)
=>
{
b
[
v
]
=
echarts
.
init
(
document
.
getElementById
(
v
))
// eslint-disable-line
b
[
v
].
setOption
(
gaugeOption
,
true
)
})
},
},
components
:
{
mList
,
mListConstruction
,
mSpin
,
mNoData
}
components
:
{
mList
,
mListConstruction
,
mSpin
,
mNoData
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
@import
"./servers"
;
</
style
>
\ No newline at end of file
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/mysql.vue
浏览文件 @
9b710f39
<
template
>
<
template
>
<div
class=
"mysql-model"
>
<m-list-construction
:title=
"'Mysql管理'"
>
mysql
<template
slot=
"content"
>
</div>
<div
class=
"servers-wrapper"
>
<div
class=
"row"
>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
正常与否
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #0098e1;"
>
78
</b>
</div>
<div
class=
"text-1"
>
正常与否
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
最大连接数
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #ffcf3d;"
>
55
</b>
</div>
<div
class=
"text-1"
>
最大连接数
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
当前活跃连接
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #f07d7d;"
>
32
</b>
</div>
<div
class=
"text-1"
>
当前活跃连接
</div>
</div>
</div>
</div>
</div>
</
template
>
</m-list-construction>
</template>
</template>
<
script
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
import
mList
from
'
./_source/list
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
mListConstruction
from
'
@/module/components/listConstruction/listConstruction
'
export
default
{
export
default
{
name
:
'
mysql
'
,
name
:
'
servers-
mysql
'
,
data
()
{
data
()
{
return
{}
return
{
pageSize
:
10
,
pageNo
:
1
,
totalPage
:
null
,
searchVal
:
''
,
isLoading
:
false
,
masterList
:
[]
}
},
},
props
:
{},
props
:
{},
methods
:
{},
methods
:
{
watch
:
{},
...
mapActions
(
'
security
'
,
[
'
getProcessMasterList
'
])
beforeCreate
()
{
},
},
watch
:
{},
created
()
{
created
()
{
},
},
beforeMount
()
{
},
mounted
()
{
mounted
()
{
},
},
beforeUpdate
()
{
components
:
{
mList
,
mListConstruction
,
mSpin
,
mNoData
}
},
updated
()
{
},
beforeDestroy
()
{
},
destroyed
()
{
},
computed
:
{},
components
:
{}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
.mysql-model
{
@import
"./servers"
;
</
style
>
}
\ No newline at end of file
</
style
>
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/servers.scss
0 → 100644
浏览文件 @
9b710f39
.servers-wrapper
{
padding
:
16px
;
>
.row
{
margin-bottom
:
20px
;
}
.gridb-model
{
width
:
100%
;
height
:
360px
;
overflow
:
hidden
;
border
:
1px
solid
#E8E8E8
;
margin
:
0
auto
;
>
.title
{
height
:
36px
;
line-height
:
36px
;
background
:
#F9F9F9
;
border-bottom
:
1px
solid
#E8E8E8
;
span
{
padding-left
:
8px
;
}
}
.gauge-echart
{
width
:
350px
;
margin
:
auto
;
margin-bottom
:
-80px
;
}
.text-1
{
width
:
100%
;
margin
:
0
auto
;
font-size
:
32px
;
text-align
:
center
;
}
.value-p
{
height
:
254px
;
line-height
:
254px
;
text-align
:
center
;
>
b
{
font-size
:
140px
;
color
:
#333
;
}
}
}
}
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/worker.vue
浏览文件 @
9b710f39
<
template
>
<
template
>
<m-list-construction
:title=
"
$t('Service-Worker')
"
>
<m-list-construction
:title=
"
'Worker管理'
"
>
<template
slot=
"content"
>
<template
slot=
"content"
>
<template
v-if=
"workerList.length"
>
<div
class=
"servers-wrapper"
>
<m-list
:list=
"workerList"
></m-list>
<div
class=
"row"
>
</
template
>
<div
class=
"col-md-4"
>
<
template
v-if=
"!workerList.length"
>
<div
class=
"gridb-model"
>
<m-no-data></m-no-data>
<div
class=
"title"
>
</
template
>
<span>
Cpu详细信息
</span>
<m-spin
:is-spin=
"isLoading"
></m-spin>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a1"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a2"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #0098e1;"
>
83
</b>
</div>
<div
class=
"text-1"
>
cpu
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
Cpu详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a3"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a4"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #7281c2;"
>
18
</b>
</div>
<div
class=
"text-1"
>
cpu
</div>
</div>
</div>
</div>
<div
class=
"row"
>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
Cpu详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a5"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"gauge-echart"
>
<div
id=
"a6"
style=
"height: 380px;"
></div>
</div>
<div
class=
"text-1"
style=
"margin-top: -126px"
>
cpu
</div>
</div>
</div>
<div
class=
"col-md-4"
>
<div
class=
"gridb-model"
>
<div
class=
"title"
>
<span>
内存详细信息
</span>
</div>
<div
class=
"value-p"
>
<b
style=
"color: #f2ac6f;"
>
15
</b>
</div>
<div
class=
"text-1"
>
cpu
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
</m-list-construction>
</m-list-construction>
</template>
</template>
...
@@ -16,10 +134,11 @@
...
@@ -16,10 +134,11 @@
import
mList
from
'
./_source/list
'
import
mList
from
'
./_source/list
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
gaugeOption
from
'
./_source/gaugeOption
'
import
mListConstruction
from
'
@/module/components/listConstruction/listConstruction
'
import
mListConstruction
from
'
@/module/components/listConstruction/listConstruction
'
export
default
{
export
default
{
name
:
'
worker-index
'
,
name
:
'
servers-worker
'
,
data
()
{
data
()
{
return
{
return
{
pageSize
:
10
,
pageSize
:
10
,
...
@@ -27,23 +146,28 @@
...
@@ -27,23 +146,28 @@
totalPage
:
null
,
totalPage
:
null
,
searchVal
:
''
,
searchVal
:
''
,
isLoading
:
false
,
isLoading
:
false
,
work
erList
:
[]
mast
erList
:
[]
}
}
},
},
props
:
{},
props
:
{},
methods
:
{
methods
:
{
...
mapActions
(
'
security
'
,
[
'
getProcess
Work
erList
'
])
...
mapActions
(
'
security
'
,
[
'
getProcess
Mast
erList
'
])
},
},
watch
:
{},
watch
:
{},
created
()
{
created
()
{
this
.
isLoading
=
true
this
.
getProcessWorkerList
().
then
(
res
=>
{
this
.
workerList
=
res
.
data
this
.
isLoading
=
false
})
},
},
mounted
()
{
mounted
()
{
let
b
=
{}
let
a
=
[
'
a1
'
,
'
a2
'
,
'
a3
'
,
'
a4
'
,
'
a5
'
,
'
a6
'
]
a
.
forEach
((
v
,
i
)
=>
{
b
[
v
]
=
echarts
.
init
(
document
.
getElementById
(
v
))
// eslint-disable-line
b
[
v
].
setOption
(
gaugeOption
,
true
)
})
},
},
components
:
{
mList
,
mListConstruction
,
mSpin
,
mNoData
}
components
:
{
mList
,
mListConstruction
,
mSpin
,
mNoData
}
}
}
</
script
>
</
script
>
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
@import
"./servers"
;
</
style
>
\ No newline at end of file
escheduler-ui/src/js/conf/home/pages/monitor/pages/servers/zookeeper.vue
浏览文件 @
9b710f39
<
template
>
<
template
>
<m-list-construction
:title=
"
$t('Service-Master')
"
>
<m-list-construction
:title=
"
'Zookeeper管理'
"
>
<template
slot=
"content"
>
<template
slot=
"content"
>
<template
v-if=
"
mast
erList.length"
>
<template
v-if=
"
zookeep
erList.length"
>
<m-list
:list=
"
mast
erList"
></m-list>
<m-list
:list=
"
zookeep
erList"
></m-list>
</
template
>
</
template
>
<
template
v-if=
"!
mast
erList.length"
>
<
template
v-if=
"!
zookeep
erList.length"
>
<m-no-data></m-no-data>
<m-no-data></m-no-data>
</
template
>
</
template
>
<m-spin
:is-spin=
"isLoading"
></m-spin>
<m-spin
:is-spin=
"isLoading"
></m-spin>
...
@@ -27,7 +27,7 @@
...
@@ -27,7 +27,7 @@
totalPage
:
null
,
totalPage
:
null
,
searchVal
:
''
,
searchVal
:
''
,
isLoading
:
false
,
isLoading
:
false
,
mast
erList
:
[]
zookeep
erList
:
[]
}
}
},
},
props
:
{},
props
:
{},
...
@@ -36,11 +36,7 @@
...
@@ -36,11 +36,7 @@
},
},
watch
:
{},
watch
:
{},
created
()
{
created
()
{
this
.
isLoading
=
true
this
.
zookeeperList
=
[{
id
:
1
},
{
id
:
1
},
{
id
:
1
},
{
id
:
1
}]
this
.
getProcessMasterList
().
then
(
res
=>
{
this
.
masterList
=
res
.
data
this
.
isLoading
=
false
})
},
},
mounted
()
{
mounted
()
{
},
},
...
...
escheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/email.vue
浏览文件 @
9b710f39
...
@@ -3,7 +3,7 @@
...
@@ -3,7 +3,7 @@
<div
class=
"clearfix input-element"
>
<div
class=
"clearfix input-element"
>
<span
class=
"tag-wrapper"
v-for=
"(item,$index) in activeList"
:class=
"activeIndex === $index ? 'active' : ''"
>
<span
class=
"tag-wrapper"
v-for=
"(item,$index) in activeList"
:class=
"activeIndex === $index ? 'active' : ''"
>
<span
class=
"tag-text"
>
{{
item
}}
</span>
<span
class=
"tag-text"
>
{{
item
}}
</span>
<i
class=
"remove-tag ans-icon-close"
@
click=
"_del($index)"
></i>
<i
class=
"remove-tag ans-icon-close"
@
click
.stop
=
"_del($index)"
></i>
</span>
</span>
<x-poptip
<x-poptip
placement=
"bottom-start"
placement=
"bottom-start"
...
@@ -15,7 +15,7 @@
...
@@ -15,7 +15,7 @@
<div
class=
"ans-scroller"
style=
" max-height: 300px;"
>
<div
class=
"ans-scroller"
style=
" max-height: 300px;"
>
<div
class=
"scroll-area-wrapper scroll-transition"
>
<div
class=
"scroll-area-wrapper scroll-transition"
>
<ul
class=
"dropdown-container"
>
<ul
class=
"dropdown-container"
>
<li
class=
"ans-option"
v-for=
"(item,$index) in emailList"
@
click=
"_selectEmail($index + 1)"
>
<li
class=
"ans-option"
v-for=
"(item,$index) in emailList"
@
click
.stop
=
"_selectEmail($index + 1)"
>
<span
class=
"default-option-class"
:class=
"index === ($index + 1) ? 'active' : ''"
>
{{
item
}}
</span>
<span
class=
"default-option-class"
:class=
"index === ($index + 1) ? 'active' : ''"
>
{{
item
}}
</span>
</li>
</li>
</ul>
</ul>
...
@@ -212,7 +212,7 @@
...
@@ -212,7 +212,7 @@
*/
*/
_handlerEmailWitch
()
{
_handlerEmailWitch
()
{
setTimeout
(()
=>
{
setTimeout
(()
=>
{
this
.
emailWidth
=
parseInt
(
688
-
$
(
this
.
$refs
.
emailInput
).
position
().
left
-
20
)
this
.
emailWidth
=
parseInt
(
$
(
'
.email-model
'
).
width
()
-
$
(
this
.
$refs
.
emailInput
).
position
().
left
-
20
)
if
(
this
.
emailWidth
<
80
)
{
if
(
this
.
emailWidth
<
80
)
{
this
.
emailWidth
=
200
this
.
emailWidth
=
200
}
}
...
@@ -274,7 +274,7 @@
...
@@ -274,7 +274,7 @@
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
.email-model
{
.email-model
{
width
:
688px
;
width
:
100%
;
.input-element
{
.input-element
{
min-height
:
32px
;
min-height
:
32px
;
padding
:
1px
8px
;
padding
:
1px
8px
;
...
...
escheduler-ui/src/js/conf/home/pages/projects/pages/definition/pages/list/_source/start.vue
浏览文件 @
9b710f39
...
@@ -83,7 +83,7 @@
...
@@ -83,7 +83,7 @@
<div
class=
"text"
>
<div
class=
"text"
>
{{
$t
(
'
Recipient
'
)
}}
{{
$t
(
'
Recipient
'
)
}}
</div>
</div>
<div
class=
"cont"
>
<div
class=
"cont"
style=
"width: 688px;"
>
<m-email
v-model=
"receivers"
:repeat-data=
"receiversCc"
></m-email>
<m-email
v-model=
"receivers"
:repeat-data=
"receiversCc"
></m-email>
</div>
</div>
</div>
</div>
...
@@ -91,7 +91,7 @@
...
@@ -91,7 +91,7 @@
<div
class=
"text"
>
<div
class=
"text"
>
{{
$t
(
'
Cc
'
)
}}
{{
$t
(
'
Cc
'
)
}}
</div>
</div>
<div
class=
"cont"
>
<div
class=
"cont"
style=
"width: 688px;"
>
<m-email
v-model=
"receiversCc"
:repeat-data=
"receivers"
></m-email>
<m-email
v-model=
"receiversCc"
:repeat-data=
"receivers"
></m-email>
</div>
</div>
</div>
</div>
...
...
escheduler-ui/src/js/conf/home/pages/projects/pages/index/_source/projectChart.vue
浏览文件 @
9b710f39
...
@@ -7,7 +7,7 @@
...
@@ -7,7 +7,7 @@
:panel-num=
"2"
:panel-num=
"2"
placement=
"bottom-end"
placement=
"bottom-end"
@
on-change=
"_datepicker"
@
on-change=
"_datepicker"
:value=
"
scheduleTime
"
:value=
"
[searchParams.startDate,searchParams.endDate]
"
type=
"daterange"
type=
"daterange"
:placeholder=
"$t('Select date range')"
:placeholder=
"$t('Select date range')"
format=
"YYYY-MM-DD HH:mm:ss"
>
format=
"YYYY-MM-DD HH:mm:ss"
>
...
@@ -30,7 +30,7 @@
...
@@ -30,7 +30,7 @@
<th>
{{
$t
(
'
Number
'
)
}}
</th>
<th>
{{
$t
(
'
Number
'
)
}}
</th>
<th>
{{
$t
(
'
State
'
)
}}
</th>
<th>
{{
$t
(
'
State
'
)
}}
</th>
</tr>
</tr>
<tr
v-for=
"(item,$index) in taskC
ountDto
sList"
>
<tr
v-for=
"(item,$index) in taskC
tatu
sList"
>
<td><span>
{{
$index
+
1
}}
</span></td>
<td><span>
{{
$index
+
1
}}
</span></td>
<td>
<td>
<span>
<span>
...
@@ -60,7 +60,65 @@
...
@@ -60,7 +60,65 @@
<th>
{{
$t
(
'
Number
'
)
}}
</th>
<th>
{{
$t
(
'
Number
'
)
}}
</th>
<th>
{{
$t
(
'
State
'
)
}}
</th>
<th>
{{
$t
(
'
State
'
)
}}
</th>
</tr>
</tr>
<tr
v-for=
"(item,$index) in processStateCountList"
>
<tr
v-for=
"(item,$index) in processStateList"
>
<td><span>
{{
$index
+
1
}}
</span></td>
<td><span><a
href=
"javascript:"
@
click=
"id && _goProcess(item.key)"
:class=
"id ?'links':''"
>
{{
item
.
value
}}
</a></span></td>
<td><span
class=
"ellipsis"
style=
"width: 98%;"
:title=
"item.key"
>
{{
item
.
key
}}
</span></td>
</tr>
</table>
</div>
</div>
</div>
</div>
</div>
<div
class=
"row"
style=
"padding-top: 20px;"
>
<div
class=
"col-md-6"
>
<div
class=
"chart-title"
>
<span>
命令状态统计
</span>
</div>
<div
class=
"row"
>
<div
class=
"col-md-7"
>
<div
id=
"command-state-pie"
style=
"height:260px;margin-top: 100px;"
></div>
</div>
<div
class=
"col-md-5"
>
<div
class=
"table-small-model"
>
<table>
<tr>
<th
width=
"40"
>
{{
$t
(
'
#
'
)
}}
</th>
<th>
{{
$t
(
'
Number
'
)
}}
</th>
<th>
{{
$t
(
'
State
'
)
}}
</th>
</tr>
<tr
v-for=
"(item,$index) in taskCtatusList"
>
<td><span>
{{
$index
+
1
}}
</span></td>
<td>
<span>
<a
href=
"javascript:"
@
click=
"id && _goTask(item.key)"
:class=
"id ?'links':''"
>
{{
item
.
value
}}
</a>
</span>
</td>
<td><span
class=
"ellipsis"
style=
"width: 98%;"
:title=
"item.key"
>
{{
item
.
key
}}
</span></td>
</tr>
</table>
</div>
</div>
</div>
</div>
<div
class=
"col-md-6"
>
<div
class=
"chart-title"
>
<span>
队列统计
</span>
</div>
<div
class=
"row"
>
<div
class=
"col-md-7"
>
<div
id=
"process-state-pie"
style=
"height:260px;margin-top: 100px;"
></div>
</div>
<div
class=
"col-md-5"
>
<div
class=
"table-small-model"
>
<table>
<tr>
<th
width=
"40"
>
{{
$t
(
'
#
'
)
}}
</th>
<th>
{{
$t
(
'
Number
'
)
}}
</th>
<th>
{{
$t
(
'
State
'
)
}}
</th>
</tr>
<tr
v-for=
"(item,$index) in processStateList"
>
<td><span>
{{
$index
+
1
}}
</span></td>
<td><span>
{{
$index
+
1
}}
</span></td>
<td><span><a
href=
"javascript:"
@
click=
"id && _goProcess(item.key)"
:class=
"id ?'links':''"
>
{{
item
.
value
}}
</a></span></td>
<td><span><a
href=
"javascript:"
@
click=
"id && _goProcess(item.key)"
:class=
"id ?'links':''"
>
{{
item
.
value
}}
</a></span></td>
<td><span
class=
"ellipsis"
style=
"width: 98%;"
:title=
"item.key"
>
{{
item
.
key
}}
</span></td>
<td><span
class=
"ellipsis"
style=
"width: 98%;"
:title=
"item.key"
>
{{
item
.
key
}}
</span></td>
...
@@ -93,32 +151,37 @@
...
@@ -93,32 +151,37 @@
import
dayjs
from
'
dayjs
'
import
dayjs
from
'
dayjs
'
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
{
pie
,
bar
}
from
'
./chartConfig
'
import
{
pie
,
bar
}
from
'
./chartConfig
'
import
{
stateType
}
from
'
@/conf/home/pages/projects/pages/_source/instanceConditions/common
'
import
Chart
from
'
~/@analysys/ana-charts
'
import
Chart
from
'
~/@analysys/ana-charts
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mSpin
from
'
@/module/components/spin/spin
'
import
mNoData
from
'
@/module/components/noData/noData
'
import
{
stateType
}
from
'
@/conf/home/pages/projects/pages/_source/instanceConditions/common
'
export
default
{
export
default
{
name
:
'
perject-chart
'
,
name
:
'
perject-chart
'
,
data
()
{
data
()
{
return
{
return
{
taskCountDtosList
:
[],
isLoading
:
true
,
processStateCountList
:
[],
taskCtatusList
:
[],
userList
:
[],
processStateList
:
[],
scheduleTime
:
[
'
2018-11-16 00:00:00
'
,
'
2018-11-16 17:13:11
'
],
defineUserList
:
[],
isLoading
:
true
commandStateList
:
[],
searchParams
:
{
projectId
:
this
.
id
,
startDate
:
''
,
endDate
:
''
}
}
}
},
},
props
:
{
props
:
{
id
:
Number
id
:
Number
},
},
methods
:
{
methods
:
{
...
mapActions
(
'
projects
'
,
[
'
getTaskCtatusCount
'
,
'
getProcessStateCount
'
,
'
getDefineUserCount
'
]),
...
mapActions
(
'
projects
'
,
[
'
getTaskCtatusCount
'
,
'
getProcessStateCount
'
,
'
getDefineUserCount
'
,
'
getCommandStateCount
'
,
'
getQueueCount
'
]),
_datepicker
(
val
)
{
_datepicker
(
val
)
{
this
.
s
cheduleTime
=
val
this
.
s
earchParams
.
startDate
=
val
[
0
]
this
.
_stateTypePie
()
this
.
searchParams
.
endDate
=
val
[
1
]
this
.
_
processStatePie
(
)
this
.
_
getData
(
false
)
},
},
_goTask
(
name
)
{
_goTask
(
name
)
{
this
.
$router
.
push
({
this
.
$router
.
push
({
...
@@ -140,99 +203,107 @@
...
@@ -140,99 +203,107 @@
}
}
})
})
},
},
_stateTypePie
()
{
this
.
taskCountDtosList
=
[]
this
.
getTaskCtatusCount
({
projectId
:
this
.
id
,
startDate
:
this
.
scheduleTime
[
0
],
endDate
:
this
.
scheduleTime
[
1
]
}).
then
(
res
=>
{
let
data
=
res
.
data
.
taskCountDtos
this
.
taskCountDtosList
=
_
.
map
(
data
,
v
=>
{
return
{
key
:
_
.
find
(
stateType
,
[
'
code
'
,
v
.
taskStateType
])[
'
label
'
],
value
:
v
.
count
,
type
:
'
type
'
}
})
const
myChart
=
Chart
.
pie
(
'
#task-status-pie
'
,
this
.
taskCountDtosList
,
{
title
:
''
})
myChart
.
echart
.
setOption
(
pie
)
// 首页不允许跳转
_handleTaskCtatus
(
res
)
{
if
(
this
.
id
)
{
let
data
=
res
.
data
.
taskCountDtos
myChart
.
echart
.
on
(
'
click
'
,
e
=>
{
this
.
taskCtatusList
=
_
.
map
(
data
,
v
=>
{
this
.
_goTask
(
e
.
data
.
name
)
return
{
})
key
:
_
.
find
(
stateType
,
[
'
code
'
,
v
.
taskStateType
])[
'
label
'
],
value
:
v
.
count
,
type
:
'
type
'
}
}
}).
catch
(
e
=>
{})
})
},
const
myChart
=
Chart
.
pie
(
'
#task-status-pie
'
,
this
.
taskCtatusList
,
{
title
:
''
})
_processStatePie
()
{
myChart
.
echart
.
setOption
(
pie
)
this
.
processStateCountList
=
[]
this
.
getProcessStateCount
({
// 首页不允许跳转
projectId
:
this
.
id
,
if
(
this
.
id
)
{
startDate
:
this
.
scheduleTime
[
0
],
myChart
.
echart
.
on
(
'
click
'
,
e
=>
{
endDate
:
this
.
scheduleTime
[
1
]
this
.
_goTask
(
e
.
data
.
name
)
}).
then
(
res
=>
{
let
data
=
res
.
data
.
taskCountDtos
this
.
processStateCountList
=
_
.
map
(
data
,
v
=>
{
return
{
key
:
_
.
find
(
stateType
,
[
'
code
'
,
v
.
taskStateType
])[
'
label
'
],
value
:
v
.
count
}
})
})
const
myChart
=
Chart
.
pie
(
'
#process-state-pie
'
,
this
.
processStateCountList
,
{
title
:
''
})
}
myChart
.
echart
.
setOption
(
pie
)
// 首页不允许跳转
if
(
this
.
id
)
{
myChart
.
echart
.
on
(
'
click
'
,
e
=>
{
this
.
_goProcess
(
e
.
data
.
name
)
})
}
}).
catch
(
e
=>
{})
},
},
_processDefinitionBar
()
{
_handleProcessState
(
res
)
{
this
.
getDefineUserCount
({
let
data
=
res
.
data
.
taskCountDtos
projectId
:
this
.
id
this
.
processStateList
=
_
.
map
(
data
,
v
=>
{
}).
then
(
res
=>
{
return
{
let
data
=
res
.
data
.
userList
key
:
_
.
find
(
stateType
,
[
'
code
'
,
v
.
taskStateType
])[
'
label
'
],
this
.
userList
=
_
.
map
(
data
,
v
=>
{
value
:
v
.
count
return
{
}
key
:
v
.
userName
+
'
,
'
+
v
.
userId
+
'
,
'
+
v
.
count
,
})
value
:
v
.
count
const
myChart
=
Chart
.
pie
(
'
#process-state-pie
'
,
this
.
processStateList
,
{
title
:
''
})
}
myChart
.
echart
.
setOption
(
pie
)
// 首页不允许跳转
if
(
this
.
id
)
{
myChart
.
echart
.
on
(
'
click
'
,
e
=>
{
this
.
_goProcess
(
e
.
data
.
name
)
})
})
const
myChart
=
Chart
.
bar
(
'
#process-definition-bar
'
,
this
.
userList
,
{})
}
myChart
.
echart
.
setOption
(
bar
)
},
// 首页不允许跳转
_handleDefineUser
(
res
)
{
if
(
this
.
id
)
{
let
data
=
res
.
data
.
userList
myChart
.
echart
.
on
(
'
click
'
,
e
=>
{
this
.
defineUserList
=
_
.
map
(
data
,
v
=>
{
this
.
$router
.
push
({
return
{
name
:
'
projects-definition-list
'
,
key
:
v
.
userName
+
'
,
'
+
v
.
userId
+
'
,
'
+
v
.
count
,
query
:
{
value
:
v
.
count
userId
:
e
.
name
.
split
(
'
,
'
)[
1
]
}
}
})
})
const
myChart
=
Chart
.
bar
(
'
#process-definition-bar
'
,
this
.
defineUserList
,
{})
myChart
.
echart
.
setOption
(
bar
)
// 首页不允许跳转
if
(
this
.
id
)
{
myChart
.
echart
.
on
(
'
click
'
,
e
=>
{
this
.
$router
.
push
({
name
:
'
projects-definition-list
'
,
query
:
{
userId
:
e
.
name
.
split
(
'
,
'
)[
1
]
}
})
})
})
}
},
_handleCommandState
(
res
)
{
},
_handleQueue
()
{},
_getData
(
is
=
true
)
{
this
.
isLoading
=
true
let
ioList
=
[
this
.
getTaskCtatusCount
(
this
.
searchParams
),
this
.
getProcessStateCount
(
this
.
searchParams
),
this
.
getCommandStateCount
(
this
.
searchParams
),
this
.
getQueueCount
(
this
.
searchParams
)
]
if
(
is
)
{
ioList
.
push
(
this
.
getDefineUserCount
(
_
.
pick
(
this
.
searchParams
,
[
'
projectId
'
])))
}
Promise
.
all
(
ioList
).
then
(
res
=>
{
this
.
_handleTaskCtatus
(
res
[
0
])
this
.
_handleProcessState
(
res
[
1
])
this
.
_handleCommandState
(
res
[
2
])
this
.
_handleQueue
(
res
[
3
])
if
(
is
)
{
this
.
_handleDefineUser
(
res
[
4
])
}
}
}).
catch
(
e
=>
{})
setTimeout
(()
=>
{
this
.
isLoading
=
false
},
800
)
}).
catch
(
e
=>
{
console
.
log
(
e
)
this
.
isLoading
=
false
})
}
}
},
},
watch
:
{
watch
:
{
},
},
created
()
{
created
()
{
this
.
scheduleTime
=
[
dayjs
().
format
(
'
YYYY-MM-DD 00:00:00
'
),
dayjs
().
format
(
'
YYYY-MM-DD HH:mm:ss
'
)]
this
.
searchParams
.
startDate
=
dayjs
().
format
(
'
YYYY-MM-DD 00:00:00
'
)
this
.
isLoading
=
true
this
.
searchParams
.
endDate
=
dayjs
().
format
(
'
YYYY-MM-DD HH:mm:ss
'
)
Promise
.
all
([
// init get data
this
.
_stateTypePie
(),
this
.
_getData
()
this
.
_processStatePie
(),
this
.
_processDefinitionBar
()
]).
then
(
res
=>
{
setTimeout
(()
=>
{
this
.
isLoading
=
false
},
800
)
}).
catch
(
e
=>
{
this
.
isLoading
=
false
})
},
},
mounted
()
{
mounted
()
{
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/queue/_source/list.vue
浏览文件 @
9b710f39
...
@@ -80,7 +80,6 @@
...
@@ -80,7 +80,6 @@
<
script
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
'
@/module/filter/formatDate
'
import
'
@/module/filter/formatDate
'
import
{
findComponentDownward
}
from
'
@/module/util/
'
export
default
{
export
default
{
name
:
'
tenement-list
'
,
name
:
'
tenement-list
'
,
...
@@ -112,7 +111,7 @@
...
@@ -112,7 +111,7 @@
})
})
},
},
_edit
(
item
)
{
_edit
(
item
)
{
findComponentDownward
(
this
.
$root
,
'
queue-index
'
).
_create
(
item
)
this
.
$emit
(
'
on-edit
'
,
item
)
}
}
},
},
watch
:
{
watch
:
{
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/queue/index.vue
浏览文件 @
9b710f39
...
@@ -9,7 +9,12 @@
...
@@ -9,7 +9,12 @@
</template>
</template>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<template
v-if=
"queueList.length"
>
<template
v-if=
"queueList.length"
>
<m-list
:queue-list=
"queueList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
></m-list>
<m-list
@
on-edit=
"_onEdit"
:queue-list=
"queueList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
>
</m-list>
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
</div>
</div>
...
@@ -60,6 +65,9 @@
...
@@ -60,6 +65,9 @@
_page
(
val
)
{
_page
(
val
)
{
this
.
searchParams
.
pageNo
=
val
this
.
searchParams
.
pageNo
=
val
},
},
_onEdit
(
item
)
{
this
.
_create
(
item
)
},
_create
(
item
)
{
_create
(
item
)
{
let
self
=
this
let
self
=
this
let
modal
=
this
.
$modal
.
dialog
({
let
modal
=
this
.
$modal
.
dialog
({
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/tenement/_source/list.vue
浏览文件 @
9b710f39
...
@@ -86,7 +86,6 @@
...
@@ -86,7 +86,6 @@
<
script
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
'
@/module/filter/formatDate
'
import
'
@/module/filter/formatDate
'
import
{
findComponentDownward
}
from
'
@/module/util/
'
export
default
{
export
default
{
name
:
'
tenement-list
'
,
name
:
'
tenement-list
'
,
...
@@ -118,7 +117,7 @@
...
@@ -118,7 +117,7 @@
})
})
},
},
_edit
(
item
)
{
_edit
(
item
)
{
findComponentDownward
(
this
.
$root
,
'
tenement-index
'
).
_create
(
item
)
this
.
$emit
(
'
on-edit
'
,
item
)
}
}
},
},
watch
:
{
watch
:
{
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/tenement/index.vue
浏览文件 @
9b710f39
...
@@ -9,7 +9,12 @@
...
@@ -9,7 +9,12 @@
</template>
</template>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<template
v-if=
"tenementList.length"
>
<template
v-if=
"tenementList.length"
>
<m-list
:tenement-list=
"tenementList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
></m-list>
<m-list
@
on-edit=
"_onEdit"
:tenement-list=
"tenementList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
>
</m-list>
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
</div>
</div>
...
@@ -60,6 +65,9 @@
...
@@ -60,6 +65,9 @@
_page
(
val
)
{
_page
(
val
)
{
this
.
searchParams
.
pageNo
=
val
this
.
searchParams
.
pageNo
=
val
},
},
_onEdit
(
item
)
{
this
.
_create
(
item
)
},
_create
(
item
)
{
_create
(
item
)
{
let
self
=
this
let
self
=
this
let
modal
=
this
.
$modal
.
dialog
({
let
modal
=
this
.
$modal
.
dialog
({
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/token/index.vue
0 → 100644
浏览文件 @
9b710f39
<
template
>
<m-token></m-token>
</
template
>
<
script
>
import
mToken
from
'
@/conf/home/pages/user/pages/token
'
export
default
{
name
:
'
token-index
'
,
data
()
{
return
{}
},
props
:
{},
methods
:
{},
watch
:
{},
beforeCreate
()
{
},
created
()
{
},
beforeMount
()
{
},
mounted
()
{
},
beforeUpdate
()
{
},
updated
()
{
},
beforeDestroy
()
{
},
destroyed
()
{
},
computed
:
{},
components
:
{
mToken
}
}
</
script
>
<
style
lang=
"scss"
rel=
"stylesheet/scss"
>
.index-model
{
}
</
style
>
escheduler-ui/src/js/conf/home/pages/security/pages/users/_source/list.vue
浏览文件 @
9b710f39
...
@@ -99,7 +99,6 @@
...
@@ -99,7 +99,6 @@
import
i18n
from
'
@/module/i18n
'
import
i18n
from
'
@/module/i18n
'
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
'
@/module/filter/formatDate
'
import
'
@/module/filter/formatDate
'
import
{
findComponentDownward
}
from
'
@/module/util/
'
import
mTransfer
from
'
@/module/components/transfer/transfer
'
import
mTransfer
from
'
@/module/components/transfer/transfer
'
export
default
{
export
default
{
...
@@ -132,7 +131,7 @@
...
@@ -132,7 +131,7 @@
})
})
},
},
_edit
(
item
)
{
_edit
(
item
)
{
findComponentDownward
(
this
.
$root
,
'
users-index
'
).
_create
(
item
)
this
.
$emit
(
'
on-edit
'
,
item
)
},
},
_authProject
(
item
,
i
)
{
_authProject
(
item
,
i
)
{
this
.
$refs
[
`poptip-auth-
${
i
}
`
][
0
].
doClose
()
this
.
$refs
[
`poptip-auth-
${
i
}
`
][
0
].
doClose
()
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/users/index.vue
浏览文件 @
9b710f39
...
@@ -9,7 +9,12 @@
...
@@ -9,7 +9,12 @@
</template>
</template>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<template
v-if=
"userList.length"
>
<template
v-if=
"userList.length"
>
<m-list
:user-list=
"userList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
></m-list>
<m-list
@
on-edit=
"_onEdit"
:user-list=
"userList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
>
</m-list>
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
</div>
</div>
...
@@ -60,6 +65,9 @@
...
@@ -60,6 +65,9 @@
_page
(
val
)
{
_page
(
val
)
{
this
.
searchParams
.
pageNo
=
val
this
.
searchParams
.
pageNo
=
val
},
},
_onEdit
(
item
)
{
this
.
_create
(
item
)
},
_create
(
item
)
{
_create
(
item
)
{
let
self
=
this
let
self
=
this
let
modal
=
this
.
$modal
.
dialog
({
let
modal
=
this
.
$modal
.
dialog
({
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/_source/list.vue
浏览文件 @
9b710f39
...
@@ -72,7 +72,6 @@
...
@@ -72,7 +72,6 @@
import
i18n
from
'
@/module/i18n
'
import
i18n
from
'
@/module/i18n
'
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
'
@/module/filter/formatDate
'
import
'
@/module/filter/formatDate
'
import
{
findComponentDownward
}
from
'
@/module/util/
'
import
mTransfer
from
'
@/module/components/transfer/transfer
'
import
mTransfer
from
'
@/module/components/transfer/transfer
'
export
default
{
export
default
{
...
@@ -105,7 +104,7 @@
...
@@ -105,7 +104,7 @@
}
)
}
)
}
,
}
,
_edit
(
item
)
{
_edit
(
item
)
{
findComponentDownward
(
this
.
$root
,
'
warning-groups-index
'
).
_create
(
item
)
this
.
$emit
(
'
on-edit
'
,
item
)
}
,
}
,
_mangeUser
(
item
,
i
)
{
_mangeUser
(
item
,
i
)
{
this
.
getAuthList
({
this
.
getAuthList
({
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/warningGroups/index.vue
浏览文件 @
9b710f39
...
@@ -9,7 +9,12 @@
...
@@ -9,7 +9,12 @@
</template>
</template>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<template
v-if=
"alertgroupList.length"
>
<template
v-if=
"alertgroupList.length"
>
<m-list
:alertgroup-list=
"alertgroupList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
></m-list>
<m-list
@
on-edit=
"_onEdit"
:alertgroup-list=
"alertgroupList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
>
</m-list>
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
</div>
</div>
...
@@ -60,6 +65,9 @@
...
@@ -60,6 +65,9 @@
_page
(
val
)
{
_page
(
val
)
{
this
.
searchParams
.
pageNo
=
val
this
.
searchParams
.
pageNo
=
val
},
},
_onEdit
(
item
)
{
this
.
_create
(
item
)
},
_create
(
item
)
{
_create
(
item
)
{
let
self
=
this
let
self
=
this
let
modal
=
this
.
$modal
.
dialog
({
let
modal
=
this
.
$modal
.
dialog
({
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/_source/list.vue
浏览文件 @
9b710f39
...
@@ -66,7 +66,6 @@
...
@@ -66,7 +66,6 @@
// import i18n from '@/module/i18n'
// import i18n from '@/module/i18n'
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
'
@/module/filter/formatDate
'
import
'
@/module/filter/formatDate
'
import
{
findComponentDownward
}
from
'
@/module/util/
'
export
default
{
export
default
{
name
:
'
user-list
'
,
name
:
'
user-list
'
,
...
@@ -98,7 +97,7 @@
...
@@ -98,7 +97,7 @@
})
})
},
},
_edit
(
item
)
{
_edit
(
item
)
{
findComponentDownward
(
this
.
$root
,
'
worker-groups-index
'
).
_create
(
item
)
this
.
$emit
(
'
on-edit
'
,
item
)
}
}
},
},
watch
:
{
watch
:
{
...
...
escheduler-ui/src/js/conf/home/pages/security/pages/workerGroups/index.vue
浏览文件 @
9b710f39
...
@@ -9,7 +9,11 @@
...
@@ -9,7 +9,11 @@
</template>
</template>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<template
v-if=
"workerGroupList.length"
>
<template
v-if=
"workerGroupList.length"
>
<m-list
:worker-group-list=
"workerGroupList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
></m-list>
<m-list
@
on-edit=
"_onEdit"
:worker-group-list=
"workerGroupList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
>
</m-list>
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
</div>
</div>
...
@@ -60,6 +64,9 @@
...
@@ -60,6 +64,9 @@
_page
(
val
)
{
_page
(
val
)
{
this
.
searchParams
.
pageNo
=
val
this
.
searchParams
.
pageNo
=
val
},
},
_onEdit
(
item
)
{
this
.
_create
(
item
)
},
_create
(
item
)
{
_create
(
item
)
{
let
self
=
this
let
self
=
this
let
modal
=
this
.
$modal
.
dialog
({
let
modal
=
this
.
$modal
.
dialog
({
...
...
escheduler-ui/src/js/conf/home/pages/user/pages/token/_source/createToken.vue
浏览文件 @
9b710f39
...
@@ -18,7 +18,7 @@
...
@@ -18,7 +18,7 @@
</x-datepicker>
</x-datepicker>
</
template
>
</
template
>
</m-list-box-f>
</m-list-box-f>
<m-list-box-f>
<m-list-box-f
v-if=
"auth"
>
<
template
slot=
"name"
><b>
*
</b>
用户
</
template
>
<
template
slot=
"name"
><b>
*
</b>
用户
</
template
>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<x-select
v-model=
"userId"
@
on-change=
"_onChange"
>
<x-select
v-model=
"userId"
@
on-change=
"_onChange"
>
...
@@ -53,6 +53,7 @@
...
@@ -53,6 +53,7 @@
import
dayjs
from
'
dayjs
'
import
dayjs
from
'
dayjs
'
// import i18n from '@/module/i18n'
// import i18n from '@/module/i18n'
import
store
from
'
@/conf/home/store
'
import
store
from
'
@/conf/home/store
'
import
Permissions
from
'
@/module/permissions
'
import
mPopup
from
'
@/module/components/popup/popup
'
import
mPopup
from
'
@/module/components/popup/popup
'
import
mListBoxF
from
'
@/module/components/listBoxF/listBoxF
'
import
mListBoxF
from
'
@/module/components/listBoxF/listBoxF
'
...
@@ -66,7 +67,8 @@
...
@@ -66,7 +67,8 @@
disabledDate
:
date
=>
(
date
.
getTime
()
-
new
Date
(
new
Date
().
getTime
()
-
24
*
60
*
60
*
1000
))
<
0
,
disabledDate
:
date
=>
(
date
.
getTime
()
-
new
Date
(
new
Date
().
getTime
()
-
24
*
60
*
60
*
1000
))
<
0
,
token
:
''
,
token
:
''
,
userIdList
:
[],
userIdList
:
[],
tokenLoading
:
false
tokenLoading
:
false
,
auth
:
!
Permissions
.
getAuth
()
}
}
},
},
props
:
{
props
:
{
...
@@ -128,16 +130,23 @@
...
@@ -128,16 +130,23 @@
},
},
watch
:
{},
watch
:
{},
created
()
{
created
()
{
this
.
store
.
dispatch
(
`security/getUsersList`
).
then
(
res
=>
{
const
d
=
(
userId
)
=>
{
this
.
userIdList
=
_
.
map
(
res
,
v
=>
_
.
pick
(
v
,
[
'
id
'
,
'
userName
'
]))
if
(
this
.
item
)
{
if
(
this
.
item
)
{
this
.
expireTime
=
this
.
item
.
expireTime
this
.
expireTime
=
this
.
item
.
expireTime
this
.
userId
=
this
.
item
.
userId
this
.
userId
=
this
.
item
.
userId
this
.
token
=
this
.
item
.
token
this
.
token
=
this
.
item
.
token
}
else
{
}
else
{
this
.
userId
=
this
.
userIdList
[
0
].
i
d
this
.
userId
=
userI
d
}
}
})
}
if
(
this
.
auth
)
{
this
.
store
.
dispatch
(
`security/getUsersList`
).
then
(
res
=>
{
this
.
userIdList
=
_
.
map
(
res
,
v
=>
_
.
pick
(
v
,
[
'
id
'
,
'
userName
'
]))
d
(
this
.
userIdList
[
0
].
id
)
})
}
else
{
d
(
this
.
store
.
state
.
user
.
userInfo
.
id
)
}
},
},
mounted
()
{
mounted
()
{
},
},
...
...
escheduler-ui/src/js/conf/home/pages/user/pages/token/_source/list.vue
浏览文件 @
9b710f39
...
@@ -72,7 +72,6 @@
...
@@ -72,7 +72,6 @@
<
script
>
<
script
>
import
{
mapActions
}
from
'
vuex
'
import
{
mapActions
}
from
'
vuex
'
import
'
@/module/filter/formatDate
'
import
'
@/module/filter/formatDate
'
import
{
findComponentDownward
}
from
'
@/module/util/
'
export
default
{
export
default
{
name
:
'
token-list
'
,
name
:
'
token-list
'
,
...
@@ -104,7 +103,7 @@
...
@@ -104,7 +103,7 @@
})
})
},
},
_edit
(
item
)
{
_edit
(
item
)
{
findComponentDownward
(
this
.
$root
,
'
token-index
'
).
_create
(
item
)
this
.
$emit
(
'
on-edit
'
,
item
)
}
}
},
},
watch
:
{
watch
:
{
...
...
escheduler-ui/src/js/conf/home/pages/user/pages/token/index.vue
浏览文件 @
9b710f39
...
@@ -9,7 +9,12 @@
...
@@ -9,7 +9,12 @@
</template>
</template>
<
template
slot=
"content"
>
<
template
slot=
"content"
>
<template
v-if=
"tokenList.length"
>
<template
v-if=
"tokenList.length"
>
<m-list
:token-list=
"tokenList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
></m-list>
<m-list
@
on-edit=
"_onEdit"
:token-list=
"tokenList"
:page-no=
"searchParams.pageNo"
:page-size=
"searchParams.pageSize"
>
</m-list>
<div
class=
"page-box"
>
<div
class=
"page-box"
>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
<x-page
:current=
"parseInt(searchParams.pageNo)"
:total=
"total"
:page-size=
"searchParams.pageSize"
show-elevator
@
on-change=
"_page"
></x-page>
</div>
</div>
...
@@ -61,6 +66,9 @@
...
@@ -61,6 +66,9 @@
_page
(
val
)
{
_page
(
val
)
{
this
.
searchParams
.
pageNo
=
val
this
.
searchParams
.
pageNo
=
val
},
},
_onEdit
(
item
)
{
this
.
_create
(
item
)
},
_create
(
item
)
{
_create
(
item
)
{
let
self
=
this
let
self
=
this
let
modal
=
this
.
$modal
.
dialog
({
let
modal
=
this
.
$modal
.
dialog
({
...
...
escheduler-ui/src/js/conf/home/router/index.js
浏览文件 @
9b710f39
...
@@ -325,6 +325,14 @@ const router = new Router({
...
@@ -325,6 +325,14 @@ const router = new Router({
meta
:
{
meta
:
{
title
:
`workerGroups`
title
:
`workerGroups`
}
}
},
{
path
:
'
/security/token
'
,
name
:
'
token-manage
'
,
component
:
resolve
=>
require
([
'
../pages/security/pages/token/index
'
],
resolve
),
meta
:
{
title
:
`token`
}
}
}
]
]
},
},
...
...
escheduler-ui/src/js/conf/home/store/projects/actions.js
浏览文件 @
9b710f39
...
@@ -78,6 +78,30 @@ export default {
...
@@ -78,6 +78,30 @@ export default {
})
})
})
})
},
},
/**
* get command state count
*/
getCommandStateCount
({
state
},
payload
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
io
.
get
(
`projects/analysis/command-state-count`
,
payload
,
res
=>
{
resolve
(
res
)
}).
catch
(
e
=>
{
reject
(
e
)
})
})
},
/**
* get command state count
*/
getQueueCount
({
state
},
payload
)
{
return
new
Promise
((
resolve
,
reject
)
=>
{
io
.
get
(
`projects/analysis/queue-count`
,
payload
,
res
=>
{
resolve
(
res
)
}).
catch
(
e
=>
{
reject
(
e
)
})
})
},
/**
/**
* Process status statistics
* Process status statistics
*/
*/
...
...
escheduler-ui/src/js/conf/home/store/security/actions.js
浏览文件 @
9b710f39
...
@@ -435,7 +435,7 @@ export default {
...
@@ -435,7 +435,7 @@ export default {
let
list
=
res
.
data
let
list
=
res
.
data
list
.
unshift
({
list
.
unshift
({
id
:
-
1
,
id
:
-
1
,
name
:
'
All
'
name
:
'
Default
'
})
})
state
.
workerGroupsListAll
=
list
state
.
workerGroupsListAll
=
list
resolve
(
list
)
resolve
(
list
)
...
...
escheduler-ui/src/js/module/components/secondaryMenu/_source/menu.js
浏览文件 @
9b710f39
...
@@ -117,6 +117,15 @@ let menu = {
...
@@ -117,6 +117,15 @@ let menu = {
disabled
:
true
,
disabled
:
true
,
icon
:
'
fa-address-book
'
,
icon
:
'
fa-address-book
'
,
children
:
[]
children
:
[]
},
{
name
:
`令牌管理`
,
id
:
2
,
path
:
'
token-manage
'
,
isOpen
:
true
,
icon
:
'
fa-file-text
'
,
children
:
[],
disabled
:
true
}
}
],
],
resource
:
[
resource
:
[
...
@@ -178,7 +187,7 @@ let menu = {
...
@@ -178,7 +187,7 @@ let menu = {
isOpen
:
true
,
isOpen
:
true
,
icon
:
'
fa-file-text
'
,
icon
:
'
fa-file-text
'
,
children
:
[],
children
:
[],
disabled
:
!
Permissions
.
getAuth
()
disabled
:
Permissions
.
getAuth
()
}
}
],
],
monitor
:
[
monitor
:
[
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录