Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
F
finance-manage
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
finance-oa
finance-manage
Commits
4988b585
Commit
4988b585
authored
Sep 07, 2021
by
若依
Committed by
Gitee
Sep 07, 2021
Browse files
Options
Browse Files
Download
Plain Diff
!309 修正单词拼写错误
Merge pull request !309 from 稚屿/master
parents
0e615072
b35f708c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
1742 additions
and
1742 deletions
+1742
-1742
ruoyi-ui/src/components/Crontab/day.vue
ruoyi-ui/src/components/Crontab/day.vue
+179
-179
ruoyi-ui/src/components/Crontab/index.vue
ruoyi-ui/src/components/Crontab/index.vue
+425
-425
ruoyi-ui/src/components/Crontab/month.vue
ruoyi-ui/src/components/Crontab/month.vue
+128
-128
ruoyi-ui/src/components/Crontab/result.vue
ruoyi-ui/src/components/Crontab/result.vue
+566
-566
ruoyi-ui/src/components/Crontab/second.vue
ruoyi-ui/src/components/Crontab/second.vue
+133
-133
ruoyi-ui/src/components/Crontab/week.vue
ruoyi-ui/src/components/Crontab/week.vue
+167
-167
ruoyi-ui/src/components/Crontab/year.vue
ruoyi-ui/src/components/Crontab/year.vue
+144
-144
No files found.
ruoyi-ui/src/components/Crontab/day.vue
View file @
4988b585
<
template
>
<
template
>
<el-form
size=
"small"
>
<el-form
size=
"small"
>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
日,允许的通配符[, - * / L M]
日,允许的通配符[, - * / L M]
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
不指定
不指定
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
周期从
周期从
<el-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"31"
/>
-
<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=
'cycle02'
:min=
"0"
:max=
"31"
/>
日
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
从
从
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"31"
/>
号开始,每
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"31"
/>
号开始,每
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"31"
/>
日执行一次
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"31"
/>
日执行一次
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"5"
>
<el-radio
v-model=
'radioValue'
:label=
"5"
>
每月
每月
<el-input-number
v-model=
'workday'
:min=
"0"
:max=
"31"
/>
号最近的那个工作日
<el-input-number
v-model=
'workday'
:min=
"0"
:max=
"31"
/>
号最近的那个工作日
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"6"
>
<el-radio
v-model=
'radioValue'
:label=
"6"
>
本月最后一天
本月最后一天
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"7"
>
<el-radio
v-model=
'radioValue'
:label=
"7"
>
指定
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<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-option
v-for=
"item in 31"
:key=
"item"
:value=
"item"
>
{{
item
}}
</el-option>
</el-select>
</el-select>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
radioValue
:
1
,
radioValue
:
1
,
workday
:
1
,
workday
:
1
,
cycle01
:
1
,
cycle01
:
1
,
cycle02
:
2
,
cycle02
:
2
,
average01
:
1
,
average01
:
1
,
average02
:
1
,
average02
:
1
,
checkboxList
:
[],
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
checkNum
:
this
.
$options
.
propsData
.
check
}
}
},
},
name
:
'
crontab-day
'
,
name
:
'
crontab-day
'
,
props
:
[
'
check
'
,
'
cron
'
],
props
:
[
'
check
'
,
'
cron
'
],
methods
:
{
methods
:
{
// 单选按钮值变化时
// 单选按钮值变化时
radioChange
()
{
radioChange
()
{
(
'
day rachange
'
);
(
'
day rachange
'
);
if
(
this
.
radioValue
===
1
)
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
'
*
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
'
*
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
week
'
,
'
?
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
week
'
,
'
?
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
mouth
'
,
'
*
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
month
'
,
'
*
'
,
'
day
'
);
}
else
{
}
else
{
if
(
this
.
cron
.
hour
===
'
*
'
)
{
if
(
this
.
cron
.
hour
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
day
'
);
}
}
if
(
this
.
cron
.
min
===
'
*
'
)
{
if
(
this
.
cron
.
min
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
day
'
);
}
}
if
(
this
.
cron
.
second
===
'
*
'
)
{
if
(
this
.
cron
.
second
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
day
'
);
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
day
'
);
}
}
}
}
switch
(
this
.
radioValue
)
{
switch
(
this
.
radioValue
)
{
case
2
:
case
2
:
this
.
$emit
(
'
update
'
,
'
day
'
,
'
?
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
'
?
'
);
break
;
break
;
case
3
:
case
3
:
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
break
;
break
;
case
4
:
case
4
:
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
break
;
break
;
case
5
:
case
5
:
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
workday
+
'
W
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
workday
+
'
W
'
);
break
;
break
;
case
6
:
case
6
:
this
.
$emit
(
'
update
'
,
'
day
'
,
'
L
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
'
L
'
);
break
;
break
;
case
7
:
case
7
:
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
checkboxString
);
break
;
break
;
}
}
(
'
day rachange end
'
);
(
'
day rachange end
'
);
},
},
// 周期两个值变化时
// 周期两个值变化时
cycleChange
()
{
cycleChange
()
{
if
(
this
.
radioValue
==
'
3
'
)
{
if
(
this
.
radioValue
==
'
3
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
cycleTotal
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
cycleTotal
);
}
}
},
},
// 平均两个值变化时
// 平均两个值变化时
averageChange
()
{
averageChange
()
{
if
(
this
.
radioValue
==
'
4
'
)
{
if
(
this
.
radioValue
==
'
4
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
averageTotal
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
averageTotal
);
}
}
},
},
// 最近工作日值变化时
// 最近工作日值变化时
workdayChange
()
{
workdayChange
()
{
if
(
this
.
radioValue
==
'
5
'
)
{
if
(
this
.
radioValue
==
'
5
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
workday
+
'
W
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
workday
+
'
W
'
);
}
}
},
},
// checkbox值变化时
// checkbox值变化时
checkboxChange
()
{
checkboxChange
()
{
if
(
this
.
radioValue
==
'
7
'
)
{
if
(
this
.
radioValue
==
'
7
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
day
'
,
this
.
checkboxString
);
}
}
},
},
// 父组件传递的week发生变化触发
// 父组件传递的week发生变化触发
weekChange
()
{
weekChange
()
{
//判断week值与day不能同时为“?”
//判断week值与day不能同时为“?”
if
(
this
.
cron
.
week
==
'
?
'
&&
this
.
radioValue
==
'
2
'
)
{
if
(
this
.
cron
.
week
==
'
?
'
&&
this
.
radioValue
==
'
2
'
)
{
this
.
radioValue
=
'
1
'
;
this
.
radioValue
=
'
1
'
;
}
else
if
(
this
.
cron
.
week
!==
'
?
'
&&
this
.
radioValue
!=
'
2
'
)
{
}
else
if
(
this
.
cron
.
week
!==
'
?
'
&&
this
.
radioValue
!=
'
2
'
)
{
this
.
radioValue
=
'
2
'
;
this
.
radioValue
=
'
2
'
;
}
}
},
},
},
},
watch
:
{
watch
:
{
"
radioValue
"
:
"
radioChange
"
,
"
radioValue
"
:
"
radioChange
"
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
workdayCheck
'
:
'
workdayChange
'
,
'
workdayCheck
'
:
'
workdayChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
,
},
},
computed
:
{
computed
:
{
// 计算两个周期值
// 计算两个周期值
cycleTotal
:
function
()
{
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
31
)
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
31
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
31
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
31
)
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
},
},
// 计算平均用到的值
// 计算平均用到的值
averageTotal
:
function
()
{
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
31
)
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
31
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
31
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
31
)
return
this
.
average01
+
'
/
'
+
this
.
average02
;
return
this
.
average01
+
'
/
'
+
this
.
average02
;
},
},
// 计算工作日格式
// 计算工作日格式
workdayCheck
:
function
()
{
workdayCheck
:
function
()
{
this
.
workday
=
this
.
checkNum
(
this
.
workday
,
1
,
31
)
this
.
workday
=
this
.
checkNum
(
this
.
workday
,
1
,
31
)
return
this
.
workday
;
return
this
.
workday
;
},
},
// 计算勾选的checkbox值合集
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'
*
'
:
str
;
return
str
==
''
?
'
*
'
:
str
;
}
}
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/index.vue
View file @
4988b585
<
template
>
<
template
>
<div>
<div>
<el-tabs
type=
"border-card"
>
<el-tabs
type=
"border-card"
>
<el-tab-pane
label=
"秒"
v-if=
"shouldHide('second')"
>
<el-tab-pane
label=
"秒"
v-if=
"shouldHide('second')"
>
<CrontabSecond
@
update=
"updateC
ontabValue"
:check=
"checkNumber"
ref=
"cronsecond"
/>
<CrontabSecond
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
ref=
"cronsecond"
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"分钟"
v-if=
"shouldHide('min')"
>
<el-tab-pane
label=
"分钟"
v-if=
"shouldHide('min')"
>
<CrontabMin
<CrontabMin
@
update=
"updateC
ontabValue"
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
:check=
"checkNumber"
:cron=
"c
ontabValueObj"
:cron=
"c
rontabValueObj"
ref=
"cronmin"
ref=
"cronmin"
/>
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"小时"
v-if=
"shouldHide('hour')"
>
<el-tab-pane
label=
"小时"
v-if=
"shouldHide('hour')"
>
<CrontabHour
<CrontabHour
@
update=
"updateC
ontabValue"
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
:check=
"checkNumber"
:cron=
"c
ontabValueObj"
:cron=
"c
rontabValueObj"
ref=
"cronhour"
ref=
"cronhour"
/>
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"日"
v-if=
"shouldHide('day')"
>
<el-tab-pane
label=
"日"
v-if=
"shouldHide('day')"
>
<CrontabDay
<CrontabDay
@
update=
"updateC
ontabValue"
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
:check=
"checkNumber"
:cron=
"c
ontabValueObj"
:cron=
"c
rontabValueObj"
ref=
"cronday"
ref=
"cronday"
/>
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"月"
v-if=
"shouldHide('mo
uth')"
>
<el-tab-pane
label=
"月"
v-if=
"shouldHide('mo
nth')"
>
<CrontabMo
uth
<CrontabMo
nth
@
update=
"updateC
ontabValue"
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
:check=
"checkNumber"
:cron=
"c
ontabValueObj"
:cron=
"c
rontabValueObj"
ref=
"cronmo
uth"
ref=
"cronmo
nth"
/>
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"周"
v-if=
"shouldHide('week')"
>
<el-tab-pane
label=
"周"
v-if=
"shouldHide('week')"
>
<CrontabWeek
<CrontabWeek
@
update=
"updateC
ontabValue"
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
:check=
"checkNumber"
:cron=
"c
ontabValueObj"
:cron=
"c
rontabValueObj"
ref=
"cronweek"
ref=
"cronweek"
/>
/>
</el-tab-pane>
</el-tab-pane>
<el-tab-pane
label=
"年"
v-if=
"shouldHide('year')"
>
<el-tab-pane
label=
"年"
v-if=
"shouldHide('year')"
>
<CrontabYear
<CrontabYear
@
update=
"updateC
ontabValue"
@
update=
"updateC
rontabValue"
:check=
"checkNumber"
:check=
"checkNumber"
:cron=
"c
ontabValueObj"
:cron=
"c
rontabValueObj"
ref=
"cronyear"
ref=
"cronyear"
/>
/>
</el-tab-pane>
</el-tab-pane>
</el-tabs>
</el-tabs>
<div
class=
"popup-main"
>
<div
class=
"popup-main"
>
<div
class=
"popup-result"
>
<div
class=
"popup-result"
>
<p
class=
"title"
>
时间表达式
</p>
<p
class=
"title"
>
时间表达式
</p>
<table>
<table>
<thead>
<thead>
<th
v-for=
"item of tabTitles"
width=
"40"
:key=
"item"
>
{{
item
}}
</th>
<th
v-for=
"item of tabTitles"
width=
"40"
:key=
"item"
>
{{
item
}}
</th>
<th>
Cron 表达式
</th>
<th>
Cron 表达式
</th>
</thead>
</thead>
<tbody>
<tbody>
<td>
<td>
<span>
{{
c
ontabValueObj
.
second
}}
</span>
<span>
{{
c
rontabValueObj
.
second
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueObj
.
min
}}
</span>
<span>
{{
c
rontabValueObj
.
min
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueObj
.
hour
}}
</span>
<span>
{{
c
rontabValueObj
.
hour
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueObj
.
day
}}
</span>
<span>
{{
c
rontabValueObj
.
day
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueObj
.
mouth
}}
</span>
<span>
{{
c
rontabValueObj
.
month
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueObj
.
week
}}
</span>
<span>
{{
c
rontabValueObj
.
week
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueObj
.
year
}}
</span>
<span>
{{
c
rontabValueObj
.
year
}}
</span>
</td>
</td>
<td>
<td>
<span>
{{
c
ontabValueString
}}
</span>
<span>
{{
c
rontabValueString
}}
</span>
</td>
</td>
</tbody>
</tbody>
</table>
</table>
</div>
</div>
<CrontabResult
:ex=
"c
ontabValueString"
></CrontabResult>
<CrontabResult
:ex=
"c
rontabValueString"
></CrontabResult>
<div
class=
"pop_btn"
>
<div
class=
"pop_btn"
>
<el-button
size=
"small"
type=
"primary"
@
click=
"submitFill"
>
确定
</el-button>
<el-button
size=
"small"
type=
"primary"
@
click=
"submitFill"
>
确定
</el-button>
<el-button
size=
"small"
type=
"warning"
@
click=
"clearCron"
>
重置
</el-button>
<el-button
size=
"small"
type=
"warning"
@
click=
"clearCron"
>
重置
</el-button>
<el-button
size=
"small"
@
click=
"hidePopup"
>
取消
</el-button>
<el-button
size=
"small"
@
click=
"hidePopup"
>
取消
</el-button>
</div>
</div>
</div>
</div>
</div>
</div>
</
template
>
</
template
>
<
script
>
<
script
>
import
CrontabSecond
from
"
./second.vue
"
;
import
CrontabSecond
from
"
./second.vue
"
;
import
CrontabMin
from
"
./min.vue
"
;
import
CrontabMin
from
"
./min.vue
"
;
import
CrontabHour
from
"
./hour.vue
"
;
import
CrontabHour
from
"
./hour.vue
"
;
import
CrontabDay
from
"
./day.vue
"
;
import
CrontabDay
from
"
./day.vue
"
;
import
CrontabMo
uth
from
"
./mouth.vue
"
;
import
CrontabMo
nth
from
"
./month.vue
"
;
import
CrontabWeek
from
"
./week.vue
"
;
import
CrontabWeek
from
"
./week.vue
"
;
import
CrontabYear
from
"
./year.vue
"
;
import
CrontabYear
from
"
./year.vue
"
;
import
CrontabResult
from
"
./result.vue
"
;
import
CrontabResult
from
"
./result.vue
"
;
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
tabTitles
:
[
"
秒
"
,
"
分钟
"
,
"
小时
"
,
"
日
"
,
"
月
"
,
"
周
"
,
"
年
"
],
tabTitles
:
[
"
秒
"
,
"
分钟
"
,
"
小时
"
,
"
日
"
,
"
月
"
,
"
周
"
,
"
年
"
],
tabActive
:
0
,
tabActive
:
0
,
myindex
:
0
,
myindex
:
0
,
c
ontabValueObj
:
{
c
rontabValueObj
:
{
second
:
"
*
"
,
second
:
"
*
"
,
min
:
"
*
"
,
min
:
"
*
"
,
hour
:
"
*
"
,
hour
:
"
*
"
,
day
:
"
*
"
,
day
:
"
*
"
,
mo
uth
:
"
*
"
,
mo
nth
:
"
*
"
,
week
:
"
?
"
,
week
:
"
?
"
,
year
:
""
,
year
:
""
,
},
},
};
};
},
},
name
:
"
vcrontab
"
,
name
:
"
vcrontab
"
,
props
:
[
"
expression
"
,
"
hideComponent
"
],
props
:
[
"
expression
"
,
"
hideComponent
"
],
methods
:
{
methods
:
{
shouldHide
(
key
)
{
shouldHide
(
key
)
{
if
(
this
.
hideComponent
&&
this
.
hideComponent
.
includes
(
key
))
return
false
;
if
(
this
.
hideComponent
&&
this
.
hideComponent
.
includes
(
key
))
return
false
;
return
true
;
return
true
;
},
},
resolveExp
()
{
resolveExp
()
{
//
反解析 表达式
//
反解析 表达式
if
(
this
.
expression
)
{
if
(
this
.
expression
)
{
let
arr
=
this
.
expression
.
split
(
"
"
);
let
arr
=
this
.
expression
.
split
(
"
"
);
if
(
arr
.
length
>=
6
)
{
if
(
arr
.
length
>=
6
)
{
//6 位以上是合法表达式
//6 位以上是合法表达式
let
obj
=
{
let
obj
=
{
second
:
arr
[
0
],
second
:
arr
[
0
],
min
:
arr
[
1
],
min
:
arr
[
1
],
hour
:
arr
[
2
],
hour
:
arr
[
2
],
day
:
arr
[
3
],
day
:
arr
[
3
],
mo
uth
:
arr
[
4
],
mo
nth
:
arr
[
4
],
week
:
arr
[
5
],
week
:
arr
[
5
],
year
:
arr
[
6
]
?
arr
[
6
]
:
""
,
year
:
arr
[
6
]
?
arr
[
6
]
:
""
,
};
};
this
.
c
ontabValueObj
=
{
this
.
c
rontabValueObj
=
{
...
obj
,
...
obj
,
};
};
for
(
let
i
in
obj
)
{
for
(
let
i
in
obj
)
{
if
(
obj
[
i
])
this
.
changeRadio
(
i
,
obj
[
i
]);
if
(
obj
[
i
])
this
.
changeRadio
(
i
,
obj
[
i
]);
}
}
}
}
}
else
{
}
else
{
//
没有传入的表达式 则还原
//
没有传入的表达式 则还原
this
.
clearCron
();
this
.
clearCron
();
}
}
},
},
// tab切换值
// tab切换值
tabCheck
(
index
)
{
tabCheck
(
index
)
{
this
.
tabActive
=
index
;
this
.
tabActive
=
index
;
},
},
// 由子组件触发,更改表达式组成的字段值
// 由子组件触发,更改表达式组成的字段值
updateC
ontabValue
(
name
,
value
,
from
)
{
updateC
rontabValue
(
name
,
value
,
from
)
{
"
updateC
ontabValue
"
,
name
,
value
,
from
;
"
updateC
rontabValue
"
,
name
,
value
,
from
;
this
.
c
ontabValueObj
[
name
]
=
value
;
this
.
c
rontabValueObj
[
name
]
=
value
;
if
(
from
&&
from
!==
name
)
{
if
(
from
&&
from
!==
name
)
{
console
.
log
(
`来自组件
${
from
}
改变了
${
name
}
${
value
}
`
);
console
.
log
(
`来自组件
${
from
}
改变了
${
name
}
${
value
}
`
);
this
.
changeRadio
(
name
,
value
);
this
.
changeRadio
(
name
,
value
);
}
}
},
},
//
赋值到组件
//
赋值到组件
changeRadio
(
name
,
value
)
{
changeRadio
(
name
,
value
)
{
let
arr
=
[
"
second
"
,
"
min
"
,
"
hour
"
,
"
mo
uth
"
],
let
arr
=
[
"
second
"
,
"
min
"
,
"
hour
"
,
"
mo
nth
"
],
refName
=
"
cron
"
+
name
,
refName
=
"
cron
"
+
name
,
insV
laue
;
insV
alue
;
if
(
!
this
.
$refs
[
refName
])
return
;
if
(
!
this
.
$refs
[
refName
])
return
;
if
(
arr
.
includes
(
name
))
{
if
(
arr
.
includes
(
name
))
{
if
(
value
===
"
*
"
)
{
if
(
value
===
"
*
"
)
{
insV
laue
=
1
;
insV
alue
=
1
;
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
-
"
);
let
indexArr
=
value
.
split
(
"
-
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
cycle01
=
0
)
?
(
this
.
$refs
[
refName
].
cycle01
=
0
)
:
(
this
.
$refs
[
refName
].
cycle01
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
cycle01
=
indexArr
[
0
]);
this
.
$refs
[
refName
].
cycle02
=
indexArr
[
1
];
this
.
$refs
[
refName
].
cycle02
=
indexArr
[
1
];
insV
laue
=
2
;
insV
alue
=
2
;
}
else
if
(
value
.
indexOf
(
"
/
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
/
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
/
"
);
let
indexArr
=
value
.
split
(
"
/
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
average01
=
0
)
?
(
this
.
$refs
[
refName
].
average01
=
0
)
:
(
this
.
$refs
[
refName
].
average01
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
average01
=
indexArr
[
0
]);
this
.
$refs
[
refName
].
average02
=
indexArr
[
1
];
this
.
$refs
[
refName
].
average02
=
indexArr
[
1
];
insV
laue
=
3
;
insV
alue
=
3
;
}
else
{
}
else
{
insV
laue
=
4
;
insV
alue
=
4
;
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
}
}
}
else
if
(
name
==
"
day
"
)
{
}
else
if
(
name
==
"
day
"
)
{
if
(
value
===
"
*
"
)
{
if
(
value
===
"
*
"
)
{
insV
laue
=
1
;
insV
alue
=
1
;
}
else
if
(
value
==
"
?
"
)
{
}
else
if
(
value
==
"
?
"
)
{
insV
laue
=
2
;
insV
alue
=
2
;
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
-
"
);
let
indexArr
=
value
.
split
(
"
-
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
cycle01
=
0
)
?
(
this
.
$refs
[
refName
].
cycle01
=
0
)
:
(
this
.
$refs
[
refName
].
cycle01
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
cycle01
=
indexArr
[
0
]);
this
.
$refs
[
refName
].
cycle02
=
indexArr
[
1
];
this
.
$refs
[
refName
].
cycle02
=
indexArr
[
1
];
insV
laue
=
3
;
insV
alue
=
3
;
}
else
if
(
value
.
indexOf
(
"
/
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
/
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
/
"
);
let
indexArr
=
value
.
split
(
"
/
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
average01
=
0
)
?
(
this
.
$refs
[
refName
].
average01
=
0
)
:
(
this
.
$refs
[
refName
].
average01
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
average01
=
indexArr
[
0
]);
this
.
$refs
[
refName
].
average02
=
indexArr
[
1
];
this
.
$refs
[
refName
].
average02
=
indexArr
[
1
];
insV
laue
=
4
;
insV
alue
=
4
;
}
else
if
(
value
.
indexOf
(
"
W
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
W
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
W
"
);
let
indexArr
=
value
.
split
(
"
W
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
workday
=
0
)
?
(
this
.
$refs
[
refName
].
workday
=
0
)
:
(
this
.
$refs
[
refName
].
workday
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
workday
=
indexArr
[
0
]);
insV
laue
=
5
;
insV
alue
=
5
;
}
else
if
(
value
===
"
L
"
)
{
}
else
if
(
value
===
"
L
"
)
{
insV
laue
=
6
;
insV
alue
=
6
;
}
else
{
}
else
{
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
insV
laue
=
7
;
insV
alue
=
7
;
}
}
}
else
if
(
name
==
"
week
"
)
{
}
else
if
(
name
==
"
week
"
)
{
if
(
value
===
"
*
"
)
{
if
(
value
===
"
*
"
)
{
insV
laue
=
1
;
insV
alue
=
1
;
}
else
if
(
value
==
"
?
"
)
{
}
else
if
(
value
==
"
?
"
)
{
insV
laue
=
2
;
insV
alue
=
2
;
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
-
"
);
let
indexArr
=
value
.
split
(
"
-
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
cycle01
=
0
)
?
(
this
.
$refs
[
refName
].
cycle01
=
0
)
:
(
this
.
$refs
[
refName
].
cycle01
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
cycle01
=
indexArr
[
0
]);
this
.
$refs
[
refName
].
cycle02
=
indexArr
[
1
];
this
.
$refs
[
refName
].
cycle02
=
indexArr
[
1
];
insV
laue
=
3
;
insV
alue
=
3
;
}
else
if
(
value
.
indexOf
(
"
#
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
#
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
#
"
);
let
indexArr
=
value
.
split
(
"
#
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
average01
=
1
)
?
(
this
.
$refs
[
refName
].
average01
=
1
)
:
(
this
.
$refs
[
refName
].
average01
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
average01
=
indexArr
[
0
]);
this
.
$refs
[
refName
].
average02
=
indexArr
[
1
];
this
.
$refs
[
refName
].
average02
=
indexArr
[
1
];
insV
laue
=
4
;
insV
alue
=
4
;
}
else
if
(
value
.
indexOf
(
"
L
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
L
"
)
>
-
1
)
{
let
indexArr
=
value
.
split
(
"
L
"
);
let
indexArr
=
value
.
split
(
"
L
"
);
isNaN
(
indexArr
[
0
])
isNaN
(
indexArr
[
0
])
?
(
this
.
$refs
[
refName
].
weekday
=
1
)
?
(
this
.
$refs
[
refName
].
weekday
=
1
)
:
(
this
.
$refs
[
refName
].
weekday
=
indexArr
[
0
]);
:
(
this
.
$refs
[
refName
].
weekday
=
indexArr
[
0
]);
insV
laue
=
5
;
insV
alue
=
5
;
}
else
{
}
else
{
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
insV
laue
=
7
;
insV
alue
=
7
;
}
}
}
else
if
(
name
==
"
year
"
)
{
}
else
if
(
name
==
"
year
"
)
{
if
(
value
==
""
)
{
if
(
value
==
""
)
{
insV
laue
=
1
;
insV
alue
=
1
;
}
else
if
(
value
==
"
*
"
)
{
}
else
if
(
value
==
"
*
"
)
{
insV
laue
=
2
;
insV
alue
=
2
;
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
-
"
)
>
-
1
)
{
insV
laue
=
3
;
insV
alue
=
3
;
}
else
if
(
value
.
indexOf
(
"
/
"
)
>
-
1
)
{
}
else
if
(
value
.
indexOf
(
"
/
"
)
>
-
1
)
{
insV
laue
=
4
;
insV
alue
=
4
;
}
else
{
}
else
{
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
this
.
$refs
[
refName
].
checkboxList
=
value
.
split
(
"
,
"
);
insV
laue
=
5
;
insV
alue
=
5
;
}
}
}
}
this
.
$refs
[
refName
].
radioValue
=
insV
laue
;
this
.
$refs
[
refName
].
radioValue
=
insV
alue
;
},
},
// 表单选项的子组件校验数字格式(通过-props传递)
// 表单选项的子组件校验数字格式(通过-props传递)
checkNumber
(
value
,
minLimit
,
maxLimit
)
{
checkNumber
(
value
,
minLimit
,
maxLimit
)
{
//
检查必须为整数
//
检查必须为整数
value
=
Math
.
floor
(
value
);
value
=
Math
.
floor
(
value
);
if
(
value
<
minLimit
)
{
if
(
value
<
minLimit
)
{
value
=
minLimit
;
value
=
minLimit
;
}
else
if
(
value
>
maxLimit
)
{
}
else
if
(
value
>
maxLimit
)
{
value
=
maxLimit
;
value
=
maxLimit
;
}
}
return
value
;
return
value
;
},
},
// 隐藏弹窗
// 隐藏弹窗
hidePopup
()
{
hidePopup
()
{
this
.
$emit
(
"
hide
"
);
this
.
$emit
(
"
hide
"
);
},
},
// 填充表达式
// 填充表达式
submitFill
()
{
submitFill
()
{
this
.
$emit
(
"
fill
"
,
this
.
c
ontabValueString
);
this
.
$emit
(
"
fill
"
,
this
.
c
rontabValueString
);
this
.
hidePopup
();
this
.
hidePopup
();
},
},
clearCron
()
{
clearCron
()
{
// 还原选择项
// 还原选择项
(
"
准备还原
"
);
(
"
准备还原
"
);
this
.
c
ontabValueObj
=
{
this
.
c
rontabValueObj
=
{
second
:
"
*
"
,
second
:
"
*
"
,
min
:
"
*
"
,
min
:
"
*
"
,
hour
:
"
*
"
,
hour
:
"
*
"
,
day
:
"
*
"
,
day
:
"
*
"
,
mo
uth
:
"
*
"
,
mo
nth
:
"
*
"
,
week
:
"
?
"
,
week
:
"
?
"
,
year
:
""
,
year
:
""
,
};
};
for
(
let
j
in
this
.
c
ontabValueObj
)
{
for
(
let
j
in
this
.
c
rontabValueObj
)
{
this
.
changeRadio
(
j
,
this
.
c
ontabValueObj
[
j
]);
this
.
changeRadio
(
j
,
this
.
c
rontabValueObj
[
j
]);
}
}
},
},
},
},
computed
:
{
computed
:
{
c
ontabValueString
:
function
()
{
c
rontabValueString
:
function
()
{
let
obj
=
this
.
c
ontabValueObj
;
let
obj
=
this
.
c
rontabValueObj
;
let
str
=
let
str
=
obj
.
second
+
obj
.
second
+
"
"
+
"
"
+
obj
.
min
+
obj
.
min
+
"
"
+
"
"
+
obj
.
hour
+
obj
.
hour
+
"
"
+
"
"
+
obj
.
day
+
obj
.
day
+
"
"
+
"
"
+
obj
.
mo
uth
+
obj
.
mo
nth
+
"
"
+
"
"
+
obj
.
week
+
obj
.
week
+
(
obj
.
year
==
""
?
""
:
"
"
+
obj
.
year
);
(
obj
.
year
==
""
?
""
:
"
"
+
obj
.
year
);
return
str
;
return
str
;
},
},
},
},
components
:
{
components
:
{
CrontabSecond
,
CrontabSecond
,
CrontabMin
,
CrontabMin
,
CrontabHour
,
CrontabHour
,
CrontabDay
,
CrontabDay
,
CrontabMo
uth
,
CrontabMo
nth
,
CrontabWeek
,
CrontabWeek
,
CrontabYear
,
CrontabYear
,
CrontabResult
,
CrontabResult
,
},
},
watch
:
{
watch
:
{
expression
:
"
resolveExp
"
,
expression
:
"
resolveExp
"
,
hideComponent
(
value
)
{
hideComponent
(
value
)
{
// 隐藏部分组件
// 隐藏部分组件
},
},
},
},
mounted
:
function
()
{
mounted
:
function
()
{
this
.
resolveExp
();
this
.
resolveExp
();
},
},
};
};
</
script
>
</
script
>
<
style
scoped
>
<
style
scoped
>
.pop_btn
{
.pop_btn
{
text-align
:
center
;
text-align
:
center
;
margin-top
:
20px
;
margin-top
:
20px
;
}
}
.popup-main
{
.popup-main
{
position
:
relative
;
position
:
relative
;
margin
:
10px
auto
;
margin
:
10px
auto
;
background
:
#fff
;
background
:
#fff
;
border-radius
:
5px
;
border-radius
:
5px
;
font-size
:
12px
;
font-size
:
12px
;
overflow
:
hidden
;
overflow
:
hidden
;
}
}
.popup-title
{
.popup-title
{
overflow
:
hidden
;
overflow
:
hidden
;
line-height
:
34px
;
line-height
:
34px
;
padding-top
:
6px
;
padding-top
:
6px
;
background
:
#f2f2f2
;
background
:
#f2f2f2
;
}
}
.popup-result
{
.popup-result
{
box-sizing
:
border-box
;
box-sizing
:
border-box
;
line-height
:
24px
;
line-height
:
24px
;
margin
:
25px
auto
;
margin
:
25px
auto
;
padding
:
15px
10px
10px
;
padding
:
15px
10px
10px
;
border
:
1px
solid
#ccc
;
border
:
1px
solid
#ccc
;
position
:
relative
;
position
:
relative
;
}
}
.popup-result
.title
{
.popup-result
.title
{
position
:
absolute
;
position
:
absolute
;
top
:
-28px
;
top
:
-28px
;
left
:
50%
;
left
:
50%
;
width
:
140px
;
width
:
140px
;
font-size
:
14px
;
font-size
:
14px
;
margin-left
:
-70px
;
margin-left
:
-70px
;
text-align
:
center
;
text-align
:
center
;
line-height
:
30px
;
line-height
:
30px
;
background
:
#fff
;
background
:
#fff
;
}
}
.popup-result
table
{
.popup-result
table
{
text-align
:
center
;
text-align
:
center
;
width
:
100%
;
width
:
100%
;
margin
:
0
auto
;
margin
:
0
auto
;
}
}
.popup-result
table
span
{
.popup-result
table
span
{
display
:
block
;
display
:
block
;
width
:
100%
;
width
:
100%
;
font-family
:
arial
;
font-family
:
arial
;
line-height
:
30px
;
line-height
:
30px
;
height
:
30px
;
height
:
30px
;
white-space
:
nowrap
;
white-space
:
nowrap
;
overflow
:
hidden
;
overflow
:
hidden
;
border
:
1px
solid
#e8e8e8
;
border
:
1px
solid
#e8e8e8
;
}
}
.popup-result-scroll
{
.popup-result-scroll
{
font-size
:
12px
;
font-size
:
12px
;
line-height
:
24px
;
line-height
:
24px
;
height
:
10em
;
height
:
10em
;
overflow-y
:
auto
;
overflow-y
:
auto
;
}
}
</
style
>
</
style
>
ruoyi-ui/src/components/Crontab/mo
u
th.vue
→
ruoyi-ui/src/components/Crontab/mo
n
th.vue
View file @
4988b585
<
template
>
<
template
>
<el-form
size=
'small'
>
<el-form
size=
'small'
>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
月,允许的通配符[, - * /]
月,允许的通配符[, - * /]
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
周期从
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"12"
/>
-
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"12"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"1"
:max=
"12"
/>
月
<el-input-number
v-model=
'cycle02'
:min=
"1"
:max=
"12"
/>
月
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
从
从
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"12"
/>
月开始,每
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"12"
/>
月开始,每
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"12"
/>
月月执行一次
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"12"
/>
月月执行一次
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
指定
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<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-option
v-for=
"item in 12"
:key=
"item"
:value=
"item"
>
{{
item
}}
</el-option>
</el-select>
</el-select>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
radioValue
:
1
,
radioValue
:
1
,
cycle01
:
1
,
cycle01
:
1
,
cycle02
:
2
,
cycle02
:
2
,
average01
:
1
,
average01
:
1
,
average02
:
1
,
average02
:
1
,
checkboxList
:
[],
checkboxList
:
[],
checkNum
:
this
.
check
checkNum
:
this
.
check
}
}
},
},
name
:
'
crontab-mouth
'
,
name
:
'
crontab-month
'
,
props
:
[
'
check
'
,
'
cron
'
],
props
:
[
'
check
'
,
'
cron
'
],
methods
:
{
methods
:
{
// 单选按钮值变化时
// 单选按钮值变化时
radioChange
()
{
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'
update
'
,
'
mouth
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
month
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
year
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
year
'
,
'
*
'
);
}
else
{
}
else
{
if
(
this
.
cron
.
day
===
'
*
'
)
{
if
(
this
.
cron
.
day
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
'
0
'
,
'
mouth
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
'
0
'
,
'
month
'
);
}
}
if
(
this
.
cron
.
hour
===
'
*
'
)
{
if
(
this
.
cron
.
hour
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
mouth
'
);
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
month
'
);
}
}
if
(
this
.
cron
.
min
===
'
*
'
)
{
if
(
this
.
cron
.
min
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
mouth
'
);
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
month
'
);
}
}
if
(
this
.
cron
.
second
===
'
*
'
)
{
if
(
this
.
cron
.
second
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
mouth
'
);
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
month
'
);
}
}
}
}
switch
(
this
.
radioValue
)
{
switch
(
this
.
radioValue
)
{
case
2
:
case
2
:
this
.
$emit
(
'
update
'
,
'
mouth
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
this
.
$emit
(
'
update
'
,
'
month
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
break
;
break
;
case
3
:
case
3
:
this
.
$emit
(
'
update
'
,
'
mouth
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
this
.
$emit
(
'
update
'
,
'
month
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
break
;
break
;
case
4
:
case
4
:
this
.
$emit
(
'
update
'
,
'
mouth
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
month
'
,
this
.
checkboxString
);
break
;
break
;
}
}
},
},
// 周期两个值变化时
// 周期两个值变化时
cycleChange
()
{
cycleChange
()
{
if
(
this
.
radioValue
==
'
2
'
)
{
if
(
this
.
radioValue
==
'
2
'
)
{
this
.
$emit
(
'
update
'
,
'
mouth
'
,
this
.
cycleTotal
);
this
.
$emit
(
'
update
'
,
'
month
'
,
this
.
cycleTotal
);
}
}
},
},
// 平均两个值变化时
// 平均两个值变化时
averageChange
()
{
averageChange
()
{
if
(
this
.
radioValue
==
'
3
'
)
{
if
(
this
.
radioValue
==
'
3
'
)
{
this
.
$emit
(
'
update
'
,
'
mouth
'
,
this
.
averageTotal
);
this
.
$emit
(
'
update
'
,
'
month
'
,
this
.
averageTotal
);
}
}
},
},
// checkbox值变化时
// checkbox值变化时
checkboxChange
()
{
checkboxChange
()
{
if
(
this
.
radioValue
==
'
4
'
)
{
if
(
this
.
radioValue
==
'
4
'
)
{
this
.
$emit
(
'
update
'
,
'
mouth
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
month
'
,
this
.
checkboxString
);
}
}
}
}
},
},
watch
:
{
watch
:
{
"
radioValue
"
:
"
radioChange
"
,
"
radioValue
"
:
"
radioChange
"
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
'
checkboxString
'
:
'
checkboxChange
'
},
},
computed
:
{
computed
:
{
// 计算两个周期值
// 计算两个周期值
cycleTotal
:
function
()
{
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
12
)
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
12
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
12
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
12
)
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
},
},
// 计算平均用到的值
// 计算平均用到的值
averageTotal
:
function
()
{
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
12
)
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
12
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
12
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
12
)
return
this
.
average01
+
'
/
'
+
this
.
average02
;
return
this
.
average01
+
'
/
'
+
this
.
average02
;
},
},
// 计算勾选的checkbox值合集
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'
*
'
:
str
;
return
str
==
''
?
'
*
'
:
str
;
}
}
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/result.vue
View file @
4988b585
<
template
>
<
template
>
<div
class=
"popup-result"
>
<div
class=
"popup-result"
>
<p
class=
"title"
>
最近5次运行时间
</p>
<p
class=
"title"
>
最近5次运行时间
</p>
<ul
class=
"popup-result-scroll"
>
<ul
class=
"popup-result-scroll"
>
<template
v-if=
'isShow'
>
<template
v-if=
'isShow'
>
<li
v-for=
'item in resultList'
:key=
"item"
>
{{
item
}}
</li>
<li
v-for=
'item in resultList'
:key=
"item"
>
{{
item
}}
</li>
</
template
>
</
template
>
<li
v-else
>
计算结果中...
</li>
<li
v-else
>
计算结果中...
</li>
</ul>
</ul>
</div>
</div>
</template>
</template>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
dayRule
:
''
,
dayRule
:
''
,
dayRuleSup
:
''
,
dayRuleSup
:
''
,
dateArr
:
[],
dateArr
:
[],
resultList
:
[],
resultList
:
[],
isShow
:
false
isShow
:
false
}
}
},
},
name
:
'
crontab-result
'
,
name
:
'
crontab-result
'
,
methods
:
{
methods
:
{
// 表达式值变化时,开始去计算结果
// 表达式值变化时,开始去计算结果
expressionChange
()
{
expressionChange
()
{
// 计算开始-隐藏结果
// 计算开始-隐藏结果
this
.
isShow
=
false
;
this
.
isShow
=
false
;
// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
// 获取规则数组[0秒、1分、2时、3日、4月、5星期、6年]
let
ruleArr
=
this
.
$options
.
propsData
.
ex
.
split
(
'
'
);
let
ruleArr
=
this
.
$options
.
propsData
.
ex
.
split
(
'
'
);
// 用于记录进入循环的次数
// 用于记录进入循环的次数
let
nums
=
0
;
let
nums
=
0
;
// 用于暂时存符号时间规则结果的数组
// 用于暂时存符号时间规则结果的数组
let
resultArr
=
[];
let
resultArr
=
[];
// 获取当前时间精确至[年、月、日、时、分、秒]
// 获取当前时间精确至[年、月、日、时、分、秒]
let
nTime
=
new
Date
();
let
nTime
=
new
Date
();
let
nYear
=
nTime
.
getFullYear
();
let
nYear
=
nTime
.
getFullYear
();
let
nMouth
=
nTime
.
getMonth
()
+
1
;
let
nMonth
=
nTime
.
getMonth
()
+
1
;
let
nDay
=
nTime
.
getDate
();
let
nDay
=
nTime
.
getDate
();
let
nHour
=
nTime
.
getHours
();
let
nHour
=
nTime
.
getHours
();
let
nMin
=
nTime
.
getMinutes
();
let
nMin
=
nTime
.
getMinutes
();
let
nSecond
=
nTime
.
getSeconds
();
let
nSecond
=
nTime
.
getSeconds
();
// 根据规则获取到近100年可能年数组、月数组等等
// 根据规则获取到近100年可能年数组、月数组等等
this
.
getSecondArr
(
ruleArr
[
0
]);
this
.
getSecondArr
(
ruleArr
[
0
]);
this
.
getMinArr
(
ruleArr
[
1
]);
this
.
getMinArr
(
ruleArr
[
1
]);
this
.
getHourArr
(
ruleArr
[
2
]);
this
.
getHourArr
(
ruleArr
[
2
]);
this
.
getDayArr
(
ruleArr
[
3
]);
this
.
getDayArr
(
ruleArr
[
3
]);
this
.
getMouthArr
(
ruleArr
[
4
]);
this
.
getMonthArr
(
ruleArr
[
4
]);
this
.
getWeekArr
(
ruleArr
[
5
]);
this
.
getWeekArr
(
ruleArr
[
5
]);
this
.
getYearArr
(
ruleArr
[
6
],
nYear
);
this
.
getYearArr
(
ruleArr
[
6
],
nYear
);
// 将获取到的数组赋值-方便使用
// 将获取到的数组赋值-方便使用
let
sDate
=
this
.
dateArr
[
0
];
let
sDate
=
this
.
dateArr
[
0
];
let
mDate
=
this
.
dateArr
[
1
];
let
mDate
=
this
.
dateArr
[
1
];
let
hDate
=
this
.
dateArr
[
2
];
let
hDate
=
this
.
dateArr
[
2
];
let
DDate
=
this
.
dateArr
[
3
];
let
DDate
=
this
.
dateArr
[
3
];
let
MDate
=
this
.
dateArr
[
4
];
let
MDate
=
this
.
dateArr
[
4
];
let
YDate
=
this
.
dateArr
[
5
];
let
YDate
=
this
.
dateArr
[
5
];
// 获取当前时间在数组中的索引
// 获取当前时间在数组中的索引
let
sIdx
=
this
.
getIndex
(
sDate
,
nSecond
);
let
sIdx
=
this
.
getIndex
(
sDate
,
nSecond
);
let
mIdx
=
this
.
getIndex
(
mDate
,
nMin
);
let
mIdx
=
this
.
getIndex
(
mDate
,
nMin
);
let
hIdx
=
this
.
getIndex
(
hDate
,
nHour
);
let
hIdx
=
this
.
getIndex
(
hDate
,
nHour
);
let
DIdx
=
this
.
getIndex
(
DDate
,
nDay
);
let
DIdx
=
this
.
getIndex
(
DDate
,
nDay
);
let
MIdx
=
this
.
getIndex
(
MDate
,
nMouth
);
let
MIdx
=
this
.
getIndex
(
MDate
,
nMonth
);
let
YIdx
=
this
.
getIndex
(
YDate
,
nYear
);
let
YIdx
=
this
.
getIndex
(
YDate
,
nYear
);
// 重置月日时分秒的函数(后面用的比较多)
// 重置月日时分秒的函数(后面用的比较多)
const
resetSecond
=
function
()
{
const
resetSecond
=
function
()
{
sIdx
=
0
;
sIdx
=
0
;
nSecond
=
sDate
[
sIdx
]
nSecond
=
sDate
[
sIdx
]
}
}
const
resetMin
=
function
()
{
const
resetMin
=
function
()
{
mIdx
=
0
;
mIdx
=
0
;
nMin
=
mDate
[
mIdx
]
nMin
=
mDate
[
mIdx
]
resetSecond
();
resetSecond
();
}
}
const
resetHour
=
function
()
{
const
resetHour
=
function
()
{
hIdx
=
0
;
hIdx
=
0
;
nHour
=
hDate
[
hIdx
]
nHour
=
hDate
[
hIdx
]
resetMin
();
resetMin
();
}
}
const
resetDay
=
function
()
{
const
resetDay
=
function
()
{
DIdx
=
0
;
DIdx
=
0
;
nDay
=
DDate
[
DIdx
]
nDay
=
DDate
[
DIdx
]
resetHour
();
resetHour
();
}
}
const
resetMouth
=
function
()
{
const
resetMonth
=
function
()
{
MIdx
=
0
;
MIdx
=
0
;
nMouth
=
MDate
[
MIdx
]
nMonth
=
MDate
[
MIdx
]
resetDay
();
resetDay
();
}
}
// 如果当前年份不为数组中当前值
// 如果当前年份不为数组中当前值
if
(
nYear
!==
YDate
[
YIdx
])
{
if
(
nYear
!==
YDate
[
YIdx
])
{
resetMouth
();
resetMonth
();
}
}
// 如果当前月份不为数组中当前值
// 如果当前月份不为数组中当前值
if
(
nMouth
!==
MDate
[
MIdx
])
{
if
(
nMonth
!==
MDate
[
MIdx
])
{
resetDay
();
resetDay
();
}
}
// 如果当前“日”不为数组中当前值
// 如果当前“日”不为数组中当前值
if
(
nDay
!==
DDate
[
DIdx
])
{
if
(
nDay
!==
DDate
[
DIdx
])
{
resetHour
();
resetHour
();
}
}
// 如果当前“时”不为数组中当前值
// 如果当前“时”不为数组中当前值
if
(
nHour
!==
hDate
[
hIdx
])
{
if
(
nHour
!==
hDate
[
hIdx
])
{
resetMin
();
resetMin
();
}
}
// 如果当前“分”不为数组中当前值
// 如果当前“分”不为数组中当前值
if
(
nMin
!==
mDate
[
mIdx
])
{
if
(
nMin
!==
mDate
[
mIdx
])
{
resetSecond
();
resetSecond
();
}
}
// 循环年份数组
// 循环年份数组
goYear
:
for
(
let
Yi
=
YIdx
;
Yi
<
YDate
.
length
;
Yi
++
)
{
goYear
:
for
(
let
Yi
=
YIdx
;
Yi
<
YDate
.
length
;
Yi
++
)
{
let
YY
=
YDate
[
Yi
];
let
YY
=
YDate
[
Yi
];
// 如果到达最大值时
// 如果到达最大值时
if
(
nMouth
>
MDate
[
MDate
.
length
-
1
])
{
if
(
nMonth
>
MDate
[
MDate
.
length
-
1
])
{
resetMouth
();
resetMonth
();
continue
;
continue
;
}
}
// 循环月份数组
// 循环月份数组
goMouth
:
for
(
let
Mi
=
MIdx
;
Mi
<
MDate
.
length
;
Mi
++
)
{
goMonth
:
for
(
let
Mi
=
MIdx
;
Mi
<
MDate
.
length
;
Mi
++
)
{
// 赋值、方便后面运算
// 赋值、方便后面运算
let
MM
=
MDate
[
Mi
];
let
MM
=
MDate
[
Mi
];
MM
=
MM
<
10
?
'
0
'
+
MM
:
MM
;
MM
=
MM
<
10
?
'
0
'
+
MM
:
MM
;
// 如果到达最大值时
// 如果到达最大值时
if
(
nDay
>
DDate
[
DDate
.
length
-
1
])
{
if
(
nDay
>
DDate
[
DDate
.
length
-
1
])
{
resetDay
();
resetDay
();
if
(
Mi
==
MDate
.
length
-
1
)
{
if
(
Mi
==
MDate
.
length
-
1
)
{
resetMouth
();
resetMonth
();
continue
goYear
;
continue
goYear
;
}
}
continue
;
continue
;
}
}
// 循环日期数组
// 循环日期数组
goDay
:
for
(
let
Di
=
DIdx
;
Di
<
DDate
.
length
;
Di
++
)
{
goDay
:
for
(
let
Di
=
DIdx
;
Di
<
DDate
.
length
;
Di
++
)
{
// 赋值、方便后面运算
// 赋值、方便后面运算
let
DD
=
DDate
[
Di
];
let
DD
=
DDate
[
Di
];
let
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
let
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
// 如果到达最大值时
// 如果到达最大值时
if
(
nHour
>
hDate
[
hDate
.
length
-
1
])
{
if
(
nHour
>
hDate
[
hDate
.
length
-
1
])
{
resetHour
();
resetHour
();
if
(
Di
==
DDate
.
length
-
1
)
{
if
(
Di
==
DDate
.
length
-
1
)
{
resetDay
();
resetDay
();
if
(
Mi
==
MDate
.
length
-
1
)
{
if
(
Mi
==
MDate
.
length
-
1
)
{
resetMouth
();
resetMonth
();
continue
goYear
;
continue
goYear
;
}
}
continue
goMouth
;
continue
goMonth
;
}
}
continue
;
continue
;
}
}
// 判断日期的合法性,不合法的话也是跳出当前循环
// 判断日期的合法性,不合法的话也是跳出当前循环
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
&&
this
.
dayRule
!==
'
workDay
'
&&
this
.
dayRule
!==
'
lastWeek
'
&&
this
.
dayRule
!==
'
lastDay
'
)
{
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
&&
this
.
dayRule
!==
'
workDay
'
&&
this
.
dayRule
!==
'
lastWeek
'
&&
this
.
dayRule
!==
'
lastDay
'
)
{
resetDay
();
resetDay
();
continue
goMouth
;
continue
goMonth
;
}
}
// 如果日期规则中有值时
// 如果日期规则中有值时
if
(
this
.
dayRule
==
'
lastDay
'
)
{
if
(
this
.
dayRule
==
'
lastDay
'
)
{
//如果不是合法日期则需要将前将日期调到合法日期即月末最后一天
// 如果不是合法日期则需要将前将日期调到合法日期即月末最后一天
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
while
(
DD
>
0
&&
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
while
(
DD
>
0
&&
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
DD
--
;
DD
--
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
}
}
}
}
}
else
if
(
this
.
dayRule
==
'
workDay
'
)
{
}
else
if
(
this
.
dayRule
==
'
workDay
'
)
{
//校验并调整如果是2月30号这种日期传进来时需调整至正常月底
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
while
(
DD
>
0
&&
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
while
(
DD
>
0
&&
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
DD
--
;
DD
--
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
}
}
}
}
// 获取达到条件的日期是星期X
// 获取达到条件的日期是星期X
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
),
'
week
'
);
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
),
'
week
'
);
// 当星期日时
// 当星期日时
if
(
thisWeek
==
0
)
{
if
(
thisWeek
==
0
)
{
//先找下一个日,并判断是否为月底
// 先找下一个日,并判断是否为月底
DD
++
;
DD
++
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
//判断下一日已经不是合法日期
// 判断下一日已经不是合法日期
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
DD
-=
3
;
DD
-=
3
;
}
}
}
else
if
(
thisWeek
==
6
)
{
}
else
if
(
thisWeek
==
6
)
{
//当星期6时只需判断不是1号就可进行操作
// 当星期6时只需判断不是1号就可进行操作
if
(
this
.
dayRuleSup
!==
1
)
{
if
(
this
.
dayRuleSup
!==
1
)
{
DD
--
;
DD
--
;
}
else
{
}
else
{
DD
+=
2
;
DD
+=
2
;
}
}
}
}
}
else
if
(
this
.
dayRule
==
'
weekDay
'
)
{
}
else
if
(
this
.
dayRule
==
'
weekDay
'
)
{
//如果指定了是星期几
// 如果指定了是星期几
//获取当前日期是属于星期几
// 获取当前日期是属于星期几
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
DD
+
'
00:00:00
'
),
'
week
'
);
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
DD
+
'
00:00:00
'
),
'
week
'
);
//校验当前星期是否在星期池(dayRuleSup)中
// 校验当前星期是否在星期池(dayRuleSup)中
if
(
Array
.
indexOf
(
this
.
dayRuleSup
,
thisWeek
)
<
0
)
{
if
(
Array
.
indexOf
(
this
.
dayRuleSup
,
thisWeek
)
<
0
)
{
// 如果到达最大值时
// 如果到达最大值时
if
(
Di
==
DDate
.
length
-
1
)
{
if
(
Di
==
DDate
.
length
-
1
)
{
resetDay
();
resetDay
();
if
(
Mi
==
MDate
.
length
-
1
)
{
if
(
Mi
==
MDate
.
length
-
1
)
{
resetMouth
();
resetMonth
();
continue
goYear
;
continue
goYear
;
}
}
continue
goMouth
;
continue
goMonth
;
}
}
continue
;
continue
;
}
}
}
else
if
(
this
.
dayRule
==
'
assWeek
'
)
{
}
else
if
(
this
.
dayRule
==
'
assWeek
'
)
{
//如果指定了是第几周的星期几
// 如果指定了是第几周的星期几
//获取每月1号是属于星期几
// 获取每月1号是属于星期几
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
DD
+
'
00:00:00
'
),
'
week
'
);
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
DD
+
'
00:00:00
'
),
'
week
'
);
if
(
this
.
dayRuleSup
[
1
]
>=
thisWeek
)
{
if
(
this
.
dayRuleSup
[
1
]
>=
thisWeek
)
{
DD
=
(
this
.
dayRuleSup
[
0
]
-
1
)
*
7
+
this
.
dayRuleSup
[
1
]
-
thisWeek
+
1
;
DD
=
(
this
.
dayRuleSup
[
0
]
-
1
)
*
7
+
this
.
dayRuleSup
[
1
]
-
thisWeek
+
1
;
}
else
{
}
else
{
DD
=
this
.
dayRuleSup
[
0
]
*
7
+
this
.
dayRuleSup
[
1
]
-
thisWeek
+
1
;
DD
=
this
.
dayRuleSup
[
0
]
*
7
+
this
.
dayRuleSup
[
1
]
-
thisWeek
+
1
;
}
}
}
else
if
(
this
.
dayRule
==
'
lastWeek
'
)
{
}
else
if
(
this
.
dayRule
==
'
lastWeek
'
)
{
//如果指定了每月最后一个星期几
// 如果指定了每月最后一个星期几
//校验并调整如果是2月30号这种日期传进来时需调整至正常月底
// 校验并调整如果是2月30号这种日期传进来时需调整至正常月底
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
if
(
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
while
(
DD
>
0
&&
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
while
(
DD
>
0
&&
this
.
checkDate
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
)
!==
true
)
{
DD
--
;
DD
--
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
thisDD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
}
}
}
}
//获取月末最后一天是星期几
// 获取月末最后一天是星期几
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
),
'
week
'
);
let
thisWeek
=
this
.
formatDate
(
new
Date
(
YY
+
'
-
'
+
MM
+
'
-
'
+
thisDD
+
'
00:00:00
'
),
'
week
'
);
//找到要求中最近的那个星期几
// 找到要求中最近的那个星期几
if
(
this
.
dayRuleSup
<
thisWeek
)
{
if
(
this
.
dayRuleSup
<
thisWeek
)
{
DD
-=
thisWeek
-
this
.
dayRuleSup
;
DD
-=
thisWeek
-
this
.
dayRuleSup
;
}
else
if
(
this
.
dayRuleSup
>
thisWeek
)
{
}
else
if
(
this
.
dayRuleSup
>
thisWeek
)
{
DD
-=
7
-
(
this
.
dayRuleSup
-
thisWeek
)
DD
-=
7
-
(
this
.
dayRuleSup
-
thisWeek
)
}
}
}
}
// 判断时间值是否小于10置换成“05”这种格式
// 判断时间值是否小于10置换成“05”这种格式
DD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
DD
=
DD
<
10
?
'
0
'
+
DD
:
DD
;
// 循环“时”数组
// 循环“时”数组
goHour
:
for
(
let
hi
=
hIdx
;
hi
<
hDate
.
length
;
hi
++
)
{
goHour
:
for
(
let
hi
=
hIdx
;
hi
<
hDate
.
length
;
hi
++
)
{
let
hh
=
hDate
[
hi
]
<
10
?
'
0
'
+
hDate
[
hi
]
:
hDate
[
hi
]
let
hh
=
hDate
[
hi
]
<
10
?
'
0
'
+
hDate
[
hi
]
:
hDate
[
hi
]
// 如果到达最大值时
// 如果到达最大值时
if
(
nMin
>
mDate
[
mDate
.
length
-
1
])
{
if
(
nMin
>
mDate
[
mDate
.
length
-
1
])
{
resetMin
();
resetMin
();
if
(
hi
==
hDate
.
length
-
1
)
{
if
(
hi
==
hDate
.
length
-
1
)
{
resetHour
();
resetHour
();
if
(
Di
==
DDate
.
length
-
1
)
{
if
(
Di
==
DDate
.
length
-
1
)
{
resetDay
();
resetDay
();
if
(
Mi
==
MDate
.
length
-
1
)
{
if
(
Mi
==
MDate
.
length
-
1
)
{
resetMouth
();
resetMonth
();
continue
goYear
;
continue
goYear
;
}
}
continue
goMouth
;
continue
goMonth
;
}
}
continue
goDay
;
continue
goDay
;
}
}
continue
;
continue
;
}
}
// 循环"分"数组
// 循环"分"数组
goMin
:
for
(
let
mi
=
mIdx
;
mi
<
mDate
.
length
;
mi
++
)
{
goMin
:
for
(
let
mi
=
mIdx
;
mi
<
mDate
.
length
;
mi
++
)
{
let
mm
=
mDate
[
mi
]
<
10
?
'
0
'
+
mDate
[
mi
]
:
mDate
[
mi
];
let
mm
=
mDate
[
mi
]
<
10
?
'
0
'
+
mDate
[
mi
]
:
mDate
[
mi
];
// 如果到达最大值时
// 如果到达最大值时
if
(
nSecond
>
sDate
[
sDate
.
length
-
1
])
{
if
(
nSecond
>
sDate
[
sDate
.
length
-
1
])
{
resetSecond
();
resetSecond
();
if
(
mi
==
mDate
.
length
-
1
)
{
if
(
mi
==
mDate
.
length
-
1
)
{
resetMin
();
resetMin
();
if
(
hi
==
hDate
.
length
-
1
)
{
if
(
hi
==
hDate
.
length
-
1
)
{
resetHour
();
resetHour
();
if
(
Di
==
DDate
.
length
-
1
)
{
if
(
Di
==
DDate
.
length
-
1
)
{
resetDay
();
resetDay
();
if
(
Mi
==
MDate
.
length
-
1
)
{
if
(
Mi
==
MDate
.
length
-
1
)
{
resetMouth
();
resetMonth
();
continue
goYear
;
continue
goYear
;
}
}
continue
goMouth
;
continue
goMonth
;
}
}
continue
goDay
;
continue
goDay
;
}
}
continue
goHour
;
continue
goHour
;
}
}
continue
;
continue
;
}
}
// 循环"秒"数组
// 循环"秒"数组
goSecond
:
for
(
let
si
=
sIdx
;
si
<=
sDate
.
length
-
1
;
si
++
)
{
goSecond
:
for
(
let
si
=
sIdx
;
si
<=
sDate
.
length
-
1
;
si
++
)
{
let
ss
=
sDate
[
si
]
<
10
?
'
0
'
+
sDate
[
si
]
:
sDate
[
si
];
let
ss
=
sDate
[
si
]
<
10
?
'
0
'
+
sDate
[
si
]
:
sDate
[
si
];
// 添加当前时间(时间合法性在日期循环时已经判断)
// 添加当前时间(时间合法性在日期循环时已经判断)
if
(
MM
!==
'
00
'
&&
DD
!==
'
00
'
)
{
if
(
MM
!==
'
00
'
&&
DD
!==
'
00
'
)
{
resultArr
.
push
(
YY
+
'
-
'
+
MM
+
'
-
'
+
DD
+
'
'
+
hh
+
'
:
'
+
mm
+
'
:
'
+
ss
)
resultArr
.
push
(
YY
+
'
-
'
+
MM
+
'
-
'
+
DD
+
'
'
+
hh
+
'
:
'
+
mm
+
'
:
'
+
ss
)
nums
++
;
nums
++
;
}
}
//如果条数满了就退出循环
// 如果条数满了就退出循环
if
(
nums
==
5
)
break
goYear
;
if
(
nums
==
5
)
break
goYear
;
//如果到达最大值时
// 如果到达最大值时
if
(
si
==
sDate
.
length
-
1
)
{
if
(
si
==
sDate
.
length
-
1
)
{
resetSecond
();
resetSecond
();
if
(
mi
==
mDate
.
length
-
1
)
{
if
(
mi
==
mDate
.
length
-
1
)
{
resetMin
();
resetMin
();
if
(
hi
==
hDate
.
length
-
1
)
{
if
(
hi
==
hDate
.
length
-
1
)
{
resetHour
();
resetHour
();
if
(
Di
==
DDate
.
length
-
1
)
{
if
(
Di
==
DDate
.
length
-
1
)
{
resetDay
();
resetDay
();
if
(
Mi
==
MDate
.
length
-
1
)
{
if
(
Mi
==
MDate
.
length
-
1
)
{
resetMouth
();
resetMonth
();
continue
goYear
;
continue
goYear
;
}
}
continue
goMouth
;
continue
goMonth
;
}
}
continue
goDay
;
continue
goDay
;
}
}
continue
goHour
;
continue
goHour
;
}
}
continue
goMin
;
continue
goMin
;
}
}
}
//goSecond
}
//goSecond
}
//goMin
}
//goMin
}
//goHour
}
//goHour
}
//goDay
}
//goDay
}
//goMouth
}
//goMonth
}
}
// 判断100年内的结果条数
// 判断100年内的结果条数
if
(
resultArr
.
length
==
0
)
{
if
(
resultArr
.
length
==
0
)
{
this
.
resultList
=
[
'
没有达到条件的结果!
'
];
this
.
resultList
=
[
'
没有达到条件的结果!
'
];
}
else
{
}
else
{
this
.
resultList
=
resultArr
;
this
.
resultList
=
resultArr
;
if
(
resultArr
.
length
!==
5
)
{
if
(
resultArr
.
length
!==
5
)
{
this
.
resultList
.
push
(
'
最近100年内只有上面
'
+
resultArr
.
length
+
'
条结果!
'
)
this
.
resultList
.
push
(
'
最近100年内只有上面
'
+
resultArr
.
length
+
'
条结果!
'
)
}
}
}
}
// 计算完成-显示结果
// 计算完成-显示结果
this
.
isShow
=
true
;
this
.
isShow
=
true
;
},
},
//用于计算某位数字在数组中的索引
// 用于计算某位数字在数组中的索引
getIndex
(
arr
,
value
)
{
getIndex
(
arr
,
value
)
{
if
(
value
<=
arr
[
0
]
||
value
>
arr
[
arr
.
length
-
1
])
{
if
(
value
<=
arr
[
0
]
||
value
>
arr
[
arr
.
length
-
1
])
{
return
0
;
return
0
;
}
else
{
}
else
{
for
(
let
i
=
0
;
i
<
arr
.
length
-
1
;
i
++
)
{
for
(
let
i
=
0
;
i
<
arr
.
length
-
1
;
i
++
)
{
if
(
value
>
arr
[
i
]
&&
value
<=
arr
[
i
+
1
])
{
if
(
value
>
arr
[
i
]
&&
value
<=
arr
[
i
+
1
])
{
return
i
+
1
;
return
i
+
1
;
}
}
}
}
}
}
},
},
// 获取"年"数组
// 获取"年"数组
getYearArr
(
rule
,
year
)
{
getYearArr
(
rule
,
year
)
{
this
.
dateArr
[
5
]
=
this
.
getOrderArr
(
year
,
year
+
100
);
this
.
dateArr
[
5
]
=
this
.
getOrderArr
(
year
,
year
+
100
);
if
(
rule
!==
undefined
)
{
if
(
rule
!==
undefined
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dateArr
[
5
]
=
this
.
getCycleArr
(
rule
,
year
+
100
,
false
)
this
.
dateArr
[
5
]
=
this
.
getCycleArr
(
rule
,
year
+
100
,
false
)
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
this
.
dateArr
[
5
]
=
this
.
getAverageArr
(
rule
,
year
+
100
)
this
.
dateArr
[
5
]
=
this
.
getAverageArr
(
rule
,
year
+
100
)
}
else
if
(
rule
!==
'
*
'
)
{
}
else
if
(
rule
!==
'
*
'
)
{
this
.
dateArr
[
5
]
=
this
.
getAssignArr
(
rule
)
this
.
dateArr
[
5
]
=
this
.
getAssignArr
(
rule
)
}
}
}
}
},
},
// 获取"月"数组
// 获取"月"数组
getMouthArr
(
rule
)
{
getMonthArr
(
rule
)
{
this
.
dateArr
[
4
]
=
this
.
getOrderArr
(
1
,
12
);
this
.
dateArr
[
4
]
=
this
.
getOrderArr
(
1
,
12
);
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dateArr
[
4
]
=
this
.
getCycleArr
(
rule
,
12
,
false
)
this
.
dateArr
[
4
]
=
this
.
getCycleArr
(
rule
,
12
,
false
)
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
this
.
dateArr
[
4
]
=
this
.
getAverageArr
(
rule
,
12
)
this
.
dateArr
[
4
]
=
this
.
getAverageArr
(
rule
,
12
)
}
else
if
(
rule
!==
'
*
'
)
{
}
else
if
(
rule
!==
'
*
'
)
{
this
.
dateArr
[
4
]
=
this
.
getAssignArr
(
rule
)
this
.
dateArr
[
4
]
=
this
.
getAssignArr
(
rule
)
}
}
},
},
// 获取"日"数组-主要为日期规则
// 获取"日"数组-主要为日期规则
getWeekArr
(
rule
)
{
getWeekArr
(
rule
)
{
//只有当日期规则的两个值均为“”时则表达日期是有选项的
// 只有当日期规则的两个值均为“”时则表达日期是有选项的
if
(
this
.
dayRule
==
''
&&
this
.
dayRuleSup
==
''
)
{
if
(
this
.
dayRule
==
''
&&
this
.
dayRuleSup
==
''
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dayRule
=
'
weekDay
'
;
this
.
dayRule
=
'
weekDay
'
;
this
.
dayRuleSup
=
this
.
getCycleArr
(
rule
,
7
,
false
)
this
.
dayRuleSup
=
this
.
getCycleArr
(
rule
,
7
,
false
)
}
else
if
(
rule
.
indexOf
(
'
#
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
#
'
)
>=
0
)
{
this
.
dayRule
=
'
assWeek
'
;
this
.
dayRule
=
'
assWeek
'
;
let
matchRule
=
rule
.
match
(
/
[
0-9
]{1}
/g
);
let
matchRule
=
rule
.
match
(
/
[
0-9
]{1}
/g
);
this
.
dayRuleSup
=
[
Number
(
matchRule
[
0
]),
Number
(
matchRule
[
1
])];
this
.
dayRuleSup
=
[
Number
(
matchRule
[
0
]),
Number
(
matchRule
[
1
])];
this
.
dateArr
[
3
]
=
[
1
];
this
.
dateArr
[
3
]
=
[
1
];
if
(
this
.
dayRuleSup
[
1
]
==
7
)
{
if
(
this
.
dayRuleSup
[
1
]
==
7
)
{
this
.
dayRuleSup
[
1
]
=
0
;
this
.
dayRuleSup
[
1
]
=
0
;
}
}
}
else
if
(
rule
.
indexOf
(
'
L
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
L
'
)
>=
0
)
{
this
.
dayRule
=
'
lastWeek
'
;
this
.
dayRule
=
'
lastWeek
'
;
this
.
dayRuleSup
=
Number
(
rule
.
match
(
/
[
0-9
]{1,2}
/g
)[
0
]);
this
.
dayRuleSup
=
Number
(
rule
.
match
(
/
[
0-9
]{1,2}
/g
)[
0
]);
this
.
dateArr
[
3
]
=
[
31
];
this
.
dateArr
[
3
]
=
[
31
];
if
(
this
.
dayRuleSup
==
7
)
{
if
(
this
.
dayRuleSup
==
7
)
{
this
.
dayRuleSup
=
0
;
this
.
dayRuleSup
=
0
;
}
}
}
else
if
(
rule
!==
'
*
'
&&
rule
!==
'
?
'
)
{
}
else
if
(
rule
!==
'
*
'
&&
rule
!==
'
?
'
)
{
this
.
dayRule
=
'
weekDay
'
;
this
.
dayRule
=
'
weekDay
'
;
this
.
dayRuleSup
=
this
.
getAssignArr
(
rule
)
this
.
dayRuleSup
=
this
.
getAssignArr
(
rule
)
}
}
//如果weekDay时将7调整为0【week值0即是星期日】
// 如果weekDay时将7调整为0【week值0即是星期日】
if
(
this
.
dayRule
==
'
weekDay
'
)
{
if
(
this
.
dayRule
==
'
weekDay
'
)
{
for
(
let
i
=
0
;
i
<
this
.
dayRuleSup
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
this
.
dayRuleSup
.
length
;
i
++
)
{
if
(
this
.
dayRuleSup
[
i
]
==
7
)
{
if
(
this
.
dayRuleSup
[
i
]
==
7
)
{
this
.
dayRuleSup
[
i
]
=
0
;
this
.
dayRuleSup
[
i
]
=
0
;
}
}
}
}
}
}
}
}
},
},
// 获取"日"数组-少量为日期规则
// 获取"日"数组-少量为日期规则
getDayArr
(
rule
)
{
getDayArr
(
rule
)
{
this
.
dateArr
[
3
]
=
this
.
getOrderArr
(
1
,
31
);
this
.
dateArr
[
3
]
=
this
.
getOrderArr
(
1
,
31
);
this
.
dayRule
=
''
;
this
.
dayRule
=
''
;
this
.
dayRuleSup
=
''
;
this
.
dayRuleSup
=
''
;
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dateArr
[
3
]
=
this
.
getCycleArr
(
rule
,
31
,
false
)
this
.
dateArr
[
3
]
=
this
.
getCycleArr
(
rule
,
31
,
false
)
this
.
dayRuleSup
=
'
null
'
;
this
.
dayRuleSup
=
'
null
'
;
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
this
.
dateArr
[
3
]
=
this
.
getAverageArr
(
rule
,
31
)
this
.
dateArr
[
3
]
=
this
.
getAverageArr
(
rule
,
31
)
this
.
dayRuleSup
=
'
null
'
;
this
.
dayRuleSup
=
'
null
'
;
}
else
if
(
rule
.
indexOf
(
'
W
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
W
'
)
>=
0
)
{
this
.
dayRule
=
'
workDay
'
;
this
.
dayRule
=
'
workDay
'
;
this
.
dayRuleSup
=
Number
(
rule
.
match
(
/
[
0-9
]{1,2}
/g
)[
0
]);
this
.
dayRuleSup
=
Number
(
rule
.
match
(
/
[
0-9
]{1,2}
/g
)[
0
]);
this
.
dateArr
[
3
]
=
[
this
.
dayRuleSup
];
this
.
dateArr
[
3
]
=
[
this
.
dayRuleSup
];
}
else
if
(
rule
.
indexOf
(
'
L
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
L
'
)
>=
0
)
{
this
.
dayRule
=
'
lastDay
'
;
this
.
dayRule
=
'
lastDay
'
;
this
.
dayRuleSup
=
'
null
'
;
this
.
dayRuleSup
=
'
null
'
;
this
.
dateArr
[
3
]
=
[
31
];
this
.
dateArr
[
3
]
=
[
31
];
}
else
if
(
rule
!==
'
*
'
&&
rule
!==
'
?
'
)
{
}
else
if
(
rule
!==
'
*
'
&&
rule
!==
'
?
'
)
{
this
.
dateArr
[
3
]
=
this
.
getAssignArr
(
rule
)
this
.
dateArr
[
3
]
=
this
.
getAssignArr
(
rule
)
this
.
dayRuleSup
=
'
null
'
;
this
.
dayRuleSup
=
'
null
'
;
}
else
if
(
rule
==
'
*
'
)
{
}
else
if
(
rule
==
'
*
'
)
{
this
.
dayRuleSup
=
'
null
'
;
this
.
dayRuleSup
=
'
null
'
;
}
}
},
},
// 获取"时"数组
// 获取"时"数组
getHourArr
(
rule
)
{
getHourArr
(
rule
)
{
this
.
dateArr
[
2
]
=
this
.
getOrderArr
(
0
,
23
);
this
.
dateArr
[
2
]
=
this
.
getOrderArr
(
0
,
23
);
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dateArr
[
2
]
=
this
.
getCycleArr
(
rule
,
24
,
true
)
this
.
dateArr
[
2
]
=
this
.
getCycleArr
(
rule
,
24
,
true
)
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
this
.
dateArr
[
2
]
=
this
.
getAverageArr
(
rule
,
23
)
this
.
dateArr
[
2
]
=
this
.
getAverageArr
(
rule
,
23
)
}
else
if
(
rule
!==
'
*
'
)
{
}
else
if
(
rule
!==
'
*
'
)
{
this
.
dateArr
[
2
]
=
this
.
getAssignArr
(
rule
)
this
.
dateArr
[
2
]
=
this
.
getAssignArr
(
rule
)
}
}
},
},
// 获取"分"数组
// 获取"分"数组
getMinArr
(
rule
)
{
getMinArr
(
rule
)
{
this
.
dateArr
[
1
]
=
this
.
getOrderArr
(
0
,
59
);
this
.
dateArr
[
1
]
=
this
.
getOrderArr
(
0
,
59
);
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dateArr
[
1
]
=
this
.
getCycleArr
(
rule
,
60
,
true
)
this
.
dateArr
[
1
]
=
this
.
getCycleArr
(
rule
,
60
,
true
)
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
this
.
dateArr
[
1
]
=
this
.
getAverageArr
(
rule
,
59
)
this
.
dateArr
[
1
]
=
this
.
getAverageArr
(
rule
,
59
)
}
else
if
(
rule
!==
'
*
'
)
{
}
else
if
(
rule
!==
'
*
'
)
{
this
.
dateArr
[
1
]
=
this
.
getAssignArr
(
rule
)
this
.
dateArr
[
1
]
=
this
.
getAssignArr
(
rule
)
}
}
},
},
// 获取"秒"数组
// 获取"秒"数组
getSecondArr
(
rule
)
{
getSecondArr
(
rule
)
{
this
.
dateArr
[
0
]
=
this
.
getOrderArr
(
0
,
59
);
this
.
dateArr
[
0
]
=
this
.
getOrderArr
(
0
,
59
);
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
if
(
rule
.
indexOf
(
'
-
'
)
>=
0
)
{
this
.
dateArr
[
0
]
=
this
.
getCycleArr
(
rule
,
60
,
true
)
this
.
dateArr
[
0
]
=
this
.
getCycleArr
(
rule
,
60
,
true
)
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
}
else
if
(
rule
.
indexOf
(
'
/
'
)
>=
0
)
{
this
.
dateArr
[
0
]
=
this
.
getAverageArr
(
rule
,
59
)
this
.
dateArr
[
0
]
=
this
.
getAverageArr
(
rule
,
59
)
}
else
if
(
rule
!==
'
*
'
)
{
}
else
if
(
rule
!==
'
*
'
)
{
this
.
dateArr
[
0
]
=
this
.
getAssignArr
(
rule
)
this
.
dateArr
[
0
]
=
this
.
getAssignArr
(
rule
)
}
}
},
},
// 根据传进来的min-max返回一个顺序的数组
// 根据传进来的min-max返回一个顺序的数组
getOrderArr
(
min
,
max
)
{
getOrderArr
(
min
,
max
)
{
let
arr
=
[];
let
arr
=
[];
for
(
let
i
=
min
;
i
<=
max
;
i
++
)
{
for
(
let
i
=
min
;
i
<=
max
;
i
++
)
{
arr
.
push
(
i
);
arr
.
push
(
i
);
}
}
return
arr
;
return
arr
;
},
},
// 根据规则中指定的零散值返回一个数组
// 根据规则中指定的零散值返回一个数组
getAssignArr
(
rule
)
{
getAssignArr
(
rule
)
{
let
arr
=
[];
let
arr
=
[];
let
assiginArr
=
rule
.
split
(
'
,
'
);
let
assiginArr
=
rule
.
split
(
'
,
'
);
for
(
let
i
=
0
;
i
<
assiginArr
.
length
;
i
++
)
{
for
(
let
i
=
0
;
i
<
assiginArr
.
length
;
i
++
)
{
arr
[
i
]
=
Number
(
assiginArr
[
i
])
arr
[
i
]
=
Number
(
assiginArr
[
i
])
}
}
arr
.
sort
(
this
.
compare
)
arr
.
sort
(
this
.
compare
)
return
arr
;
return
arr
;
},
},
// 根据一定算术规则计算返回一个数组
// 根据一定算术规则计算返回一个数组
getAverageArr
(
rule
,
limit
)
{
getAverageArr
(
rule
,
limit
)
{
let
arr
=
[];
let
arr
=
[];
let
agArr
=
rule
.
split
(
'
/
'
);
let
agArr
=
rule
.
split
(
'
/
'
);
let
min
=
Number
(
agArr
[
0
]);
let
min
=
Number
(
agArr
[
0
]);
let
step
=
Number
(
agArr
[
1
]);
let
step
=
Number
(
agArr
[
1
]);
while
(
min
<=
limit
)
{
while
(
min
<=
limit
)
{
arr
.
push
(
min
);
arr
.
push
(
min
);
min
+=
step
;
min
+=
step
;
}
}
return
arr
;
return
arr
;
},
},
// 根据规则返回一个具有周期性的数组
// 根据规则返回一个具有周期性的数组
getCycleArr
(
rule
,
limit
,
status
)
{
getCycleArr
(
rule
,
limit
,
status
)
{
//status--表示是否从0开始(则从1开始)
// status--表示是否从0开始(则从1开始)
let
arr
=
[];
let
arr
=
[];
let
cycleArr
=
rule
.
split
(
'
-
'
);
let
cycleArr
=
rule
.
split
(
'
-
'
);
let
min
=
Number
(
cycleArr
[
0
]);
let
min
=
Number
(
cycleArr
[
0
]);
let
max
=
Number
(
cycleArr
[
1
]);
let
max
=
Number
(
cycleArr
[
1
]);
if
(
min
>
max
)
{
if
(
min
>
max
)
{
max
+=
limit
;
max
+=
limit
;
}
}
for
(
let
i
=
min
;
i
<=
max
;
i
++
)
{
for
(
let
i
=
min
;
i
<=
max
;
i
++
)
{
let
add
=
0
;
let
add
=
0
;
if
(
status
==
false
&&
i
%
limit
==
0
)
{
if
(
status
==
false
&&
i
%
limit
==
0
)
{
add
=
limit
;
add
=
limit
;
}
}
arr
.
push
(
Math
.
round
(
i
%
limit
+
add
))
arr
.
push
(
Math
.
round
(
i
%
limit
+
add
))
}
}
arr
.
sort
(
this
.
compare
)
arr
.
sort
(
this
.
compare
)
return
arr
;
return
arr
;
},
},
//比较数字大小(用于Array.sort)
// 比较数字大小(用于Array.sort)
compare
(
value1
,
value2
)
{
compare
(
value1
,
value2
)
{
if
(
value2
-
value1
>
0
)
{
if
(
value2
-
value1
>
0
)
{
return
-
1
;
return
-
1
;
}
else
{
}
else
{
return
1
;
return
1
;
}
}
},
},
// 格式化日期格式如:2017-9-19 18:04:33
// 格式化日期格式如:2017-9-19 18:04:33
formatDate
(
value
,
type
)
{
formatDate
(
value
,
type
)
{
// 计算日期相关值
// 计算日期相关值
let
time
=
typeof
value
==
'
number
'
?
new
Date
(
value
)
:
value
;
let
time
=
typeof
value
==
'
number
'
?
new
Date
(
value
)
:
value
;
let
Y
=
time
.
getFullYear
();
let
Y
=
time
.
getFullYear
();
let
M
=
time
.
getMonth
()
+
1
;
let
M
=
time
.
getMonth
()
+
1
;
let
D
=
time
.
getDate
();
let
D
=
time
.
getDate
();
let
h
=
time
.
getHours
();
let
h
=
time
.
getHours
();
let
m
=
time
.
getMinutes
();
let
m
=
time
.
getMinutes
();
let
s
=
time
.
getSeconds
();
let
s
=
time
.
getSeconds
();
let
week
=
time
.
getDay
();
let
week
=
time
.
getDay
();
// 如果传递了type的话
// 如果传递了type的话
if
(
type
==
undefined
)
{
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
);
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
'
)
{
}
else
if
(
type
==
'
week
'
)
{
return
week
;
return
week
;
}
}
},
},
// 检查日期是否存在
// 检查日期是否存在
checkDate
(
value
)
{
checkDate
(
value
)
{
let
time
=
new
Date
(
value
);
let
time
=
new
Date
(
value
);
let
format
=
this
.
formatDate
(
time
)
let
format
=
this
.
formatDate
(
time
)
return
value
==
format
?
true
:
false
;
return
value
==
format
?
true
:
false
;
}
}
},
},
watch
:
{
watch
:
{
'
ex
'
:
'
expressionChange
'
'
ex
'
:
'
expressionChange
'
},
},
props
:
[
'
ex
'
],
props
:
[
'
ex
'
],
mounted
:
function
()
{
mounted
:
function
()
{
// 初始化 获取一次结果
// 初始化 获取一次结果
this
.
expressionChange
();
this
.
expressionChange
();
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/second.vue
View file @
4988b585
<
template
>
<
template
>
<el-form
size=
"small"
>
<el-form
size=
"small"
>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
秒,允许的通配符[, - * /]
秒,允许的通配符[, - * /]
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
周期从
周期从
<el-input-number
v-model=
'cycle01'
:min=
"0"
:max=
"60"
/>
-
<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=
'cycle02'
:min=
"0"
:max=
"60"
/>
秒
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
从
从
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"60"
/>
秒开始,每
<el-input-number
v-model=
'average01'
:min=
"0"
:max=
"60"
/>
秒开始,每
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"60"
/>
秒执行一次
<el-input-number
v-model=
'average02'
:min=
"0"
:max=
"60"
/>
秒执行一次
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
指定
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<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-option
v-for=
"item in 60"
:key=
"item"
:value=
"item-1"
>
{{
item
-
1
}}
</el-option>
</el-select>
</el-select>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
radioValue
:
1
,
radioValue
:
1
,
cycle01
:
1
,
cycle01
:
1
,
cycle02
:
2
,
cycle02
:
2
,
average01
:
0
,
average01
:
0
,
average02
:
1
,
average02
:
1
,
checkboxList
:
[],
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
checkNum
:
this
.
$options
.
propsData
.
check
}
}
},
},
name
:
'
crontab-second
'
,
name
:
'
crontab-second
'
,
props
:
[
'
check
'
,
'
radioParent
'
],
props
:
[
'
check
'
,
'
radioParent
'
],
methods
:
{
methods
:
{
// 单选按钮值变化时
// 单选按钮值变化时
radioChange
()
{
radioChange
()
{
switch
(
this
.
radioValue
)
{
switch
(
this
.
radioValue
)
{
case
1
:
case
1
:
this
.
$emit
(
'
update
'
,
'
second
'
,
'
*
'
,
'
second
'
);
this
.
$emit
(
'
update
'
,
'
second
'
,
'
*
'
,
'
second
'
);
this
.
$emit
(
'
update
'
,
'
min
'
,
'
*
'
,
'
second
'
);
this
.
$emit
(
'
update
'
,
'
min
'
,
'
*
'
,
'
second
'
);
break
;
break
;
case
2
:
case
2
:
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
break
;
break
;
case
3
:
case
3
:
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
break
;
break
;
case
4
:
case
4
:
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
checkboxString
);
break
;
break
;
}
}
},
},
// 周期两个值变化时
// 周期两个值变化时
cycleChange
()
{
cycleChange
()
{
if
(
this
.
radioValue
==
'
2
'
)
{
if
(
this
.
radioValue
==
'
2
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
cycleTotal
);
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
cycleTotal
);
}
}
},
},
// 平均两个值变化时
// 平均两个值变化时
averageChange
()
{
averageChange
()
{
if
(
this
.
radioValue
==
'
3
'
)
{
if
(
this
.
radioValue
==
'
3
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
averageTotal
);
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
averageTotal
);
}
}
},
},
// checkbox值变化时
// checkbox值变化时
checkboxChange
()
{
checkboxChange
()
{
if
(
this
.
radioValue
==
'
4
'
)
{
if
(
this
.
radioValue
==
'
4
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
second
'
,
this
.
checkboxString
);
}
}
},
},
othChange
()
{
othChange
()
{
//反解析
// 反解析
let
ins
=
this
.
cron
.
second
let
ins
=
this
.
cron
.
second
(
'
反解析 second
'
,
ins
);
(
'
反解析 second
'
,
ins
);
if
(
ins
===
'
*
'
)
{
if
(
ins
===
'
*
'
)
{
this
.
radioValue
=
1
;
this
.
radioValue
=
1
;
}
else
if
(
ins
.
indexOf
(
'
-
'
)
>
-
1
)
{
}
else
if
(
ins
.
indexOf
(
'
-
'
)
>
-
1
)
{
this
.
radioValue
=
2
this
.
radioValue
=
2
}
else
if
(
ins
.
indexOf
(
'
/
'
)
>
-
1
)
{
}
else
if
(
ins
.
indexOf
(
'
/
'
)
>
-
1
)
{
this
.
radioValue
=
3
this
.
radioValue
=
3
}
else
{
}
else
{
this
.
radioValue
=
4
this
.
radioValue
=
4
this
.
checkboxList
=
ins
.
split
(
'
,
'
)
this
.
checkboxList
=
ins
.
split
(
'
,
'
)
}
}
}
}
},
},
watch
:
{
watch
:
{
"
radioValue
"
:
"
radioChange
"
,
"
radioValue
"
:
"
radioChange
"
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
,
radioParent
()
{
radioParent
()
{
this
.
radioValue
=
this
.
radioParent
this
.
radioValue
=
this
.
radioParent
}
}
},
},
computed
:
{
computed
:
{
// 计算两个周期值
// 计算两个周期值
cycleTotal
:
function
()
{
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
59
)
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
0
,
59
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
59
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
0
,
59
)
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
},
},
// 计算平均用到的值
// 计算平均用到的值
averageTotal
:
function
()
{
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
59
)
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
0
,
59
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
59
)
return
this
.
average01
+
'
/
'
+
this
.
average02
;
return
this
.
average01
+
'
/
'
+
this
.
average02
;
},
},
// 计算勾选的checkbox值合集
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'
*
'
:
str
;
return
str
==
''
?
'
*
'
:
str
;
}
}
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/week.vue
View file @
4988b585
<
template
>
<
template
>
<el-form
size=
'small'
>
<el-form
size=
'small'
>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
<el-radio
v-model=
'radioValue'
:label=
"1"
>
周,允许的通配符[, - * / L #]
周,允许的通配符[, - * / L #]
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
<el-radio
v-model=
'radioValue'
:label=
"2"
>
不指定
不指定
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
<el-radio
v-model=
'radioValue'
:label=
"3"
>
周期从星期
周期从星期
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"7"
/>
-
<el-input-number
v-model=
'cycle01'
:min=
"1"
:max=
"7"
/>
-
<el-input-number
v-model=
'cycle02'
:min=
"1"
:max=
"7"
/>
<el-input-number
v-model=
'cycle02'
:min=
"1"
:max=
"7"
/>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
<el-radio
v-model=
'radioValue'
:label=
"4"
>
第
第
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"4"
/>
周的星期
<el-input-number
v-model=
'average01'
:min=
"1"
:max=
"4"
/>
周的星期
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"7"
/>
<el-input-number
v-model=
'average02'
:min=
"1"
:max=
"7"
/>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"5"
>
<el-radio
v-model=
'radioValue'
:label=
"5"
>
本月最后一个星期
本月最后一个星期
<el-input-number
v-model=
'weekday'
:min=
"1"
:max=
"7"
/>
<el-input-number
v-model=
'weekday'
:min=
"1"
:max=
"7"
/>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
v-model=
'radioValue'
:label=
"6"
>
<el-radio
v-model=
'radioValue'
:label=
"6"
>
指定
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
style=
"width:100%"
>
<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"
:value=
"index+1"
>
{{
item
}}
</el-option>
</el-select>
</el-select>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
radioValue
:
2
,
radioValue
:
2
,
weekday
:
1
,
weekday
:
1
,
cycle01
:
1
,
cycle01
:
1
,
cycle02
:
2
,
cycle02
:
2
,
average01
:
1
,
average01
:
1
,
average02
:
1
,
average02
:
1
,
checkboxList
:
[],
checkboxList
:
[],
weekList
:
[
'
周一
'
,
'
周二
'
,
'
周三
'
,
'
周四
'
,
'
周五
'
,
'
周六
'
,
'
周日
'
],
weekList
:
[
'
周一
'
,
'
周二
'
,
'
周三
'
,
'
周四
'
,
'
周五
'
,
'
周六
'
,
'
周日
'
],
checkNum
:
this
.
$options
.
propsData
.
check
checkNum
:
this
.
$options
.
propsData
.
check
}
}
},
},
name
:
'
crontab-week
'
,
name
:
'
crontab-week
'
,
props
:
[
'
check
'
,
'
cron
'
],
props
:
[
'
check
'
,
'
cron
'
],
methods
:
{
methods
:
{
// 单选按钮值变化时
// 单选按钮值变化时
radioChange
()
{
radioChange
()
{
if
(
this
.
radioValue
===
1
)
{
if
(
this
.
radioValue
===
1
)
{
this
.
$emit
(
'
update
'
,
'
week
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
week
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
year
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
year
'
,
'
*
'
);
}
else
{
}
else
{
if
(
this
.
cron
.
mouth
===
'
*
'
)
{
if
(
this
.
cron
.
month
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
mouth
'
,
'
0
'
,
'
week
'
);
this
.
$emit
(
'
update
'
,
'
month
'
,
'
0
'
,
'
week
'
);
}
}
if
(
this
.
cron
.
day
===
'
*
'
)
{
if
(
this
.
cron
.
day
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
'
0
'
,
'
week
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
'
0
'
,
'
week
'
);
}
}
if
(
this
.
cron
.
hour
===
'
*
'
)
{
if
(
this
.
cron
.
hour
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
week
'
);
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
week
'
);
}
}
if
(
this
.
cron
.
min
===
'
*
'
)
{
if
(
this
.
cron
.
min
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
week
'
);
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
week
'
);
}
}
if
(
this
.
cron
.
second
===
'
*
'
)
{
if
(
this
.
cron
.
second
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
week
'
);
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
week
'
);
}
}
}
}
switch
(
this
.
radioValue
)
{
switch
(
this
.
radioValue
)
{
case
2
:
case
2
:
this
.
$emit
(
'
update
'
,
'
week
'
,
'
?
'
);
this
.
$emit
(
'
update
'
,
'
week
'
,
'
?
'
);
break
;
break
;
case
3
:
case
3
:
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
break
;
break
;
case
4
:
case
4
:
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
average01
+
'
#
'
+
this
.
average02
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
average01
+
'
#
'
+
this
.
average02
);
break
;
break
;
case
5
:
case
5
:
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
weekday
+
'
L
'
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
weekday
+
'
L
'
);
break
;
break
;
case
6
:
case
6
:
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
checkboxString
);
break
;
break
;
}
}
},
},
// 根据互斥事件,更改radio的值
// 根据互斥事件,更改radio的值
// 周期两个值变化时
// 周期两个值变化时
cycleChange
()
{
cycleChange
()
{
if
(
this
.
radioValue
==
'
3
'
)
{
if
(
this
.
radioValue
==
'
3
'
)
{
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
cycleTotal
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
cycleTotal
);
}
}
},
},
// 平均两个值变化时
// 平均两个值变化时
averageChange
()
{
averageChange
()
{
if
(
this
.
radioValue
==
'
4
'
)
{
if
(
this
.
radioValue
==
'
4
'
)
{
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
averageTotal
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
averageTotal
);
}
}
},
},
// 最近工作日值变化时
// 最近工作日值变化时
weekdayChange
()
{
weekdayChange
()
{
if
(
this
.
radioValue
==
'
5
'
)
{
if
(
this
.
radioValue
==
'
5
'
)
{
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
weekday
+
'
L
'
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
weekday
+
'
L
'
);
}
}
},
},
// checkbox值变化时
// checkbox值变化时
checkboxChange
()
{
checkboxChange
()
{
if
(
this
.
radioValue
==
'
6
'
)
{
if
(
this
.
radioValue
==
'
6
'
)
{
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
week
'
,
this
.
checkboxString
);
}
}
},
},
},
},
watch
:
{
watch
:
{
"
radioValue
"
:
"
radioChange
"
,
"
radioValue
"
:
"
radioChange
"
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
weekdayCheck
'
:
'
weekdayChange
'
,
'
weekdayCheck
'
:
'
weekdayChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
,
},
},
computed
:
{
computed
:
{
// 计算两个周期值
// 计算两个周期值
cycleTotal
:
function
()
{
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
7
)
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
1
,
7
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
7
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
1
,
7
)
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
},
},
// 计算平均用到的值
// 计算平均用到的值
averageTotal
:
function
()
{
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
4
)
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
1
,
4
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
7
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
7
)
return
this
.
average01
+
'
#
'
+
this
.
average02
;
return
this
.
average01
+
'
#
'
+
this
.
average02
;
},
},
// 最近的工作日(格式)
// 最近的工作日(格式)
weekdayCheck
:
function
()
{
weekdayCheck
:
function
()
{
this
.
weekday
=
this
.
checkNum
(
this
.
weekday
,
1
,
7
)
this
.
weekday
=
this
.
checkNum
(
this
.
weekday
,
1
,
7
)
return
this
.
weekday
;
return
this
.
weekday
;
},
},
// 计算勾选的checkbox值合集
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
let
str
=
this
.
checkboxList
.
join
();
return
str
==
''
?
'
*
'
:
str
;
return
str
==
''
?
'
*
'
:
str
;
}
}
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
ruoyi-ui/src/components/Crontab/year.vue
View file @
4988b585
<
template
>
<
template
>
<el-form
size=
"small"
>
<el-form
size=
"small"
>
<el-form-item>
<el-form-item>
<el-radio
:label=
"1"
v-model=
'radioValue'
>
<el-radio
:label=
"1"
v-model=
'radioValue'
>
不填,允许的通配符[, - * /]
不填,允许的通配符[, - * /]
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
:label=
"2"
v-model=
'radioValue'
>
<el-radio
:label=
"2"
v-model=
'radioValue'
>
每年
每年
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
:label=
"3"
v-model=
'radioValue'
>
<el-radio
:label=
"3"
v-model=
'radioValue'
>
周期从
周期从
<el-input-number
v-model=
'cycle01'
:min=
'fullYear'
/>
-
<el-input-number
v-model=
'cycle01'
:min=
'fullYear'
/>
-
<el-input-number
v-model=
'cycle02'
:min=
'fullYear'
/>
<el-input-number
v-model=
'cycle02'
:min=
'fullYear'
/>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
:label=
"4"
v-model=
'radioValue'
>
<el-radio
:label=
"4"
v-model=
'radioValue'
>
从
从
<el-input-number
v-model=
'average01'
:min=
'fullYear'
/>
年开始,每
<el-input-number
v-model=
'average01'
:min=
'fullYear'
/>
年开始,每
<el-input-number
v-model=
'average02'
:min=
'fullYear'
/>
年执行一次
<el-input-number
v-model=
'average02'
:min=
'fullYear'
/>
年执行一次
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
<el-form-item>
<el-form-item>
<el-radio
:label=
"5"
v-model=
'radioValue'
>
<el-radio
:label=
"5"
v-model=
'radioValue'
>
指定
指定
<el-select
clearable
v-model=
"checkboxList"
placeholder=
"可多选"
multiple
>
<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-option
v-for=
"item in 9"
:key=
"item"
:value=
"item - 1 + fullYear"
:label=
"item -1 + fullYear"
/>
</el-select>
</el-select>
</el-radio>
</el-radio>
</el-form-item>
</el-form-item>
</el-form>
</el-form>
</
template
>
</
template
>
<
script
>
<
script
>
export
default
{
export
default
{
data
()
{
data
()
{
return
{
return
{
fullYear
:
0
,
fullYear
:
0
,
radioValue
:
1
,
radioValue
:
1
,
cycle01
:
0
,
cycle01
:
0
,
cycle02
:
0
,
cycle02
:
0
,
average01
:
0
,
average01
:
0
,
average02
:
1
,
average02
:
1
,
checkboxList
:
[],
checkboxList
:
[],
checkNum
:
this
.
$options
.
propsData
.
check
checkNum
:
this
.
$options
.
propsData
.
check
}
}
},
},
name
:
'
crontab-year
'
,
name
:
'
crontab-year
'
,
props
:
[
'
check
'
,
'
mouth
'
,
'
cron
'
],
props
:
[
'
check
'
,
'
month
'
,
'
cron
'
],
methods
:
{
methods
:
{
// 单选按钮值变化时
// 单选按钮值变化时
radioChange
()
{
radioChange
()
{
if
(
this
.
cron
.
mouth
===
'
*
'
)
{
if
(
this
.
cron
.
month
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
mouth
'
,
'
0
'
,
'
year
'
);
this
.
$emit
(
'
update
'
,
'
month
'
,
'
0
'
,
'
year
'
);
}
}
if
(
this
.
cron
.
day
===
'
*
'
)
{
if
(
this
.
cron
.
day
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
day
'
,
'
0
'
,
'
year
'
);
this
.
$emit
(
'
update
'
,
'
day
'
,
'
0
'
,
'
year
'
);
}
}
if
(
this
.
cron
.
hour
===
'
*
'
)
{
if
(
this
.
cron
.
hour
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
year
'
);
this
.
$emit
(
'
update
'
,
'
hour
'
,
'
0
'
,
'
year
'
);
}
}
if
(
this
.
cron
.
min
===
'
*
'
)
{
if
(
this
.
cron
.
min
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
year
'
);
this
.
$emit
(
'
update
'
,
'
min
'
,
'
0
'
,
'
year
'
);
}
}
if
(
this
.
cron
.
second
===
'
*
'
)
{
if
(
this
.
cron
.
second
===
'
*
'
)
{
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
year
'
);
this
.
$emit
(
'
update
'
,
'
second
'
,
'
0
'
,
'
year
'
);
}
}
switch
(
this
.
radioValue
)
{
switch
(
this
.
radioValue
)
{
case
1
:
case
1
:
this
.
$emit
(
'
update
'
,
'
year
'
,
''
);
this
.
$emit
(
'
update
'
,
'
year
'
,
''
);
break
;
break
;
case
2
:
case
2
:
this
.
$emit
(
'
update
'
,
'
year
'
,
'
*
'
);
this
.
$emit
(
'
update
'
,
'
year
'
,
'
*
'
);
break
;
break
;
case
3
:
case
3
:
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
cycle01
+
'
-
'
+
this
.
cycle02
);
break
;
break
;
case
4
:
case
4
:
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
average01
+
'
/
'
+
this
.
average02
);
break
;
break
;
case
5
:
case
5
:
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
checkboxString
);
break
;
break
;
}
}
},
},
// 周期两个值变化时
// 周期两个值变化时
cycleChange
()
{
cycleChange
()
{
if
(
this
.
radioValue
==
'
3
'
)
{
if
(
this
.
radioValue
==
'
3
'
)
{
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
cycleTotal
);
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
cycleTotal
);
}
}
},
},
// 平均两个值变化时
// 平均两个值变化时
averageChange
()
{
averageChange
()
{
if
(
this
.
radioValue
==
'
4
'
)
{
if
(
this
.
radioValue
==
'
4
'
)
{
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
averageTotal
);
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
averageTotal
);
}
}
},
},
// checkbox值变化时
// checkbox值变化时
checkboxChange
()
{
checkboxChange
()
{
if
(
this
.
radioValue
==
'
5
'
)
{
if
(
this
.
radioValue
==
'
5
'
)
{
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
checkboxString
);
this
.
$emit
(
'
update
'
,
'
year
'
,
this
.
checkboxString
);
}
}
}
}
},
},
watch
:
{
watch
:
{
"
radioValue
"
:
"
radioChange
"
,
"
radioValue
"
:
"
radioChange
"
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
cycleTotal
'
:
'
cycleChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
averageTotal
'
:
'
averageChange
'
,
'
checkboxString
'
:
'
checkboxChange
'
'
checkboxString
'
:
'
checkboxChange
'
},
},
computed
:
{
computed
:
{
// 计算两个周期值
// 计算两个周期值
cycleTotal
:
function
()
{
cycleTotal
:
function
()
{
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
this
.
fullYear
,
this
.
fullYear
+
100
)
this
.
cycle01
=
this
.
checkNum
(
this
.
cycle01
,
this
.
fullYear
,
this
.
fullYear
+
100
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
this
.
fullYear
+
1
,
this
.
fullYear
+
101
)
this
.
cycle02
=
this
.
checkNum
(
this
.
cycle02
,
this
.
fullYear
+
1
,
this
.
fullYear
+
101
)
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
return
this
.
cycle01
+
'
-
'
+
this
.
cycle02
;
},
},
// 计算平均用到的值
// 计算平均用到的值
averageTotal
:
function
()
{
averageTotal
:
function
()
{
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
this
.
fullYear
,
this
.
fullYear
+
100
)
this
.
average01
=
this
.
checkNum
(
this
.
average01
,
this
.
fullYear
,
this
.
fullYear
+
100
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
10
)
this
.
average02
=
this
.
checkNum
(
this
.
average02
,
1
,
10
)
return
this
.
average01
+
'
/
'
+
this
.
average02
;
return
this
.
average01
+
'
/
'
+
this
.
average02
;
},
},
// 计算勾选的checkbox值合集
// 计算勾选的checkbox值合集
checkboxString
:
function
()
{
checkboxString
:
function
()
{
let
str
=
this
.
checkboxList
.
join
();
let
str
=
this
.
checkboxList
.
join
();
return
str
;
return
str
;
}
}
},
},
mounted
:
function
()
{
mounted
:
function
()
{
// 仅获取当前年份
// 仅获取当前年份
this
.
fullYear
=
Number
(
new
Date
().
getFullYear
());
this
.
fullYear
=
Number
(
new
Date
().
getFullYear
());
}
}
}
}
</
script
>
</
script
>
\ No newline at end of file
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