Skip to content
项目
群组
代码片段
帮助
当前项目
正在载入...
登录 / 注册
切换导航面板
C
cocktail-party-server
项目
项目
详情
活动
周期分析
仓库
仓库
文件
提交
分支
标签
贡献者
图表
比较
统计图
议题
0
议题
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
CI / CD
CI / CD
流水线
作业
日程
统计图
Wiki
Wiki
代码片段
代码片段
成员
成员
折叠边栏
关闭边栏
活动
图像
聊天
创建新问题
作业
提交
问题看板
Open sidebar
cocktail-party
cocktail-party-server
Commits
6361e4ef
提交
6361e4ef
authored
9月 03, 2021
作者:
RuoYi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
定时任务支持在线生成cron表达式
上级
cfa86bd4
全部展开
隐藏空白字符变更
内嵌
并排
正在显示
11 个修改的文件
包含
1046 行增加
和
13 行删除
+1046
-13
ruoyi.scss
ruoyi-ui/src/assets/styles/ruoyi.scss
+8
-1
day.vue
ruoyi-ui/src/components/Crontab/day.vue
+180
-0
hour.vue
ruoyi-ui/src/components/Crontab/hour.vue
+123
-0
index.vue
ruoyi-ui/src/components/Crontab/index.vue
+0
-0
min.vue
ruoyi-ui/src/components/Crontab/min.vue
+121
-0
mouth.vue
ruoyi-ui/src/components/Crontab/mouth.vue
+129
-0
result.vue
ruoyi-ui/src/components/Crontab/result.vue
+0
-0
second.vue
ruoyi-ui/src/components/Crontab/second.vue
+134
-0
week.vue
ruoyi-ui/src/components/Crontab/week.vue
+168
-0
year.vue
ruoyi-ui/src/components/Crontab/year.vue
+145
-0
index.vue
ruoyi-ui/src/views/monitor/job/index.vue
+38
-12
没有找到文件。
ruoyi-ui/src/assets/styles/ruoyi.scss
浏览文件 @
6361e4ef
...
@@ -60,10 +60,17 @@
...
@@ -60,10 +60,17 @@
color
:
inherit
;
color
:
inherit
;
}
}
.el-dialog
:not
(
.is-fullscreen
)
{
.el-dialog
:not
(
.is-fullscreen
)
{
margin-top
:
6vh
!
important
;
margin-top
:
6vh
!
important
;
}
}
.el-dialog
.el-dialog__body
{
overflow
:
auto
;
overflow-x
:
hidden
;
max-height
:
70vh
;
padding
:
10px
20px
0
;
}
.el-table
{
.el-table
{
.el-table__header-wrapper
,
.el-table__fixed-header-wrapper
{
.el-table__header-wrapper
,
.el-table__fixed-header-wrapper
{
th
{
th
{
...
...
ruoyi-ui/src/components/Crontab/day.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
"small"
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
日,允许的通配符[, - * / L M]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
不指定
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"31"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"0"
:max=
"31"
/>
日
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
从
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"31"
/>
号开始,每
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"31"
/>
日执行一次
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"5"
>
每月
<el-input-number
v-model=
'workday'
:min=
"0"
:max=
"31"
/>
号最近的那个工作日
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"6"
>
本月最后一天
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"7"
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<el-option
v-for=
"item in 31"
:key=
"item"
:value=
"item"
>
{{
item
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radioValue
:
1
,
workday
:
1
,
cycle01
:
1
,
cycle02
:
2
,
average01
:
1
,
average02
:
1
,
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
name
:
'crontab-day'
,
props
:
[
'check'
,
'cron'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
(
'day rachange'
);
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'day'
,
'*'
,
'day'
);
this
.
$emit
(
'update'
,
'week'
,
'?'
,
'day'
);
this
.
$emit
(
'update'
,
'mouth'
,
'*'
,
'day'
);
}
else
{
if
(
this
.
cron
.
hour
===
'*'
)
{
this
.
$emit
(
'update'
,
'hour'
,
'0'
,
'day'
);
}
if
(
this
.
cron
.
min
===
'*'
)
{
this
.
$emit
(
'update'
,
'min'
,
'0'
,
'day'
);
}
if
(
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'day'
);
}
}
switch
(
this
.
radioValue
)
{
case
2
:
this
.
$emit
(
'update'
,
'day'
,
'?'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'day'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'day'
,
this
.
average01
+
'/'
+
this
.
average02
);
break
;
case
5
:
this
.
$emit
(
'update'
,
'day'
,
this
.
workday
+
'W'
);
break
;
case
6
:
this
.
$emit
(
'update'
,
'day'
,
'L'
);
break
;
case
7
:
this
.
$emit
(
'update'
,
'day'
,
this
.
checkboxString
);
break
;
}
(
'day rachange end'
);
},
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'day'
,
this
.
cycleTotal
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'day'
,
this
.
averageTotal
);
}
},
// 最近工作日值变化时
workdayChange
()
{
if
(
this
.
radioValue
==
'5'
)
{
this
.
$emit
(
'update'
,
'day'
,
this
.
workday
+
'W'
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'7'
)
{
this
.
$emit
(
'update'
,
'day'
,
this
.
checkboxString
);
}
},
// 父组件传递的week发生变化触发
weekChange
()
{
//判断week值与day不能同时为“?”
if
(
this
.
cron
.
week
==
'?'
&&
this
.
radioValue
==
'2'
)
{
this
.
radioValue
=
'1'
;
}
else
if
(
this
.
cron
.
week
!==
'?'
&&
this
.
radioValue
!=
'2'
)
{
this
.
radioValue
=
'2'
;
}
},
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'workdayCheck'
:
'workdayChange'
,
'checkboxString'
:
'checkboxChange'
,
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
31
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
31
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
31
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
31
)
return
this
.
average01
+
'/'
+
this
.
average02
;
},
// 计算工作日格式
workdayCheck
:
function
()
{
this
.
workday
=
this
.
checkNum
(
this
.
workday
,
1
,
31
)
return
this
.
workday
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'*'
:
str
;
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/hour.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
"small"
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
小时,允许的通配符[, - * /]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"60"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"0"
:max=
"60"
/>
小时
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
从
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"60"
/>
小时开始,每
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"60"
/>
小时执行一次
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<el-option
v-for=
"item in 60"
:key=
"item"
:value=
"item-1"
>
{{
item
-
1
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radioValue
:
1
,
cycle01
:
0
,
cycle02
:
1
,
average01
:
0
,
average02
:
1
,
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
name
:
'crontab-hour'
,
props
:
[
'check'
,
'cron'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'hour'
,
'*'
,
'hour'
);
this
.
$emit
(
'update'
,
'day'
,
'*'
,
'hour'
);
}
else
{
if
(
this
.
cron
.
min
===
'*'
)
{
this
.
$emit
(
'update'
,
'min'
,
'0'
,
'hour'
);
}
if
(
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'hour'
);
}
}
switch
(
this
.
radioValue
)
{
case
2
:
this
.
$emit
(
'update'
,
'hour'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'hour'
,
this
.
average01
+
'/'
+
this
.
average02
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'hour'
,
this
.
checkboxString
);
break
;
}
},
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'2'
)
{
this
.
$emit
(
'update'
,
'hour'
,
this
.
cycleTotal
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'hour'
,
this
.
averageTotal
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'hour'
,
this
.
checkboxString
);
}
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
23
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
23
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
23
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
23
)
return
this
.
average01
+
'/'
+
this
.
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'*'
:
str
;
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/index.vue
0 → 100644
浏览文件 @
6361e4ef
差异被折叠。
点击展开。
ruoyi-ui/src/components/Crontab/min.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
"small"
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
分钟,允许的通配符[, - * /]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"60"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"0"
:max=
"60"
/>
分钟
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
从
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"60"
/>
分钟开始,每
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"60"
/>
分钟执行一次
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<el-option
v-for=
"item in 60"
:key=
"item"
:value=
"item-1"
>
{{
item
-
1
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radioValue
:
1
,
cycle01
:
1
,
cycle02
:
2
,
average01
:
0
,
average02
:
1
,
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
name
:
'crontab-min'
,
props
:
[
'check'
,
'cron'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
radioValue
!==
1
&&
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'min'
);
}
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'min'
,
'*'
,
'min'
);
this
.
$emit
(
'update'
,
'hour'
,
'*'
,
'min'
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'min'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
,
'min'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'min'
,
this
.
average01
+
'/'
+
this
.
average02
,
'min'
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'min'
,
this
.
checkboxString
,
'min'
);
break
;
}
},
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'2'
)
{
this
.
$emit
(
'update'
,
'min'
,
this
.
cycleTotal
,
'min'
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'min'
,
this
.
averageTotal
,
'min'
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'min'
,
this
.
checkboxString
,
'min'
);
}
},
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
,
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
59
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
59
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
59
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
)
return
this
.
average01
+
'/'
+
this
.
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'*'
:
str
;
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/mouth.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
'small'
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
月,允许的通配符[, - * /]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"12"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"1"
:max=
"12"
/>
月
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
从
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"12"
/>
月开始,每
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"12"
/>
月月执行一次
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<el-option
v-for=
"item in 12"
:key=
"item"
:value=
"item"
>
{{
item
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radioValue
:
1
,
cycle01
:
1
,
cycle02
:
2
,
average01
:
1
,
average02
:
1
,
checkboxList
:
[],
checkNum
:
this
.
check
}
},
name
:
'crontab-mouth'
,
props
:
[
'check'
,
'cron'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'mouth'
,
'*'
);
this
.
$emit
(
'update'
,
'year'
,
'*'
);
}
else
{
if
(
this
.
cron
.
day
===
'*'
)
{
this
.
$emit
(
'update'
,
'day'
,
'0'
,
'mouth'
);
}
if
(
this
.
cron
.
hour
===
'*'
)
{
this
.
$emit
(
'update'
,
'hour'
,
'0'
,
'mouth'
);
}
if
(
this
.
cron
.
min
===
'*'
)
{
this
.
$emit
(
'update'
,
'min'
,
'0'
,
'mouth'
);
}
if
(
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'mouth'
);
}
}
switch
(
this
.
radioValue
)
{
case
2
:
this
.
$emit
(
'update'
,
'mouth'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'mouth'
,
this
.
average01
+
'/'
+
this
.
average02
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'mouth'
,
this
.
checkboxString
);
break
;
}
},
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'2'
)
{
this
.
$emit
(
'update'
,
'mouth'
,
this
.
cycleTotal
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'mouth'
,
this
.
averageTotal
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'mouth'
,
this
.
checkboxString
);
}
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
12
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
12
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
12
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
12
)
return
this
.
average01
+
'/'
+
this
.
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'*'
:
str
;
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/result.vue
0 → 100644
浏览文件 @
6361e4ef
差异被折叠。
点击展开。
ruoyi-ui/src/components/Crontab/second.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
"small"
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
秒,允许的通配符[, - * /]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"60"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"0"
:max=
"60"
/>
秒
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
从
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"60"
/>
秒开始,每
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"60"
/>
秒执行一次
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<el-option
v-for=
"item in 60"
:key=
"item"
:value=
"item-1"
>
{{
item
-
1
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radioValue
:
1
,
cycle01
:
1
,
cycle02
:
2
,
average01
:
0
,
average02
:
1
,
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
name
:
'crontab-second'
,
props
:
[
'check'
,
'radioParent'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'second'
,
'*'
,
'second'
);
this
.
$emit
(
'update'
,
'min'
,
'*'
,
'second'
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'second'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'second'
,
this
.
average01
+
'/'
+
this
.
average02
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'second'
,
this
.
checkboxString
);
break
;
}
},
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'2'
)
{
this
.
$emit
(
'update'
,
'second'
,
this
.
cycleTotal
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'second'
,
this
.
averageTotal
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'second'
,
this
.
checkboxString
);
}
},
othChange
()
{
//反解析
let
ins
=
this
.
cron
.
second
(
'反解析 second'
,
ins
);
if
(
ins
===
'*'
)
{
this
.
radioValue
=
1
;
}
else
if
(
ins
.
indexOf
(
'-'
)
>
-
1
)
{
this
.
radioValue
=
2
}
else
if
(
ins
.
indexOf
(
'/'
)
>
-
1
)
{
this
.
radioValue
=
3
}
else
{
this
.
radioValue
=
4
this
.
checkboxList
=
ins
.
split
(
','
)
}
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
,
radioParent
()
{
this
.
radioValue
=
this
.
radioParent
}
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
59
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
59
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
59
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
)
return
this
.
average01
+
'/'
+
this
.
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'*'
:
str
;
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/week.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
'small'
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
周,允许的通配符[, - * / L #]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
不指定
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
周期从星期
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"7"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"1"
:max=
"7"
/>
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
第
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"4"
/>
周的星期
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"7"
/>
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"5"
>
本月最后一个星期
<el-input-number
v-model=
'weekday'
:min=
"1"
:max=
"7"
/>
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"6"
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<el-option
v-for=
"(item,index) of weekList"
:key=
"index"
:value=
"index+1"
>
{{
item
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
radioValue
:
2
,
weekday
:
1
,
cycle01
:
1
,
cycle02
:
2
,
average01
:
1
,
average02
:
1
,
checkboxList
:
[],
weekList
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
name
:
'crontab-week'
,
props
:
[
'check'
,
'cron'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'week'
,
'*'
);
this
.
$emit
(
'update'
,
'year'
,
'*'
);
}
else
{
if
(
this
.
cron
.
mouth
===
'*'
)
{
this
.
$emit
(
'update'
,
'mouth'
,
'0'
,
'week'
);
}
if
(
this
.
cron
.
day
===
'*'
)
{
this
.
$emit
(
'update'
,
'day'
,
'0'
,
'week'
);
}
if
(
this
.
cron
.
hour
===
'*'
)
{
this
.
$emit
(
'update'
,
'hour'
,
'0'
,
'week'
);
}
if
(
this
.
cron
.
min
===
'*'
)
{
this
.
$emit
(
'update'
,
'min'
,
'0'
,
'week'
);
}
if
(
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'week'
);
}
}
switch
(
this
.
radioValue
)
{
case
2
:
this
.
$emit
(
'update'
,
'week'
,
'?'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'week'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'week'
,
this
.
average01
+
'#'
+
this
.
average02
);
break
;
case
5
:
this
.
$emit
(
'update'
,
'week'
,
this
.
weekday
+
'L'
);
break
;
case
6
:
this
.
$emit
(
'update'
,
'week'
,
this
.
checkboxString
);
break
;
}
},
// 根据互斥事件,更改radio的值
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'week'
,
this
.
cycleTotal
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'week'
,
this
.
averageTotal
);
}
},
// 最近工作日值变化时
weekdayChange
()
{
if
(
this
.
radioValue
==
'5'
)
{
this
.
$emit
(
'update'
,
'week'
,
this
.
weekday
+
'L'
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'6'
)
{
this
.
$emit
(
'update'
,
'week'
,
this
.
checkboxString
);
}
},
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'weekdayCheck'
:
'weekdayChange'
,
'checkboxString'
:
'checkboxChange'
,
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
7
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
7
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
4
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
7
)
return
this
.
average01
+
'#'
+
this
.
average02
;
},
// 最近的工作日(格式)
weekdayCheck
:
function
()
{
this
.
weekday
=
this
.
checkNum
(
this
.
weekday
,
1
,
7
)
return
this
.
weekday
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'*'
:
str
;
}
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/year.vue
0 → 100644
浏览文件 @
6361e4ef
<
template
>
<el-form
size=
"small"
>
<el-form-item>
<el-radio
:label=
"1"
v-model=
'radioValue'
>
不填,允许的通配符[, - * /]
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
:label=
"2"
v-model=
'radioValue'
>
每年
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
:label=
"3"
v-model=
'radioValue'
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
'fullYear'
/>
-
<el-input-number
v-model=
'cycle02'
:min=
'fullYear'
/>
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
:label=
"4"
v-model=
'radioValue'
>
从
<el-input-number
v-model=
'average01'
:min=
'fullYear'
/>
年开始,每
<el-input-number
v-model=
'average02'
:min=
'fullYear'
/>
年执行一次
</el-radio>
</el-form-item>
<el-form-item>
<el-radio
:label=
"5"
v-model=
'radioValue'
>
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
>
<el-option
v-for=
"item in 9"
:key=
"item"
:value=
"item - 1 + fullYear"
:label=
"item -1 + fullYear"
/>
</el-select>
</el-radio>
</el-form-item>
</el-form>
</
template
>
<
script
>
export
default
{
data
()
{
return
{
fullYear
:
0
,
radioValue
:
1
,
cycle01
:
0
,
cycle02
:
0
,
average01
:
0
,
average02
:
1
,
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
name
:
'crontab-year'
,
props
:
[
'check'
,
'mouth'
,
'cron'
],
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
cron
.
mouth
===
'*'
)
{
this
.
$emit
(
'update'
,
'mouth'
,
'0'
,
'year'
);
}
if
(
this
.
cron
.
day
===
'*'
)
{
this
.
$emit
(
'update'
,
'day'
,
'0'
,
'year'
);
}
if
(
this
.
cron
.
hour
===
'*'
)
{
this
.
$emit
(
'update'
,
'hour'
,
'0'
,
'year'
);
}
if
(
this
.
cron
.
min
===
'*'
)
{
this
.
$emit
(
'update'
,
'min'
,
'0'
,
'year'
);
}
if
(
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'year'
);
}
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'year'
,
''
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'year'
,
'*'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'year'
,
this
.
cycle01
+
'-'
+
this
.
cycle02
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'year'
,
this
.
average01
+
'/'
+
this
.
average02
);
break
;
case
5
:
this
.
$emit
(
'update'
,
'year'
,
this
.
checkboxString
);
break
;
}
},
// 周期两个值变化时
cycleChange
()
{
if
(
this
.
radioValue
==
'3'
)
{
this
.
$emit
(
'update'
,
'year'
,
this
.
cycleTotal
);
}
},
// 平均两个值变化时
averageChange
()
{
if
(
this
.
radioValue
==
'4'
)
{
this
.
$emit
(
'update'
,
'year'
,
this
.
averageTotal
);
}
},
// checkbox值变化时
checkboxChange
()
{
if
(
this
.
radioValue
==
'5'
)
{
this
.
$emit
(
'update'
,
'year'
,
this
.
checkboxString
);
}
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
},
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
this
.
fullYear
,
this
.
fullYear
+
100
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
this
.
fullYear
+
1
,
this
.
fullYear
+
101
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
this
.
fullYear
,
this
.
fullYear
+
100
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
10
)
return
this
.
average01
+
'/'
+
this
.
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
return
str
;
}
},
mounted
:
function
()
{
// 仅获取当前年份
this
.
fullYear
=
Number
(
new
Date
().
getFullYear
());
}
}
</
script
>
\ No newline at end of file
ruoyi-ui/src/views/monitor/job/index.vue
浏览文件 @
6361e4ef
...
@@ -156,7 +156,7 @@
...
@@ -156,7 +156,7 @@
/>
/>
<!-- 添加或修改定时任务对话框 -->
<!-- 添加或修改定时任务对话框 -->
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"
7
00px"
append-to-body
>
<el-dialog
:title=
"title"
:visible
.
sync=
"open"
width=
"
8
00px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-form
ref=
"form"
:model=
"form"
:rules=
"rules"
label-width=
"120px"
>
<el-row>
<el-row>
<el-col
:span=
"12"
>
<el-col
:span=
"12"
>
...
@@ -192,17 +192,16 @@
...
@@ -192,17 +192,16 @@
<el-input
v-model=
"form.invokeTarget"
placeholder=
"请输入调用目标字符串"
/>
<el-input
v-model=
"form.invokeTarget"
placeholder=
"请输入调用目标字符串"
/>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"
12
"
>
<el-col
:span=
"
24
"
>
<el-form-item
label=
"cron表达式"
prop=
"cronExpression"
>
<el-form-item
label=
"cron表达式"
prop=
"cronExpression"
>
<el-input
v-model=
"form.cronExpression"
placeholder=
"请输入cron执行表达式"
/>
<el-input
v-model=
"form.cronExpression"
placeholder=
"请输入cron执行表达式"
>
</el-form-item>
<
template
slot=
"append"
>
</el-col>
<el-button
type=
"primary"
@
click=
"handleShowCron"
>
<el-col
:span=
"12"
>
生成表达式
<el-form-item
label=
"是否并发"
prop=
"concurrent"
>
<i
class=
"el-icon-time el-icon--right"
></i>
<el-radio-group
v-model=
"form.concurrent"
size=
"small"
>
</el-button>
<el-radio-button
label=
"0"
>
允许
</el-radio-button>
</
template
>
<el-radio-button
label=
"1"
>
禁止
</el-radio-button>
</el-input>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"24"
>
...
@@ -214,7 +213,15 @@
...
@@ -214,7 +213,15 @@
</el-radio-group>
</el-radio-group>
</el-form-item>
</el-form-item>
</el-col>
</el-col>
<el-col
:span=
"24"
>
<el-col
:span=
"12"
>
<el-form-item
label=
"是否并发"
prop=
"concurrent"
>
<el-radio-group
v-model=
"form.concurrent"
size=
"small"
>
<el-radio-button
label=
"0"
>
允许
</el-radio-button>
<el-radio-button
label=
"1"
>
禁止
</el-radio-button>
</el-radio-group>
</el-form-item>
</el-col>
<el-col
:span=
"12"
>
<el-form-item
label=
"状态"
>
<el-form-item
label=
"状态"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio-group
v-model=
"form.status"
>
<el-radio
<el-radio
...
@@ -233,6 +240,10 @@
...
@@ -233,6 +240,10 @@
</div>
</div>
</el-dialog>
</el-dialog>
<el-dialog
title=
"Cron表达式生成器"
:visible
.
sync=
"openCron"
>
<crontab
@
hide=
"openCron=false"
@
fill=
"crontabFill"
:expression=
"expression"
></crontab>
</el-dialog>
<!-- 任务日志详细 -->
<!-- 任务日志详细 -->
<el-dialog
title=
"任务详细"
:visible
.
sync=
"openView"
width=
"700px"
append-to-body
>
<el-dialog
title=
"任务详细"
:visible
.
sync=
"openView"
width=
"700px"
append-to-body
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
size=
"mini"
>
<el-form
ref=
"form"
:model=
"form"
label-width=
"120px"
size=
"mini"
>
...
@@ -285,8 +296,10 @@
...
@@ -285,8 +296,10 @@
<
script
>
<
script
>
import
{
listJob
,
getJob
,
delJob
,
addJob
,
updateJob
,
exportJob
,
runJob
,
changeJobStatus
}
from
"@/api/monitor/job"
;
import
{
listJob
,
getJob
,
delJob
,
addJob
,
updateJob
,
exportJob
,
runJob
,
changeJobStatus
}
from
"@/api/monitor/job"
;
import
Crontab
from
'@/components/Crontab'
export
default
{
export
default
{
components
:
{
Crontab
},
name
:
"Job"
,
name
:
"Job"
,
data
()
{
data
()
{
return
{
return
{
...
@@ -312,6 +325,10 @@ export default {
...
@@ -312,6 +325,10 @@ export default {
open
:
false
,
open
:
false
,
// 是否显示详细弹出层
// 是否显示详细弹出层
openView
:
false
,
openView
:
false
,
// 是否显示Cron表达式弹出层
openCron
:
false
,
// 传入的表达式
expression
:
""
,
// 任务组名字典
// 任务组名字典
jobGroupOptions
:
[],
jobGroupOptions
:
[],
// 状态字典
// 状态字典
...
@@ -448,6 +465,15 @@ export default {
...
@@ -448,6 +465,15 @@ export default {
this
.
openView
=
true
;
this
.
openView
=
true
;
});
});
},
},
/** cron表达式按钮操作 */
handleShowCron
()
{
this
.
expression
=
this
.
form
.
cronExpression
;
this
.
openCron
=
true
;
},
/** 确定后回传值 */
crontabFill
(
value
)
{
this
.
form
.
cronExpression
=
value
;
},
/** 任务日志列表查询 */
/** 任务日志列表查询 */
handleJobLog
(
row
)
{
handleJobLog
(
row
)
{
const
jobId
=
row
.
jobId
||
0
;
const
jobId
=
row
.
jobId
||
0
;
...
...
编写
预览
Markdown
格式
0%
重试
或
添加新文件
添加附件
取消
您添加了
0
人
到此讨论。请谨慎行事。
请先完成此评论的编辑!
取消
请
注册
或者
登录
后发表评论