Skip to content
Projects
Groups
Snippets
Help
Loading...
Sign in
Toggle navigation
S
sts网站
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
liyang
sts网站
Commits
bf4ac3ad
Commit
bf4ac3ad
authored
Nov 30, 2021
by
若依
Committed by
Gitee
Nov 30, 2021
Browse files
Options
Browse Files
Download
Plain Diff
!378 fix: crontab组件bug
Merge pull request !378 from fuzui/fix_cron_tool
parents
89e7cb19
f28a9196
Hide whitespace changes
Inline
Side-by-side
Showing
9 changed files
with
181 additions
and
221 deletions
+181
-221
day.vue
ruoyi-ui/src/components/Crontab/day.vue
+24
-42
hour.vue
ruoyi-ui/src/components/Crontab/hour.vue
+16
-24
index.vue
ruoyi-ui/src/components/Crontab/index.vue
+6
-1
min.vue
ruoyi-ui/src/components/Crontab/min.vue
+13
-17
month.vue
ruoyi-ui/src/components/Crontab/month.vue
+16
-30
result.vue
ruoyi-ui/src/components/Crontab/result.vue
+7
-14
second.vue
ruoyi-ui/src/components/Crontab/second.vue
+13
-29
week.vue
ruoyi-ui/src/components/Crontab/week.vue
+71
-36
year.vue
ruoyi-ui/src/components/Crontab/year.vue
+15
-28
No files found.
ruoyi-ui/src/components/Crontab/day.vue
View file @
bf4ac3ad
...
...
@@ -2,7 +2,7 @@
<el-form
size=
"small"
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
日,允许的通配符[, - *
/ L M
]
日,允许的通配符[, - *
? / L W
]
</el-radio>
</el-form-item>
...
...
@@ -15,23 +15,23 @@
<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-input-number
v-model=
'cycle01'
:min=
"
1"
:max=
"30
"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"
cycle01 ? cycle01 + 1 : 2
"
: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=
"3
1"
/>
日执行一次
<el-input-number
v-model=
'average01'
:min=
"
1"
:max=
"30
"
/>
号开始,每
<el-input-number
v-model=
'average02'
:min=
"
1"
:max=
"31 - average01 ||
1"
/>
日执行一次
</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-input-number
v-model=
'workday'
:min=
"
1
"
:max=
"31"
/>
号最近的那个工作日
</el-radio>
</el-form-item>
...
...
@@ -72,31 +72,22 @@ export default {
// 单选按钮值变化时
radioChange
()
{
(
'day rachange'
);
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'day'
,
'*'
,
'day'
);
this
.
$emit
(
'update'
,
'week'
,
'?'
,
'day'
);
this
.
$emit
(
'update'
,
'month'
,
'*'
,
'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'
);
}
if
(
this
.
radioValue
!==
2
&&
this
.
cron
.
week
!==
'?'
)
{
this
.
$emit
(
'update'
,
'week'
,
'?'
,
'day'
)
}
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'day'
,
'*'
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'day'
,
'?'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'day'
,
this
.
cycle
01
+
'-'
+
this
.
cycle02
);
this
.
$emit
(
'update'
,
'day'
,
this
.
cycle
Total
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'day'
,
this
.
average
01
+
'/'
+
this
.
average02
);
this
.
$emit
(
'update'
,
'day'
,
this
.
average
Total
);
break
;
case
5
:
this
.
$emit
(
'update'
,
'day'
,
this
.
workday
+
'W'
);
...
...
@@ -125,7 +116,7 @@ export default {
// 最近工作日值变化时
workdayChange
()
{
if
(
this
.
radioValue
==
'5'
)
{
this
.
$emit
(
'update'
,
'day'
,
this
.
workday
+
'W'
);
this
.
$emit
(
'update'
,
'day'
,
this
.
workday
Check
+
'W'
);
}
},
// checkbox值变化时
...
...
@@ -133,19 +124,10 @@ export default {
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"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'workdayCheck'
:
'workdayChange'
,
...
...
@@ -154,20 +136,20 @@ export default {
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
31
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
31
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
const
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
30
)
const
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
cycle01
?
cycle01
+
1
:
2
,
3
1
,
31
)
return
cycle01
+
'-'
+
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
31
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
31
)
return
this
.
average01
+
'/'
+
this
.
average02
;
const
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
30
)
const
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
31
-
average01
||
0
)
return
average01
+
'/'
+
average02
;
},
// 计算工作日格式
workdayCheck
:
function
()
{
this
.
workday
=
this
.
checkNum
(
this
.
workday
,
1
,
31
)
return
this
.
workday
;
const
workday
=
this
.
checkNum
(
this
.
workday
,
1
,
31
)
return
workday
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
...
...
ruoyi-ui/src/components/Crontab/hour.vue
View file @
bf4ac3ad
...
...
@@ -9,16 +9,16 @@
<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-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"
22
"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"
cycle01 ? cycle01 + 1 : 1"
:max=
"23
"
/>
小时
</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=
"6
0"
/>
小时执行一次
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"
22
"
/>
小时开始,每
<el-input-number
v-model=
'average02'
:min=
"
1"
:max=
"23 - average01 ||
0"
/>
小时执行一次
</el-radio>
</el-form-item>
...
...
@@ -51,23 +51,15 @@ export default {
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
1
:
this
.
$emit
(
'update'
,
'hour'
,
'*'
)
break
;
case
2
:
this
.
$emit
(
'update'
,
'hour'
,
this
.
cycle
01
+
'-'
+
this
.
cycle02
);
this
.
$emit
(
'update'
,
'hour'
,
this
.
cycle
Total
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'hour'
,
this
.
average
01
+
'/'
+
this
.
average02
);
this
.
$emit
(
'update'
,
'hour'
,
this
.
average
Total
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'hour'
,
this
.
checkboxString
);
...
...
@@ -94,7 +86,7 @@ export default {
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
...
...
@@ -102,15 +94,15 @@ export default {
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
23
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
23
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
const
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
22
)
const
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
cycle01
?
cycle01
+
1
:
1
,
23
)
return
cycle01
+
'-'
+
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
23
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
23
)
return
this
.
average01
+
'/'
+
this
.
average02
;
const
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
22
)
const
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
23
-
average01
||
0
)
return
average01
+
'/'
+
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
...
...
ruoyi-ui/src/components/Crontab/index.vue
View file @
bf4ac3ad
...
...
@@ -2,7 +2,12 @@
<div>
<el-tabs
type=
"border-card"
>
<el-tab-pane
label=
"秒"
v-if=
"shouldHide('second')"
>
<CrontabSecond
@
update=
"updateCrontabValue"
:check=
"checkNumber"
ref=
"cronsecond"
/>
<CrontabSecond
@
update=
"updateCrontabValue"
:check=
"checkNumber"
:cron=
"crontabValueObj"
ref=
"cronsecond"
/>
</el-tab-pane>
<el-tab-pane
label=
"分钟"
v-if=
"shouldHide('min')"
>
...
...
ruoyi-ui/src/components/Crontab/min.vue
View file @
bf4ac3ad
...
...
@@ -9,16 +9,16 @@
<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-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"
58
"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"
cycle01 ? cycle01 + 1 : 1"
:max=
"59
"
/>
分钟
</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=
"6
0"
/>
分钟执行一次
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"
58
"
/>
分钟开始,每
<el-input-number
v-model=
'average02'
:min=
"
1"
:max=
"59 - average01 ||
0"
/>
分钟执行一次
</el-radio>
</el-form-item>
...
...
@@ -52,19 +52,15 @@ export default {
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
.
cycle
01
+
'-'
+
this
.
cycle02
,
'min'
);
this
.
$emit
(
'update'
,
'min'
,
this
.
cycle
Total
,
'min'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'min'
,
this
.
average
01
+
'/'
+
this
.
average02
,
'min'
);
this
.
$emit
(
'update'
,
'min'
,
this
.
average
Total
,
'min'
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'min'
,
this
.
checkboxString
,
'min'
);
...
...
@@ -92,7 +88,7 @@ export default {
},
watch
:
{
"radioValue"
:
"radioChange"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
,
...
...
@@ -100,15 +96,15 @@ export default {
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
59
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
59
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
const
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
58
)
const
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
cycle01
?
cycle01
+
1
:
1
,
59
)
return
cycle01
+
'-'
+
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
59
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
)
return
this
.
average01
+
'/'
+
this
.
average02
;
const
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
58
)
const
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
-
average01
||
0
)
return
average01
+
'/'
+
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
...
...
ruoyi-ui/src/components/Crontab/month.vue
View file @
bf4ac3ad
...
...
@@ -9,16 +9,16 @@
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"1
2
"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"
1
"
:max=
"12"
/>
月
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"1
1
"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"
cycle01 ? cycle01 + 1 : 2
"
: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=
"1
2
"
/>
月开始,每
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"12"
/>
月月执行一次
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"1
1
"
/>
月开始,每
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"12
- average01 || 0
"
/>
月月执行一次
</el-radio>
</el-form-item>
...
...
@@ -51,29 +51,15 @@ export default {
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'month'
,
'*'
);
this
.
$emit
(
'update'
,
'year'
,
'*'
);
}
else
{
if
(
this
.
cron
.
day
===
'*'
)
{
this
.
$emit
(
'update'
,
'day'
,
'0'
,
'month'
);
}
if
(
this
.
cron
.
hour
===
'*'
)
{
this
.
$emit
(
'update'
,
'hour'
,
'0'
,
'month'
);
}
if
(
this
.
cron
.
min
===
'*'
)
{
this
.
$emit
(
'update'
,
'min'
,
'0'
,
'month'
);
}
if
(
this
.
cron
.
second
===
'*'
)
{
this
.
$emit
(
'update'
,
'second'
,
'0'
,
'month'
);
}
}
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'month'
,
'*'
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'month'
,
this
.
cycle
01
+
'-'
+
this
.
cycle02
);
this
.
$emit
(
'update'
,
'month'
,
this
.
cycle
Total
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'month'
,
this
.
average
01
+
'/'
+
this
.
average02
);
this
.
$emit
(
'update'
,
'month'
,
this
.
average
Total
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'month'
,
this
.
checkboxString
);
...
...
@@ -100,7 +86,7 @@ export default {
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
...
...
@@ -108,15 +94,15 @@ export default {
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
12
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
12
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
const
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
11
)
const
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
cycle01
?
cycle01
+
1
:
2
,
12
)
return
cycle01
+
'-'
+
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
12
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
12
)
return
this
.
average01
+
'/'
+
this
.
average02
;
const
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
11
)
const
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
12
-
average01
||
0
)
return
average01
+
'/'
+
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
...
...
ruoyi-ui/src/components/Crontab/result.vue
View file @
bf4ac3ad
...
...
@@ -179,7 +179,7 @@ export default {
// 获取达到条件的日期是星期X
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'-'
+
MM
+
'-'
+
thisDD
+
' 00:00:00'
),
'week'
);
// 当星期日时
if
(
thisWeek
==
0
)
{
if
(
thisWeek
==
1
)
{
// 先找下一个日,并判断是否为月底
DD
++
;
thisDD
=
DD
<
10
?
'0'
+
DD
:
DD
;
...
...
@@ -187,7 +187,7 @@ export default {
if
(
this
.
checkDate
(
YY
+
'-'
+
MM
+
'-'
+
thisDD
+
' 00:00:00'
)
!==
true
)
{
DD
-=
3
;
}
}
else
if
(
thisWeek
==
6
)
{
}
else
if
(
thisWeek
==
7
)
{
// 当星期6时只需判断不是1号就可进行操作
if
(
this
.
dayRuleSup
!==
1
)
{
DD
--
;
...
...
@@ -200,7 +200,7 @@ export default {
// 获取当前日期是属于星期几
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'-'
+
MM
+
'-'
+
DD
+
' 00:00:00'
),
'week'
);
// 校验当前星期是否在星期池(dayRuleSup)中
if
(
Array
.
indexOf
(
this
.
dayRuleSup
,
thisWeek
)
<
0
)
{
if
(
this
.
dayRuleSup
.
indexOf
(
thisWeek
)
<
0
)
{
// 如果到达最大值时
if
(
Di
==
DDate
.
length
-
1
)
{
resetDay
();
...
...
@@ -385,7 +385,7 @@ export default {
}
else
if
(
rule
.
indexOf
(
'#'
)
>=
0
)
{
this
.
dayRule
=
'assWeek'
;
let
matchRule
=
rule
.
match
(
/
[
0-9
]{1}
/g
);
this
.
dayRuleSup
=
[
Number
(
matchRule
[
0
]),
Number
(
matchRule
[
1
])];
this
.
dayRuleSup
=
[
Number
(
matchRule
[
1
]),
Number
(
matchRule
[
0
])];
this
.
dateArr
[
3
]
=
[
1
];
if
(
this
.
dayRuleSup
[
1
]
==
7
)
{
this
.
dayRuleSup
[
1
]
=
0
;
...
...
@@ -401,14 +401,6 @@ export default {
this
.
dayRule
=
'weekDay'
;
this
.
dayRuleSup
=
this
.
getAssignArr
(
rule
)
}
// 如果weekDay时将7调整为0【week值0即是星期日】
if
(
this
.
dayRule
==
'weekDay'
)
{
for
(
let
i
=
0
;
i
<
this
.
dayRuleSup
.
length
;
i
++
)
{
if
(
this
.
dayRuleSup
[
i
]
==
7
)
{
this
.
dayRuleSup
[
i
]
=
0
;
}
}
}
}
},
// 获取"日"数组-少量为日期规则
...
...
@@ -543,14 +535,15 @@ export default {
if
(
type
==
undefined
)
{
return
Y
+
'-'
+
(
M
<
10
?
'0'
+
M
:
M
)
+
'-'
+
(
D
<
10
?
'0'
+
D
:
D
)
+
' '
+
(
h
<
10
?
'0'
+
h
:
h
)
+
':'
+
(
m
<
10
?
'0'
+
m
:
m
)
+
':'
+
(
s
<
10
?
'0'
+
s
:
s
);
}
else
if
(
type
==
'week'
)
{
return
week
;
// 在quartz中 1为星期日
return
week
+
1
;
}
},
// 检查日期是否存在
checkDate
(
value
)
{
let
time
=
new
Date
(
value
);
let
format
=
this
.
formatDate
(
time
)
return
value
==
format
?
true
:
false
;
return
value
==
=
format
;
}
},
watch
:
{
...
...
ruoyi-ui/src/components/Crontab/second.vue
View file @
bf4ac3ad
...
...
@@ -9,16 +9,16 @@
<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-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"
58
"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"
cycle01 ? cycle01 + 1 : 1"
:max=
"59
"
/>
秒
</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=
"6
0"
/>
秒执行一次
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"
58
"
/>
秒开始,每
<el-input-number
v-model=
'average02'
:min=
"
1"
:max=
"59 - average01 ||
0"
/>
秒执行一次
</el-radio>
</el-form-item>
...
...
@@ -54,13 +54,12 @@ export default {
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'second'
,
'*'
,
'second'
);
this
.
$emit
(
'update'
,
'min'
,
'*'
,
'second'
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'second'
,
this
.
cycle
01
+
'-'
+
this
.
cycle02
);
this
.
$emit
(
'update'
,
'second'
,
this
.
cycle
Total
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'second'
,
this
.
average
01
+
'/'
+
this
.
average02
);
this
.
$emit
(
'update'
,
'second'
,
this
.
average
Total
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'second'
,
this
.
checkboxString
);
...
...
@@ -84,25 +83,10 @@ export default {
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"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
,
...
...
@@ -113,15 +97,15 @@ export default {
computed
:
{
// 计算两个周期值
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
59
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
59
)
return
this
.
cycle01
+
'-'
+
this
.
cycle02
;
const
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
58
)
const
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
cycle01
?
cycle01
+
1
:
1
,
59
)
return
cycle01
+
'-'
+
cycle02
;
},
// 计算平均用到的值
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
59
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
)
return
this
.
average01
+
'/'
+
this
.
average02
;
const
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
58
)
const
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
-
average01
||
0
)
return
average01
+
'/'
+
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
...
...
ruoyi-ui/src/components/Crontab/week.vue
View file @
bf4ac3ad
...
...
@@ -2,7 +2,7 @@
<el-form
size=
'small'
>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
周,允许的通配符[, - * / L #]
周,允许的通配符[, - *
?
/ L #]
</el-radio>
</el-form-item>
...
...
@@ -15,8 +15,25 @@
<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-select
clearable
v-model=
"cycle01"
>
<el-option
v-for=
"(item,index) of weekList"
:key=
"index"
:label=
"item.value"
:value=
"item.key"
:disabled=
"item.key === 1"
>
{{
item
.
value
}}
</el-option>
</el-select>
-
<el-select
clearable
v-model=
"cycle02"
>
<el-option
v-for=
"(item,index) of weekList"
:key=
"index"
:label=
"item.value"
:value=
"item.key"
:disabled=
"item.key
<
cycle01
&&
item
.
key
!==
1
"
>
{{
item
.
value
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
...
...
@@ -24,14 +41,18 @@
<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-select
clearable
v-model=
"average02"
>
<el-option
v-for=
"(item,index) of weekList"
:key=
"index"
:label=
"item.value"
:value=
"item.key"
>
{{
item
.
value
}}
</el-option>
</el-select>
</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-select
clearable
v-model=
"weekday"
>
<el-option
v-for=
"(item,index) of weekList"
:key=
"index"
:label=
"item.value"
:value=
"item.key"
>
{{
item
.
value
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
...
...
@@ -39,7 +60,7 @@
<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-option
v-for=
"(item,index) of weekList"
:key=
"index"
:
label=
"item.value"
:value=
"item.key"
>
{{
item
.
value
}}
</el-option>
</el-select>
</el-radio>
</el-form-item>
...
...
@@ -52,13 +73,42 @@ export default {
data
()
{
return
{
radioValue
:
2
,
weekday
:
1
,
cycle01
:
1
,
cycle02
:
2
,
weekday
:
2
,
cycle01
:
2
,
cycle02
:
3
,
average01
:
1
,
average02
:
1
,
average02
:
2
,
checkboxList
:
[],
weekList
:
[
'周一'
,
'周二'
,
'周三'
,
'周四'
,
'周五'
,
'周六'
,
'周日'
],
weekList
:
[
{
key
:
2
,
value
:
'星期一'
},
{
key
:
3
,
value
:
'星期二'
},
{
key
:
4
,
value
:
'星期三'
},
{
key
:
5
,
value
:
'星期四'
},
{
key
:
6
,
value
:
'星期五'
},
{
key
:
7
,
value
:
'星期六'
},
{
key
:
1
,
value
:
'星期日'
}
],
checkNum
:
this
.
$options
.
propsData
.
check
}
},
...
...
@@ -67,45 +117,30 @@ export default {
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'update'
,
'week'
,
'*'
);
this
.
$emit
(
'update'
,
'year'
,
'*'
);
}
else
{
if
(
this
.
cron
.
month
===
'*'
)
{
this
.
$emit
(
'update'
,
'month'
,
'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'
);
}
if
(
this
.
radioValue
!==
2
&&
this
.
cron
.
day
!==
'?'
)
{
this
.
$emit
(
'update'
,
'day'
,
'?'
,
'week'
);
}
switch
(
this
.
radioValue
)
{
case
1
:
this
.
$emit
(
'update'
,
'week'
,
'*'
);
break
;
case
2
:
this
.
$emit
(
'update'
,
'week'
,
'?'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'week'
,
this
.
cycle
01
+
'-'
+
this
.
cycle02
);
this
.
$emit
(
'update'
,
'week'
,
this
.
cycle
Total
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'week'
,
this
.
average
01
+
'#'
+
this
.
average02
);
this
.
$emit
(
'update'
,
'week'
,
this
.
average
Total
);
break
;
case
5
:
this
.
$emit
(
'update'
,
'week'
,
this
.
weekday
+
'L'
);
this
.
$emit
(
'update'
,
'week'
,
this
.
weekday
Check
+
'L'
);
break
;
case
6
:
this
.
$emit
(
'update'
,
'week'
,
this
.
checkboxString
);
break
;
}
},
// 根据互斥事件,更改radio的值
// 周期两个值变化时
cycleChange
()
{
...
...
@@ -133,7 +168,7 @@ export default {
},
},
watch
:
{
"radioValue"
:
"radioChange"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'weekdayCheck'
:
'weekdayChange'
,
...
...
@@ -150,7 +185,7 @@ export default {
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
4
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
7
)
return
this
.
average0
1
+
'#'
+
this
.
average02
;
return
this
.
average0
2
+
'#'
+
this
.
average01
;
},
// 最近的工作日(格式)
weekdayCheck
:
function
()
{
...
...
ruoyi-ui/src/components/Crontab/year.vue
View file @
bf4ac3ad
...
...
@@ -15,16 +15,16 @@
<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-input-number
v-model=
'cycle01'
:min=
'fullYear'
:max=
"2098"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"cycle01 ? cycle01 + 1 : fullYear + 1"
:max=
"2099"
/>
</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-input-number
v-model=
'average01'
:min=
'fullYear'
:max=
"2098"
/>
年开始,每
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"2099 - average01 || fullYear"
/>
年执行一次
</el-radio>
</el-form-item>
...
...
@@ -59,21 +59,6 @@ export default {
methods
:
{
// 单选按钮值变化时
radioChange
()
{
if
(
this
.
cron
.
month
===
'*'
)
{
this
.
$emit
(
'update'
,
'month'
,
'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'
,
''
);
...
...
@@ -82,10 +67,10 @@ export default {
this
.
$emit
(
'update'
,
'year'
,
'*'
);
break
;
case
3
:
this
.
$emit
(
'update'
,
'year'
,
this
.
cycle
01
+
'-'
+
this
.
cycle02
);
this
.
$emit
(
'update'
,
'year'
,
this
.
cycle
Total
);
break
;
case
4
:
this
.
$emit
(
'update'
,
'year'
,
this
.
average
01
+
'/'
+
this
.
average02
);
this
.
$emit
(
'update'
,
'year'
,
this
.
average
Total
);
break
;
case
5
:
this
.
$emit
(
'update'
,
'year'
,
this
.
checkboxString
);
...
...
@@ -112,7 +97,7 @@ export default {
}
},
watch
:
{
"radioValue"
:
"radioChange"
,
'radioValue'
:
'radioChange'
,
'cycleTotal'
:
'cycleChange'
,
'averageTotal'
:
'averageChange'
,
'checkboxString'
:
'checkboxChange'
...
...
@@ -120,15 +105,15 @@ export default {
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
;
const
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
this
.
fullYear
,
2098
)
const
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
cycle01
?
cycle01
+
1
:
this
.
fullYear
+
1
,
2099
)
return
cycle01
+
'-'
+
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
;
const
average01
=
this
.
checkNum
(
this
.
average01
,
this
.
fullYear
,
2098
)
const
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
2099
-
average01
||
this
.
fullYear
)
return
average01
+
'/'
+
average02
;
},
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
...
...
@@ -139,6 +124,8 @@ export default {
mounted
:
function
()
{
// 仅获取当前年份
this
.
fullYear
=
Number
(
new
Date
().
getFullYear
());
this
.
cycle01
=
this
.
fullYear
this
.
average01
=
this
.
fullYear
}
}
</
script
>
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment