Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
A
allCampaign
Overview
Overview
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
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Administrator
allCampaign
Commits
90aa1cad
Commit
90aa1cad
authored
Mar 11, 2020
by
Sweet Zhang
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
宝宝出生日期限制
parent
fecfa5b1
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
264 additions
and
24 deletions
+264
-24
yd-children-overall/css/LCalendar.css
+2
-0
yd-children-overall/css/style.css
+16
-5
yd-children-overall/index.html
+21
-11
yd-children-overall/js/LCalendar.js
+182
-0
yd-children-overall/js/base.js
+43
-8
No files found.
yd-children-overall/css/LCalendar.css
0 → 100644
View file @
90aa1cad
.gearDate
{
font-family
:
Helvetica
Neue
,
Helvetica
,
Arial
,
sans-serif
;
font-size
:
10px
;
background-color
:
rgba
(
0
,
0
,
0
,
.2
);
display
:
block
;
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
z-index
:
9900
;
overflow
:
hidden
;
-webkit-animation-fill-mode
:
both
;
animation-fill-mode
:
both
}
.date_ctrl
{
vertical-align
:
middle
;
background-color
:
#d5d8df
;
color
:
#000
;
margin
:
0
;
height
:
auto
;
width
:
100%
;
position
:
absolute
;
left
:
0
;
bottom
:
0
;
z-index
:
9901
;
overflow
:
hidden
;
-webkit-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
)}
.slideInUp
{
-webkit-animation
:
slideInUp
.3s
;
animation
:
slideInUp
.3s
}
@-webkit-keyframes
slideInUp
{
from
{
-webkit-transform
:
translate3d
(
0
,
100%
,
0
);
transform
:
translate3d
(
0
,
100%
,
0
)}
to
{
-webkit-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
)}}
@keyframes
slideInUp
{
from
{
-webkit-transform
:
translate3d
(
0
,
100%
,
0
);
transform
:
translate3d
(
0
,
100%
,
0
)}
to
{
-webkit-transform
:
translate3d
(
0
,
0
,
0
);
transform
:
translate3d
(
0
,
0
,
0
)}}
.ym_roll
,
.date_roll
,
.datetime_roll
,
.time_roll
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
-ms-flexbox
;
display
:
flex
;
width
:
100%
;
height
:
auto
;
overflow
:
hidden
;
background-color
:
transparent
;
-webkit-mask
:
-webkit-gradient
(
linear
,
0%
50%
,
0%
100%
,
from
(
#debb47
),
to
(
rgba
(
36
,
142
,
36
,
0
)));
-webkit-mask
:
-webkit-linear-gradient
(
top
,
#debb47
50%
,
rgba
(
36
,
142
,
36
,
0
))}
.ym_roll
>
div
,
.date_roll
>
div
,
.datetime_roll
>
div
,
.time_roll
>
div
{
font-size
:
2.3em
;
height
:
10em
;
float
:
left
;
background-color
:
transparent
;
position
:
relative
;
overflow
:
hidden
;
-webkit-box-flex
:
4
;
-webkit-flex
:
4
;
-ms-flex
:
4
;
flex
:
4
}
.ym_roll
>
div
.gear
,
.date_roll
>
div
.gear
,
.datetime_roll
>
div
.gear
,
.time_roll
>
div
.gear
{
width
:
100%
;
float
:
left
;
position
:
absolute
;
z-index
:
9902
;
margin-top
:
-4em
}
.date_roll_mask
{
-webkit-mask
:
-webkit-gradient
(
linear
,
0%
40%
,
0%
0%
,
from
(
#debb47
),
to
(
rgba
(
36
,
142
,
36
,
0
)));
-webkit-mask
:
-webkit-linear-gradient
(
bottom
,
#debb47
50%
,
rgba
(
36
,
142
,
36
,
0
));
padding
:
0
}
.date_roll
>
div
:nth-child
(
2
)
{
-webkit-box-flex
:
2
;
-webkit-flex
:
2
;
-ms-flex
:
2
;
flex
:
2
}
.date_roll
>
div
:nth-child
(
1
),
.datetime_roll
>
div
:nth-child
(
1
)
{
-webkit-box-flex
:
4
;
-webkit-flex
:
4
;
-ms-flex
:
4
;
flex
:
4
}
.datetime_roll
>
div
:first-child
{
-webkit-box-flex
:
6
;
-webkit-flex
:
6
;
-ms-flex
:
6
;
flex
:
6
}
.datetime_roll
>
div
:last-child
{
-webkit-box-flex
:
6
;
-webkit-flex
:
6
;
-ms-flex
:
6
;
flex
:
6
}
.date_grid
{
position
:
relative
;
top
:
4em
;
width
:
100%
;
height
:
2em
;
margin
:
0
;
box-sizing
:
border-box
;
z-index
:
0
;
border-top
:
1px
solid
#abaeb5
;
border-bottom
:
1px
solid
#abaeb5
}
.date_grid
>
div
{
color
:
#000
;
position
:
absolute
;
right
:
0
;
top
:
0
;
font-size
:
.8em
;
line-height
:
2.5em
}
.date_roll
>
div
:nth-child
(
3
)
.date_grid
>
div
{
left
:
42%
}
.datetime_roll
>
div
.date_grid
>
div
{
right
:
0
}
.datetime_roll
>
div
:first-child
.date_grid
>
div
{
left
:
auto
;
right
:
0%
}
.datetime_roll
>
div
:last-child
.date_grid
>
div
{
left
:
50%
}
.time_roll
>
div
:nth-child
(
1
)
.date_grid
>
div
{
right
:
1em
}
.ym_roll
>
div
:nth-child
(
1
)
.date_grid
>
div
{
right
:
.1em
}
.ym_roll
>
div
.date_grid
>
div
,
.time_roll
>
div
.date_grid
>
div
{
right
:
5em
}
.date_btn
{
color
:
#0575f2
;
font-size
:
1.6em
;
line-height
:
1em
;
text-align
:
center
;
padding
:
.8em
1em
}
.date_btn_box
:before
,
.date_btn_box
:after
{
content
:
''
;
position
:
absolute
;
height
:
1px
;
width
:
100%
;
display
:
block
;
background-color
:
#96979b
;
z-index
:
15
;
-webkit-transform
:
scaleY
(
.33
);
transform
:
scaleY
(
.33
)}
.date_btn_box
{
display
:
-webkit-box
;
display
:
-webkit-flex
;
display
:
-ms-flexbox
;
display
:
flex
;
-webkit-box-pack
:
justify
;
-webkit-justify-content
:
space-between
;
-ms-flex-pack
:
justify
;
justify-content
:
space-between
;
-webkit-box-align
:
stretch
;
-webkit-align-items
:
stretch
;
-ms-flex-align
:
stretch
;
align-items
:
stretch
;
background-color
:
#f1f2f4
;
position
:
relative
}
.date_btn_box
:before
{
left
:
0
;
top
:
0
;
-webkit-transform-origin
:
50%
20%
;
transform-origin
:
50%
20%
}
.date_btn_box
:after
{
left
:
0
;
bottom
:
0
;
-webkit-transform-origin
:
50%
70%
;
transform-origin
:
50%
70%
}
.date_roll
>
div
:nth-child
(
1
)
.gear
{
text-indent
:
20%
}
.date_roll
>
div
:nth-child
(
2
)
.gear
{
text-indent
:
-20%
}
.date_roll
>
div
:nth-child
(
3
)
.gear
{
text-indent
:
-55%
}
.datetime_roll
>
div
.gear
{
width
:
100%
;
text-indent
:
-25%
}
.datetime_roll
>
div
:first-child
.gear
{
text-indent
:
-10%
}
.datetime_roll
>
div
:last-child
.gear
{
text-indent
:
-50%
}
.ym_roll
>
div
.gear
,
.time_roll
>
div
.gear
{
width
:
100%
;
text-indent
:
-70%
}
.ym_roll
>
div
:nth-child
(
1
)
.gear
,
.time_roll
>
div
:nth-child
(
1
)
.gear
{
width
:
100%
;
text-indent
:
10%
}
.tooth
{
height
:
2em
;
line-height
:
2em
;
text-align
:
center
}
\ No newline at end of file
yd-children-overall/css/style.css
View file @
90aa1cad
...
@@ -32,12 +32,17 @@ html, body {
...
@@ -32,12 +32,17 @@ html, body {
}
}
.formInfo
input
{
.formInfo
input
{
display
:
block
;
width
:
100%
;
width
:
100%
;
height
:
30px
;
border
:
1px
solid
#dbdbdb
;
border
:
1px
solid
#dbdbdb
;
padding-left
:
15px
;
border-radius
:
3px
;
border-radius
:
3px
;
box-sizing
:
content-box
;
box-sizing
:
border-box
;
box-shadow
:
none
;
padding
:
8px
15px
;
height
:
35px
;
background
:
transparent
;
-webkit-appearance
:
none
;
line-height
:
1.42857143
;
}
}
.formInfo
>
h5
{
.formInfo
>
h5
{
...
@@ -117,12 +122,18 @@ html, body {
...
@@ -117,12 +122,18 @@ html, body {
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
position
:
absolute
;
position
:
absolute
;
top
:
46
%
;
top
:
65
%
;
left
:
0
;
left
:
0
;
right
:
0
;
right
:
0
;
}
}
.dialog
.closeBtn
{
.dialog
.eqrcode
,
.dialog
.icon
{
display
:
flex
;
justify-content
:
center
;
margin
:
8px
0
;
}
#closeBtn
{
border
:
1px
solid
#fff
;
border
:
1px
solid
#fff
;
border-radius
:
50%
;
border-radius
:
50%
;
width
:
50px
;
width
:
50px
;
...
...
yd-children-overall/index.html
View file @
90aa1cad
...
@@ -11,6 +11,7 @@
...
@@ -11,6 +11,7 @@
<link
rel=
"stylesheet"
href=
"./css/bootstrap.min.css"
>
<link
rel=
"stylesheet"
href=
"./css/bootstrap.min.css"
>
<link
rel=
"stylesheet"
href=
"./css/style.css"
>
<link
rel=
"stylesheet"
href=
"./css/style.css"
>
<link
rel=
"shortcut icon"
href=
"https://www.ydinsurance.cn/wp-content/uploads/2018/04/favicon.gif"
/>
<link
rel=
"shortcut icon"
href=
"https://www.ydinsurance.cn/wp-content/uploads/2018/04/favicon.gif"
/>
<link
rel=
"stylesheet"
type=
"text/css"
href=
"./css/LCalendar.css"
/>
<script>
<script>
var
_hmt
=
_hmt
||
[];
var
_hmt
=
_hmt
||
[];
(
function
()
{
(
function
()
{
...
@@ -36,16 +37,18 @@
...
@@ -36,16 +37,18 @@
<li>
<li>
<div>
出生日期
</div>
<div>
出生日期
</div>
<div>
<div>
<input
type=
"
date"
id=
"babyBirth"
>
<input
type=
"
text"
name=
"babyBirth"
id=
"babyBirth"
placeholder=
"宝宝的出生日期"
readonly=
"readonly"
/
>
</div>
</div>
</li>
</li>
<li>
<li>
<div>
宝宝性别
</div>
<div>
宝宝性别
</div>
<div
style=
"display: flex;align-items: center"
>
<div
style=
"display: flex;align-items: center"
>
<div
style=
"width:72px;height:30px;line-height: 30px;text-align: center;border-radius: 3px;border:1px solid #dbdbdb;color:#999;margin-right:10px;"
class=
"babyGender"
data-attr=
"男"
>
<div
style=
"width:72px;height:30px;line-height: 30px;text-align: center;border-radius: 3px;border:1px solid #dbdbdb;color:#999;margin-right:10px;"
class=
"babyGender"
data-attr=
"男"
>
男
男
</div>
</div>
<div
style=
"width:72px;height:30px;line-height: 30px;text-align: center;border-radius: 3px;border:1px solid #dbdbdb;color:#999"
class=
"babyGender"
data-attr=
"女"
>
<div
style=
"width:72px;height:30px;line-height: 30px;text-align: center;border-radius: 3px;border:1px solid #dbdbdb;color:#999"
class=
"babyGender"
data-attr=
"女"
>
女
女
</div>
</div>
</div>
</div>
...
@@ -59,14 +62,16 @@
...
@@ -59,14 +62,16 @@
<li>
<li>
<div>
手机号码
</div>
<div>
手机号码
</div>
<div>
<div>
<input
type=
"te
xt
"
placeholder=
"用于接收保费预测结果"
id=
"phone"
>
<input
type=
"te
l
"
placeholder=
"用于接收保费预测结果"
id=
"phone"
>
</div>
</div>
</li>
</li>
<li>
<li>
<div
style=
"visibility: hidden"
>
输验证码
</div>
<div
style=
"visibility: hidden"
>
输验证码
</div>
<div
style=
"position: relative;margin-top:-15px;"
>
<div
style=
"position: relative;margin-top:-15px;"
>
<input
type=
"tel"
placeholder=
"输入验证码"
style=
"margin-right: 10px;width: calc(100% - 90px);"
id=
"code"
>
<input
type=
"tel"
placeholder=
"输入验证码"
style=
"margin-right: 10px;width: calc(100% - 90px);"
<button
style=
"width:67px;font-size:12px;border-radius:3px;background:rgb(255,97,37);color:#fff;padding:0 5px;height:30px;line-height: 30px;box-sizing: content-box;border: none;"
id=
"codeBtn"
>
id=
"code"
>
<button
style=
"width:67px;font-size:12px;border-radius:3px;background:rgb(255,97,37);color:#fff;padding:0 5px;height:30px;line-height: 30px;box-sizing: content-box;border: none;"
id=
"codeBtn"
>
获取验证码
获取验证码
</button>
</button>
</div>
</div>
...
@@ -83,18 +88,22 @@
...
@@ -83,18 +88,22 @@
<!--弹窗START-->
<!--弹窗START-->
<div
class=
"dialog"
>
<div
class=
"dialog"
>
<div
class=
"content"
>
<div
class=
"content"
>
<div
class=
"icon"
></div>
<div
style=
"letter-spacing: 1px"
>
专业儿童保险规划师将在1个工作日内为您致电服务和微信联系,请您留意接听电话机微信添加好友信息。
</div>
<div>
专业儿童保险规划师将在1个工作日内为您致电服务和微信联系,请您留意接听电话机微信添加好友信息。
</div>
<div
class=
"eqrcode"
>
<div
class=
"eqrcode"
></div>
<div
style=
"width: 50%;"
>
<div>
关注“银盾保险在线”公众号,更多热销产品抢先了解。
</div>
<img
src=
"./images/mengge.jpg"
alt=
""
class=
"img-responsive"
>
</div>
</div>
<div
style=
"font-size: 12px;text-align: center;"
>
关注“银盾保险在线”公众号,更多热销产品抢先了解。
</div>
</div>
</div>
<div
class=
"closeContainer"
><span
class
=
"closeBtn"
>
X
</span></div>
<div
class=
"closeContainer"
><span
id
=
"closeBtn"
>
X
</span></div>
</div>
</div>
<!--弹窗END-->
<!--弹窗END-->
</div>
</div>
<script
src=
"https://res2.wx.qq.com/open/js/jweixin-1.4.0.js "
></script>
<script
src=
"https://res2.wx.qq.com/open/js/jweixin-1.4.0.js "
></script>
<script
src=
"./js/jquery.min.js"
></script>
<script
src=
"./js/jquery.min.js"
></script>
<script
src=
"./js/layer.js"
></script>
<script
src=
"./js/layer.js"
></script>
<script
src=
"./js/LCalendar.js"
type=
"text/javascript"
charset=
"utf-8"
></script>
<script
src=
"./js/base.js"
></script>
<script
src=
"./js/base.js"
></script>
</body>
</body>
</html>
</html>
\ No newline at end of file
yd-children-overall/js/LCalendar.js
0 → 100644
View file @
90aa1cad
/**
* Created by Sweet on 2020/3/11.
*/
window
.
LCalendar
=
(
function
(){
var
MobileCalendar
=
function
(){
this
.
gearDate
;
this
.
minY
=
1900
;
this
.
minM
=
1
;
this
.
minD
=
1
;
this
.
maxY
=
2099
;
this
.
maxM
=
12
;
this
.
maxD
=
31
;}
MobileCalendar
.
prototype
=
{
init
:
function
(
params
){
this
.
type
=
params
.
type
;
this
.
trigger
=
document
.
querySelector
(
params
.
trigger
);
if
(
this
.
trigger
.
getAttribute
(
"data-lcalendar"
)
!=
null
){
var
arr
=
this
.
trigger
.
getAttribute
(
"data-lcalendar"
).
split
(
','
);
var
minArr
=
arr
[
0
].
split
(
'-'
);
this
.
minY
=~~
minArr
[
0
];
this
.
minM
=~~
minArr
[
1
];
this
.
minD
=~~
minArr
[
2
];
var
maxArr
=
arr
[
1
].
split
(
'-'
);
this
.
maxY
=~~
maxArr
[
0
];
this
.
maxM
=~~
maxArr
[
1
];
this
.
maxD
=~~
maxArr
[
2
];}
if
(
params
.
minDate
){
var
minArr
=
params
.
minDate
.
split
(
'-'
);
this
.
minY
=~~
minArr
[
0
];
this
.
minM
=~~
minArr
[
1
];
this
.
minD
=~~
minArr
[
2
];}
if
(
params
.
maxDate
){
var
maxArr
=
params
.
maxDate
.
split
(
'-'
);
this
.
maxY
=~~
maxArr
[
0
];
this
.
maxM
=~~
maxArr
[
1
];
this
.
maxD
=~~
maxArr
[
2
];}
this
.
bindEvent
(
this
.
type
);},
bindEvent
:
function
(
type
){
var
_self
=
this
;
function
popupDate
(
e
){
_self
.
gearDate
=
document
.
createElement
(
"div"
);
_self
.
gearDate
.
className
=
"gearDate"
;
_self
.
gearDate
.
innerHTML
=
'<div class="date_ctrl slideInUp">'
+
'<div class="date_btn_box">'
+
'<div class="date_btn lcalendar_cancel">取消</div>'
+
'<div class="date_btn lcalendar_finish">确定</div>'
+
'</div>'
+
'<div class="date_roll_mask">'
+
'<div class="date_roll">'
+
'<div>'
+
'<div class="gear date_yy" data-datetype="date_yy"></div>'
+
'<div class="date_grid">'
+
'<div>年</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear date_mm" data-datetype="date_mm"></div>'
+
'<div class="date_grid">'
+
'<div>月</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear date_dd" data-datetype="date_dd"></div>'
+
'<div class="date_grid">'
+
'<div>日</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
;
document
.
body
.
appendChild
(
_self
.
gearDate
);
dateCtrlInit
();
var
lcalendar_cancel
=
_self
.
gearDate
.
querySelector
(
".lcalendar_cancel"
);
lcalendar_cancel
.
addEventListener
(
'touchstart'
,
closeMobileCalendar
);
var
lcalendar_finish
=
_self
.
gearDate
.
querySelector
(
".lcalendar_finish"
);
lcalendar_finish
.
addEventListener
(
'touchstart'
,
finishMobileDate
);
var
date_yy
=
_self
.
gearDate
.
querySelector
(
".date_yy"
);
var
date_mm
=
_self
.
gearDate
.
querySelector
(
".date_mm"
);
var
date_dd
=
_self
.
gearDate
.
querySelector
(
".date_dd"
);
date_yy
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_mm
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_dd
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_yy
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_mm
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_dd
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_yy
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
date_mm
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
date_dd
.
addEventListener
(
'touchend'
,
gearTouchEnd
);}
function
dateCtrlInit
(){
var
date
=
new
Date
();
var
dateArr
=
{
yy
:
date
.
getFullYear
(),
mm
:
date
.
getMonth
(),
dd
:
date
.
getDate
()
-
1
};
if
(
/^
\d{4}
-
\d{1,2}
-
\d{1,2}
$/
.
test
(
_self
.
trigger
.
value
)){
rs
=
_self
.
trigger
.
value
.
match
(
/
(
^|-
)\d{1,4}
/g
);
dateArr
.
yy
=
rs
[
0
]
-
_self
.
minY
;
dateArr
.
mm
=
rs
[
1
].
replace
(
/-/g
,
""
)
-
1
;
dateArr
.
dd
=
rs
[
2
].
replace
(
/-/g
,
""
)
-
1
;}
else
{
dateArr
.
yy
=
dateArr
.
yy
-
_self
.
minY
;}
_self
.
gearDate
.
querySelector
(
".date_yy"
).
setAttribute
(
"val"
,
dateArr
.
yy
);
_self
.
gearDate
.
querySelector
(
".date_mm"
).
setAttribute
(
"val"
,
dateArr
.
mm
);
_self
.
gearDate
.
querySelector
(
".date_dd"
).
setAttribute
(
"val"
,
dateArr
.
dd
);
setDateGearTooth
();}
function
popupYM
(
e
){
_self
.
gearDate
=
document
.
createElement
(
"div"
);
_self
.
gearDate
.
className
=
"gearDate"
;
_self
.
gearDate
.
innerHTML
=
'<div class="date_ctrl slideInUp">'
+
'<div class="date_btn_box">'
+
'<div class="date_btn lcalendar_cancel">取消</div>'
+
'<div class="date_btn lcalendar_finish">确定</div>'
+
'</div>'
+
'<div class="date_roll_mask">'
+
'<div class="ym_roll">'
+
'<div>'
+
'<div class="gear date_yy" data-datetype="date_yy"></div>'
+
'<div class="date_grid">'
+
'<div>年</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear date_mm" data-datetype="date_mm"></div>'
+
'<div class="date_grid">'
+
'<div>月</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
;
document
.
body
.
appendChild
(
_self
.
gearDate
);
ymCtrlInit
();
var
lcalendar_cancel
=
_self
.
gearDate
.
querySelector
(
".lcalendar_cancel"
);
lcalendar_cancel
.
addEventListener
(
'touchstart'
,
closeMobileCalendar
);
var
lcalendar_finish
=
_self
.
gearDate
.
querySelector
(
".lcalendar_finish"
);
lcalendar_finish
.
addEventListener
(
'touchstart'
,
finishMobileYM
);
var
date_yy
=
_self
.
gearDate
.
querySelector
(
".date_yy"
);
var
date_mm
=
_self
.
gearDate
.
querySelector
(
".date_mm"
);
date_yy
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_mm
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_yy
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_mm
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_yy
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
date_mm
.
addEventListener
(
'touchend'
,
gearTouchEnd
);}
function
ymCtrlInit
(){
var
date
=
new
Date
();
var
dateArr
=
{
yy
:
date
.
getFullYear
(),
mm
:
date
.
getMonth
()};
if
(
/^
\d{4}
-
\d{1,2}
$/
.
test
(
_self
.
trigger
.
value
)){
rs
=
_self
.
trigger
.
value
.
match
(
/
(
^|-
)\d{1,4}
/g
);
dateArr
.
yy
=
rs
[
0
]
-
_self
.
minY
;
dateArr
.
mm
=
rs
[
1
].
replace
(
/-/g
,
""
)
-
1
;}
else
{
dateArr
.
yy
=
dateArr
.
yy
-
_self
.
minY
;}
_self
.
gearDate
.
querySelector
(
".date_yy"
).
setAttribute
(
"val"
,
dateArr
.
yy
);
_self
.
gearDate
.
querySelector
(
".date_mm"
).
setAttribute
(
"val"
,
dateArr
.
mm
);
setDateGearTooth
();}
function
popupDateTime
(
e
){
_self
.
gearDate
=
document
.
createElement
(
"div"
);
_self
.
gearDate
.
className
=
"gearDatetime"
;
_self
.
gearDate
.
innerHTML
=
'<div class="date_ctrl slideInUp">'
+
'<div class="date_btn_box">'
+
'<div class="date_btn lcalendar_cancel">取消</div>'
+
'<div class="date_btn lcalendar_finish">确定</div>'
+
'</div>'
+
'<div class="date_roll_mask">'
+
'<div class="datetime_roll">'
+
'<div>'
+
'<div class="gear date_yy" data-datetype="date_yy"></div>'
+
'<div class="date_grid">'
+
'<div>年</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear date_mm" data-datetype="date_mm"></div>'
+
'<div class="date_grid">'
+
'<div>月</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear date_dd" data-datetype="date_dd"></div>'
+
'<div class="date_grid">'
+
'<div>日</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear time_hh" data-datetype="time_hh"></div>'
+
'<div class="date_grid">'
+
'<div>时</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear time_mm" data-datetype="time_mm"></div>'
+
'<div class="date_grid">'
+
'<div>分</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
;
document
.
body
.
appendChild
(
_self
.
gearDate
);
dateTimeCtrlInit
();
var
lcalendar_cancel
=
_self
.
gearDate
.
querySelector
(
".lcalendar_cancel"
);
lcalendar_cancel
.
addEventListener
(
'touchstart'
,
closeMobileCalendar
);
var
lcalendar_finish
=
_self
.
gearDate
.
querySelector
(
".lcalendar_finish"
);
lcalendar_finish
.
addEventListener
(
'touchstart'
,
finishMobileDateTime
);
var
date_yy
=
_self
.
gearDate
.
querySelector
(
".date_yy"
);
var
date_mm
=
_self
.
gearDate
.
querySelector
(
".date_mm"
);
var
date_dd
=
_self
.
gearDate
.
querySelector
(
".date_dd"
);
var
time_hh
=
_self
.
gearDate
.
querySelector
(
".time_hh"
);
var
time_mm
=
_self
.
gearDate
.
querySelector
(
".time_mm"
);
date_yy
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_mm
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_dd
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
time_hh
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
time_mm
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
date_yy
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_mm
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_dd
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
time_hh
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
time_mm
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
date_yy
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
date_mm
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
date_dd
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
time_hh
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
time_mm
.
addEventListener
(
'touchend'
,
gearTouchEnd
);}
function
dateTimeCtrlInit
(){
var
date
=
new
Date
();
var
dateArr
=
{
yy
:
date
.
getFullYear
(),
mm
:
date
.
getMonth
(),
dd
:
date
.
getDate
()
-
1
,
hh
:
date
.
getHours
(),
mi
:
date
.
getMinutes
()};
if
(
/^
\d{4}
-
\d{1,2}
-
\d{1,2}\s\d{2}
:
\d{2}
$/
.
test
(
_self
.
trigger
.
value
)){
rs
=
_self
.
trigger
.
value
.
match
(
/
(
^|-|
\s
|:
)\d{1,4}
/g
);
dateArr
.
yy
=
rs
[
0
]
-
_self
.
minY
;
dateArr
.
mm
=
rs
[
1
].
replace
(
/-/g
,
""
)
-
1
;
dateArr
.
dd
=
rs
[
2
].
replace
(
/-/g
,
""
)
-
1
;
dateArr
.
hh
=
parseInt
(
rs
[
3
].
replace
(
/
\s
0
?
/g
,
""
));
dateArr
.
mi
=
parseInt
(
rs
[
4
].
replace
(
/:0
?
/g
,
""
));}
else
{
dateArr
.
yy
=
dateArr
.
yy
-
_self
.
minY
;}
_self
.
gearDate
.
querySelector
(
".date_yy"
).
setAttribute
(
"val"
,
dateArr
.
yy
);
_self
.
gearDate
.
querySelector
(
".date_mm"
).
setAttribute
(
"val"
,
dateArr
.
mm
);
_self
.
gearDate
.
querySelector
(
".date_dd"
).
setAttribute
(
"val"
,
dateArr
.
dd
);
setDateGearTooth
();
_self
.
gearDate
.
querySelector
(
".time_hh"
).
setAttribute
(
"val"
,
dateArr
.
hh
);
_self
.
gearDate
.
querySelector
(
".time_mm"
).
setAttribute
(
"val"
,
dateArr
.
mi
);
setTimeGearTooth
();}
function
popupTime
(
e
){
_self
.
gearDate
=
document
.
createElement
(
"div"
);
_self
.
gearDate
.
className
=
"gearDate"
;
_self
.
gearDate
.
innerHTML
=
'<div class="date_ctrl slideInUp">'
+
'<div class="date_btn_box">'
+
'<div class="date_btn lcalendar_cancel">取消</div>'
+
'<div class="date_btn lcalendar_finish">确定</div>'
+
'</div>'
+
'<div class="date_roll_mask">'
+
'<div class="time_roll">'
+
'<div>'
+
'<div class="gear time_hh" data-datetype="time_hh"></div>'
+
'<div class="date_grid">'
+
'<div>时</div>'
+
'</div>'
+
'</div>'
+
'<div>'
+
'<div class="gear time_mm" data-datetype="time_mm"></div>'
+
'<div class="date_grid">'
+
'<div>分</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
+
'</div>'
;
document
.
body
.
appendChild
(
_self
.
gearDate
);
timeCtrlInit
();
var
lcalendar_cancel
=
_self
.
gearDate
.
querySelector
(
".lcalendar_cancel"
);
lcalendar_cancel
.
addEventListener
(
'touchstart'
,
closeMobileCalendar
);
var
lcalendar_finish
=
_self
.
gearDate
.
querySelector
(
".lcalendar_finish"
);
lcalendar_finish
.
addEventListener
(
'touchstart'
,
finishMobileTime
);
var
time_hh
=
_self
.
gearDate
.
querySelector
(
".time_hh"
);
var
time_mm
=
_self
.
gearDate
.
querySelector
(
".time_mm"
);
time_hh
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
time_mm
.
addEventListener
(
'touchstart'
,
gearTouchStart
);
time_hh
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
time_mm
.
addEventListener
(
'touchmove'
,
gearTouchMove
);
time_hh
.
addEventListener
(
'touchend'
,
gearTouchEnd
);
time_mm
.
addEventListener
(
'touchend'
,
gearTouchEnd
);}
function
timeCtrlInit
(){
var
d
=
new
Date
();
var
e
=
{
hh
:
d
.
getHours
(),
mm
:
d
.
getMinutes
()};
if
(
/^
\d{2}
:
\d{2}
$/
.
test
(
_self
.
trigger
.
value
)){
rs
=
_self
.
trigger
.
value
.
match
(
/
(
^|:
)\d{2}
/g
);
e
.
hh
=
parseInt
(
rs
[
0
].
replace
(
/^0
?
/g
,
""
));
e
.
mm
=
parseInt
(
rs
[
1
].
replace
(
/:0
?
/g
,
""
))}
_self
.
gearDate
.
querySelector
(
".time_hh"
).
setAttribute
(
"val"
,
e
.
hh
);
_self
.
gearDate
.
querySelector
(
".time_mm"
).
setAttribute
(
"val"
,
e
.
mm
);
setTimeGearTooth
();}
function
setDateGearTooth
(){
var
passY
=
_self
.
maxY
-
_self
.
minY
+
1
;
var
date_yy
=
_self
.
gearDate
.
querySelector
(
".date_yy"
);
var
itemStr
=
""
;
if
(
date_yy
&&
date_yy
.
getAttribute
(
"val"
)){
var
yyVal
=
parseInt
(
date_yy
.
getAttribute
(
"val"
));
for
(
var
p
=
0
;
p
<=
passY
-
1
;
p
++
){
itemStr
+=
"<div class='tooth'>"
+
(
_self
.
minY
+
p
)
+
"</div>"
;}
date_yy
.
innerHTML
=
itemStr
;
var
top
=
Math
.
floor
(
parseFloat
(
date_yy
.
getAttribute
(
'top'
)));
if
(
!
isNaN
(
top
)){
top
%
2
==
0
?(
top
=
top
):(
top
=
top
+
1
);
top
>
8
&&
(
top
=
8
);
var
minTop
=
8
-
(
passY
-
1
)
*
2
;
top
<
minTop
&&
(
top
=
minTop
);
date_yy
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
top
+
'em,0)'
;
date_yy
.
setAttribute
(
'top'
,
top
+
'em'
);
yyVal
=
Math
.
abs
(
top
-
8
)
/
2
;
date_yy
.
setAttribute
(
"val"
,
yyVal
);}
else
{
date_yy
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
(
8
-
yyVal
*
2
)
+
'em,0)'
;
date_yy
.
setAttribute
(
'top'
,
8
-
yyVal
*
2
+
'em'
);}}
else
{
return
;}
var
date_mm
=
_self
.
gearDate
.
querySelector
(
".date_mm"
);
if
(
date_mm
&&
date_mm
.
getAttribute
(
"val"
)){
itemStr
=
""
;
var
mmVal
=
parseInt
(
date_mm
.
getAttribute
(
"val"
));
var
maxM
=
11
;
var
minM
=
0
;
if
(
yyVal
==
passY
-
1
){
maxM
=
_self
.
maxM
-
1
;}
if
(
yyVal
==
0
){
minM
=
_self
.
minM
-
1
;}
for
(
var
p
=
0
;
p
<
maxM
-
minM
+
1
;
p
++
){
itemStr
+=
"<div class='tooth'>"
+
(
minM
+
p
+
1
)
+
"</div>"
;}
date_mm
.
innerHTML
=
itemStr
;
if
(
mmVal
>
maxM
){
mmVal
=
maxM
;
date_mm
.
setAttribute
(
"val"
,
mmVal
);}
else
if
(
mmVal
<
minM
){
mmVal
=
maxM
;
date_mm
.
setAttribute
(
"val"
,
mmVal
);}
date_mm
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
(
8
-
(
mmVal
-
minM
)
*
2
)
+
'em,0)'
;
date_mm
.
setAttribute
(
'top'
,
8
-
(
mmVal
-
minM
)
*
2
+
'em'
);}
else
{
return
;}
var
date_dd
=
_self
.
gearDate
.
querySelector
(
".date_dd"
);
if
(
date_dd
&&
date_dd
.
getAttribute
(
"val"
)){
itemStr
=
""
;
var
ddVal
=
parseInt
(
date_dd
.
getAttribute
(
"val"
));
var
maxMonthDays
=
calcDays
(
yyVal
,
mmVal
);
var
maxD
=
maxMonthDays
-
1
;
var
minD
=
0
;
if
(
yyVal
==
passY
-
1
&&
_self
.
maxM
==
mmVal
+
1
){
maxD
=
_self
.
maxD
-
1
;}
if
(
yyVal
==
0
&&
_self
.
minM
==
mmVal
+
1
){
minD
=
_self
.
minD
-
1
;}
for
(
var
p
=
0
;
p
<
maxD
-
minD
+
1
;
p
++
){
itemStr
+=
"<div class='tooth'>"
+
(
minD
+
p
+
1
)
+
"</div>"
;}
date_dd
.
innerHTML
=
itemStr
;
if
(
ddVal
>
maxD
){
ddVal
=
maxD
;
date_dd
.
setAttribute
(
"val"
,
ddVal
);}
else
if
(
ddVal
<
minD
){
ddVal
=
minD
;
date_dd
.
setAttribute
(
"val"
,
ddVal
);}
date_dd
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
(
8
-
(
ddVal
-
minD
)
*
2
)
+
'em,0)'
;
date_dd
.
setAttribute
(
'top'
,
8
-
(
ddVal
-
minD
)
*
2
+
'em'
);}
else
{
return
;}}
function
setTimeGearTooth
(){
var
time_hh
=
_self
.
gearDate
.
querySelector
(
".time_hh"
);
if
(
time_hh
&&
time_hh
.
getAttribute
(
"val"
)){
var
i
=
""
;
var
hhVal
=
parseInt
(
time_hh
.
getAttribute
(
"val"
));
for
(
var
g
=
0
;
g
<=
23
;
g
++
){
i
+=
"<div class='tooth'>"
+
g
+
"</div>"
;}
time_hh
.
innerHTML
=
i
;
time_hh
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
(
8
-
hhVal
*
2
)
+
'em,0)'
;
time_hh
.
setAttribute
(
'top'
,
8
-
hhVal
*
2
+
'em'
);}
else
{
return
}
var
time_mm
=
_self
.
gearDate
.
querySelector
(
".time_mm"
);
if
(
time_mm
&&
time_mm
.
getAttribute
(
"val"
)){
var
i
=
""
;
var
mmVal
=
parseInt
(
time_mm
.
getAttribute
(
"val"
));
for
(
var
g
=
0
;
g
<=
59
;
g
++
){
i
+=
"<div class='tooth'>"
+
g
+
"</div>"
;}
time_mm
.
innerHTML
=
i
;
time_mm
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
(
8
-
mmVal
*
2
)
+
'em,0)'
;
time_mm
.
setAttribute
(
'top'
,
8
-
mmVal
*
2
+
'em'
);}
else
{
return
}}
function
calcDays
(
year
,
month
){
if
(
month
==
1
){
year
+=
_self
.
minY
;
if
((
year
%
4
==
0
&&
year
%
100
!=
0
)
||
(
year
%
400
==
0
&&
year
%
4000
!=
0
)){
return
29
;}
else
{
return
28
;}}
else
{
if
(
month
==
3
||
month
==
5
||
month
==
8
||
month
==
10
){
return
30
;}
else
{
return
31
;}}}
function
gearTouchStart
(
e
){
e
.
preventDefault
();
var
target
=
e
.
target
;
while
(
true
){
if
(
!
target
.
classList
.
contains
(
"gear"
)){
target
=
target
.
parentElement
;}
else
{
break
}}
clearInterval
(
target
[
"int_"
+
target
.
id
]);
target
[
"old_"
+
target
.
id
]
=
e
.
targetTouches
[
0
].
screenY
;
target
[
"o_t_"
+
target
.
id
]
=
(
new
Date
()).
getTime
();
var
top
=
target
.
getAttribute
(
'top'
);
if
(
top
){
target
[
"o_d_"
+
target
.
id
]
=
parseFloat
(
top
.
replace
(
/em/g
,
""
));}
else
{
target
[
"o_d_"
+
target
.
id
]
=
0
;}
target
.
style
.
webkitTransitionDuration
=
target
.
style
.
transitionDuration
=
'0ms'
;}
function
gearTouchMove
(
e
){
e
.
preventDefault
();
var
target
=
e
.
target
;
while
(
true
){
if
(
!
target
.
classList
.
contains
(
"gear"
)){
target
=
target
.
parentElement
;}
else
{
break
}}
target
[
"new_"
+
target
.
id
]
=
e
.
targetTouches
[
0
].
screenY
;
target
[
"n_t_"
+
target
.
id
]
=
(
new
Date
()).
getTime
();
var
f
=
(
target
[
"new_"
+
target
.
id
]
-
target
[
"old_"
+
target
.
id
])
*
30
/
window
.
innerHeight
;
target
[
"pos_"
+
target
.
id
]
=
target
[
"o_d_"
+
target
.
id
]
+
f
;
target
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
target
[
"pos_"
+
target
.
id
]
+
'em,0)'
;
target
.
setAttribute
(
'top'
,
target
[
"pos_"
+
target
.
id
]
+
'em'
);
if
(
e
.
targetTouches
[
0
].
screenY
<
1
){
gearTouchEnd
(
e
);};}
function
gearTouchEnd
(
e
){
e
.
preventDefault
();
var
target
=
e
.
target
;
while
(
true
){
if
(
!
target
.
classList
.
contains
(
"gear"
)){
target
=
target
.
parentElement
;}
else
{
break
;}}
var
flag
=
(
target
[
"new_"
+
target
.
id
]
-
target
[
"old_"
+
target
.
id
])
/
(
target
[
"n_t_"
+
target
.
id
]
-
target
[
"o_t_"
+
target
.
id
]);
if
(
Math
.
abs
(
flag
)
<=
0.2
){
target
[
"spd_"
+
target
.
id
]
=
(
flag
<
0
?
-
0.08
:
0.08
);}
else
{
if
(
Math
.
abs
(
flag
)
<=
0.5
){
target
[
"spd_"
+
target
.
id
]
=
(
flag
<
0
?
-
0.16
:
0.16
);}
else
{
target
[
"spd_"
+
target
.
id
]
=
flag
/
2
;}}
if
(
!
target
[
"pos_"
+
target
.
id
]){
target
[
"pos_"
+
target
.
id
]
=
0
;}
rollGear
(
target
);}
function
rollGear
(
target
){
var
d
=
0
;
var
stopGear
=
false
;
function
setDuration
(){
target
.
style
.
webkitTransitionDuration
=
target
.
style
.
transitionDuration
=
'200ms'
;
stopGear
=
true
;}
var
passY
=
_self
.
maxY
-
_self
.
minY
+
1
;
clearInterval
(
target
[
"int_"
+
target
.
id
]);
target
[
"int_"
+
target
.
id
]
=
setInterval
(
function
(){
var
pos
=
target
[
"pos_"
+
target
.
id
];
var
speed
=
target
[
"spd_"
+
target
.
id
]
*
Math
.
exp
(
-
0.03
*
d
);
pos
+=
speed
;
if
(
Math
.
abs
(
speed
)
>
0.1
){}
else
{
var
b
=
Math
.
round
(
pos
/
2
)
*
2
;
pos
=
b
;
setDuration
();}
if
(
pos
>
8
){
pos
=
8
;
setDuration
();}
switch
(
target
.
dataset
.
datetype
){
case
"date_yy"
:
var
minTop
=
8
-
(
passY
-
1
)
*
2
;
if
(
pos
<
minTop
){
pos
=
minTop
;
setDuration
();}
if
(
stopGear
){
var
gearVal
=
Math
.
abs
(
pos
-
8
)
/
2
;
setGear
(
target
,
gearVal
);
clearInterval
(
target
[
"int_"
+
target
.
id
]);}
break
;
case
"date_mm"
:
var
date_yy
=
_self
.
gearDate
.
querySelector
(
".date_yy"
);
var
yyVal
=
parseInt
(
date_yy
.
getAttribute
(
"val"
));
var
maxM
=
11
;
var
minM
=
0
;
if
(
yyVal
==
passY
-
1
){
maxM
=
_self
.
maxM
-
1
;}
if
(
yyVal
==
0
){
minM
=
_self
.
minM
-
1
;}
var
minTop
=
8
-
(
maxM
-
minM
)
*
2
;
if
(
pos
<
minTop
){
pos
=
minTop
;
setDuration
();}
if
(
stopGear
){
var
gearVal
=
Math
.
abs
(
pos
-
8
)
/
2
+
minM
;
setGear
(
target
,
gearVal
);
clearInterval
(
target
[
"int_"
+
target
.
id
]);}
break
;
case
"date_dd"
:
var
date_yy
=
_self
.
gearDate
.
querySelector
(
".date_yy"
);
var
date_mm
=
_self
.
gearDate
.
querySelector
(
".date_mm"
);
var
yyVal
=
parseInt
(
date_yy
.
getAttribute
(
"val"
));
var
mmVal
=
parseInt
(
date_mm
.
getAttribute
(
"val"
));
var
maxMonthDays
=
calcDays
(
yyVal
,
mmVal
);
var
maxD
=
maxMonthDays
-
1
;
var
minD
=
0
;
if
(
yyVal
==
passY
-
1
&&
_self
.
maxM
==
mmVal
+
1
){
maxD
=
_self
.
maxD
-
1
;}
if
(
yyVal
==
0
&&
_self
.
minM
==
mmVal
+
1
){
minD
=
_self
.
minD
-
1
;}
var
minTop
=
8
-
(
maxD
-
minD
)
*
2
;
if
(
pos
<
minTop
){
pos
=
minTop
;
setDuration
();}
if
(
stopGear
){
var
gearVal
=
Math
.
abs
(
pos
-
8
)
/
2
+
minD
;
setGear
(
target
,
gearVal
);
clearInterval
(
target
[
"int_"
+
target
.
id
]);}
break
;
case
"time_hh"
:
if
(
pos
<-
38
){
pos
=-
38
;
setDuration
();}
if
(
stopGear
){
var
gearVal
=
Math
.
abs
(
pos
-
8
)
/
2
;
setGear
(
target
,
gearVal
);
clearInterval
(
target
[
"int_"
+
target
.
id
]);}
break
;
case
"time_mm"
:
if
(
pos
<-
110
){
pos
=-
110
;
setDuration
();}
if
(
stopGear
){
var
gearVal
=
Math
.
abs
(
pos
-
8
)
/
2
;
setGear
(
target
,
gearVal
);
clearInterval
(
target
[
"int_"
+
target
.
id
]);}
break
;
default
:}
target
[
"pos_"
+
target
.
id
]
=
pos
;
target
.
style
[
"-webkit-transform"
]
=
'translate3d(0,'
+
pos
+
'em,0)'
;
target
.
setAttribute
(
'top'
,
pos
+
'em'
);
d
++
;},
30
);}
function
setGear
(
target
,
val
){
val
=
Math
.
round
(
val
);
target
.
setAttribute
(
"val"
,
val
);
if
(
/date/
.
test
(
target
.
dataset
.
datetype
)){
setDateGearTooth
();}
else
{
setTimeGearTooth
();}}
function
closeMobileCalendar
(
e
){
e
.
preventDefault
();
var
evt
;
try
{
evt
=
new
CustomEvent
(
'input'
);}
catch
(
e
){
evt
=
document
.
createEvent
(
'Event'
);
evt
.
initEvent
(
'input'
,
true
,
true
);}
_self
.
trigger
.
dispatchEvent
(
evt
);
document
.
body
.
removeChild
(
_self
.
gearDate
);
_self
.
gearDate
=
null
;}
function
finishMobileDate
(
e
){
var
passY
=
_self
.
maxY
-
_self
.
minY
+
1
;
var
date_yy
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_yy"
).
getAttribute
(
"val"
)));
var
date_mm
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_mm"
).
getAttribute
(
"val"
)))
+
1
;
date_mm
=
date_mm
>
9
?
date_mm
:
'0'
+
date_mm
;
var
date_dd
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_dd"
).
getAttribute
(
"val"
)))
+
1
;
date_dd
=
date_dd
>
9
?
date_dd
:
'0'
+
date_dd
;
_self
.
trigger
.
value
=
(
date_yy
%
passY
+
_self
.
minY
)
+
"-"
+
date_mm
+
"-"
+
date_dd
;
closeMobileCalendar
(
e
);}
function
finishMobileYM
(
e
){
var
passY
=
_self
.
maxY
-
_self
.
minY
+
1
;
var
date_yy
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_yy"
).
getAttribute
(
"val"
)));
var
date_mm
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_mm"
).
getAttribute
(
"val"
)))
+
1
;
date_mm
=
date_mm
>
9
?
date_mm
:
'0'
+
date_mm
;
_self
.
trigger
.
value
=
(
date_yy
%
passY
+
_self
.
minY
)
+
"-"
+
date_mm
;
closeMobileCalendar
(
e
);}
function
finishMobileDateTime
(
e
){
var
passY
=
_self
.
maxY
-
_self
.
minY
+
1
;
var
date_yy
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_yy"
).
getAttribute
(
"val"
)));
var
date_mm
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_mm"
).
getAttribute
(
"val"
)))
+
1
;
date_mm
=
date_mm
>
9
?
date_mm
:
'0'
+
date_mm
;
var
date_dd
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".date_dd"
).
getAttribute
(
"val"
)))
+
1
;
date_dd
=
date_dd
>
9
?
date_dd
:
'0'
+
date_dd
;
var
time_hh
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".time_hh"
).
getAttribute
(
"val"
)));
time_hh
=
time_hh
>
9
?
time_hh
:
'0'
+
time_hh
;
var
time_mm
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".time_mm"
).
getAttribute
(
"val"
)));
time_mm
=
time_mm
>
9
?
time_mm
:
'0'
+
time_mm
;
_self
.
trigger
.
value
=
(
date_yy
%
passY
+
_self
.
minY
)
+
"-"
+
date_mm
+
"-"
+
date_dd
+
" "
+
(
time_hh
.
length
<
2
?
"0"
:
""
)
+
time_hh
+
(
time_mm
.
length
<
2
?
":0"
:
":"
)
+
time_mm
;
closeMobileCalendar
(
e
);}
function
finishMobileTime
(
e
){
var
time_hh
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".time_hh"
).
getAttribute
(
"val"
)));
time_hh
=
time_hh
>
9
?
time_hh
:
'0'
+
time_hh
;
var
time_mm
=
parseInt
(
Math
.
round
(
_self
.
gearDate
.
querySelector
(
".time_mm"
).
getAttribute
(
"val"
)));
time_mm
=
time_mm
>
9
?
time_mm
:
'0'
+
time_mm
;
_self
.
trigger
.
value
=
(
time_hh
.
length
<
2
?
"0"
:
""
)
+
time_hh
+
(
time_mm
.
length
<
2
?
":0"
:
":"
)
+
time_mm
;
closeMobileCalendar
(
e
);}
_self
.
trigger
.
addEventListener
(
'click'
,{
"ym"
:
popupYM
,
"date"
:
popupDate
,
"datetime"
:
popupDateTime
,
"time"
:
popupTime
}[
type
]);}}
return
MobileCalendar
;})()
\ No newline at end of file
yd-children-overall/js/base.js
View file @
90aa1cad
...
@@ -10,7 +10,14 @@ $(function () {
...
@@ -10,7 +10,14 @@ $(function () {
name
:
''
,
name
:
''
,
babyGender
:
''
,
babyGender
:
''
,
babyBirth
:
''
babyBirth
:
''
}
};
var
calendar
=
new
LCalendar
();
calendar
.
init
({
'trigger'
:
'#babyBirth'
,
//标签id
'type'
:
'date'
,
//date 调出日期选择 datetime 调出日期时间选择 time 调出时间选择 ym 调出年月选择,
'minDate'
:
(
new
Date
().
getFullYear
()
-
19
)
+
'-'
+
(
new
Date
().
getMonth
()
+
1
)
+
'-'
+
(
new
Date
().
getDate
()
+
1
),
//最小日期
'maxDate'
:
(
new
Date
().
getFullYear
())
+
'-'
+
(
new
Date
().
getMonth
()
+
1
)
+
'-'
+
new
Date
().
getDate
()
//最大日期
});
const
REG_CODE
=
/^
(
1
)\d{10}
$/
;
const
REG_CODE
=
/^
(
1
)\d{10}
$/
;
const
REG_NAME
=
/
(
^
[\u
4e00-
\u
9fa5
]{1}[\u
4e00-
\u
9fa5
\.
·。
]{0,48}[\u
4e00-
\u
9fa5
]{1}
$
)
|
(
^
[
a-zA-Z
]{1}[
a-zA-Z
\s]{0,48}[
a-zA-Z
]{1}
$
)
/
;
const
REG_NAME
=
/
(
^
[\u
4e00-
\u
9fa5
]{1}[\u
4e00-
\u
9fa5
\.
·。
]{0,48}[\u
4e00-
\u
9fa5
]{1}
$
)
|
(
^
[
a-zA-Z
]{1}[
a-zA-Z
\s]{0,48}[
a-zA-Z
]{1}
$
)
/
;
// $("#phone,#name,#code").blur(function () {
// $("#phone,#name,#code").blur(function () {
...
@@ -206,14 +213,38 @@ $(function () {
...
@@ -206,14 +213,38 @@ $(function () {
babyGender
();
babyGender
();
function
babyGender
()
{
function
babyGender
()
{
$
(
'.babyGender'
).
click
(
function
(
event
)
{
$
(
'.babyGender'
).
click
(
function
(
event
)
{
// console.log(event)
param
.
babyGender
=
event
.
currentTarget
.
dataset
.
attr
;
// param.babyGender = event.currentTarget.dataset.attr;
$
(
this
).
addClass
(
"actived"
).
siblings
().
removeClass
(
"actived"
);
// event.currentTarget
$
(
'.babyGender'
).
addClass
()
})
})
}
}
// 设定宝宝出生日期的最大日期
setMaxDate
();
function
setMaxDate
()
{
//得到当前时间
var
date_now
=
new
Date
();
//得到当前年份
var
year
=
date_now
.
getFullYear
();
//得到当前月份
//注:
// 1:js中获取Date中的month时,会比当前月份少一个月,所以这里需要先加一
// 2: 判断当前月份是否小于10,如果小于,那么就在月份的前面加一个 '0' , 如果大于,就显示当前月份
var
month
=
date_now
.
getMonth
()
+
1
<
10
?
"0"
+
(
date_now
.
getMonth
()
+
1
)
:
(
date_now
.
getMonth
()
+
1
);
//得到当前日子(多少号)
var
date
=
date_now
.
getDate
()
<
10
?
"0"
+
date_now
.
getDate
()
:
date_now
.
getDate
();
//设置input标签的max属性
$
(
"#babyBirth"
).
attr
(
"max"
,
year
+
"-"
+
month
+
"-"
+
date
);
}
// 关闭弹窗
closeDialog
();
function
closeDialog
()
{
$
(
'#closeBtn'
).
click
(
function
()
{
$
(
'.dialog'
).
hide
();
})
}
goMeasurement
();
goMeasurement
();
function
goMeasurement
()
{
function
goMeasurement
()
{
...
@@ -293,10 +324,14 @@ $(function () {
...
@@ -293,10 +324,14 @@ $(function () {
"X-Authorization"
:
token
"X-Authorization"
:
token
},
},
success
:
function
(
res
)
{
success
:
function
(
res
)
{
if
(
res
[
'
commonResult
'
])
{
if
(
res
[
'
success
'
])
{
$
(
'.dialog'
).
show
();
}
else
{
}
else
{
console
.
log
(
'错误'
)
layer
.
open
({
content
:
res
.
message
,
skin
:
'msg'
,
time
:
3
})
}
}
}
}
})
})
...
...
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