Skip to content
Projects
Groups
Snippets
Help
This project
Loading...
Sign in / Register
Toggle navigation
M
mr-julyedu
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
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
baiguangyao
mr-julyedu
Commits
fd83c9cb
Commit
fd83c9cb
authored
Nov 06, 2019
by
zhanghaozhe
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
正式抽奖
parent
82069eb8
Expand all
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
358 additions
and
26 deletions
+358
-26
src/components/activity/prize-winner-list/index.scss
+1
-2
src/components/blessingPreheat/formal-draw/index.js
+0
-0
src/components/blessingPreheat/formal-draw/index.scss
+36
-13
src/components/blessingPreheat/index.js
+155
-2
src/components/blessingPreheat/index.scss
+166
-9
No files found.
src/components/activity/prize-winner-list/index.scss
View file @
fd83c9cb
#prize-winner-list
{
#prize-winner-list
{
height
:
100%
;
background
:
#5327fa
;
background
:
#5327fa
;
padding-bottom
:
10px
;
.banner
{
.banner
{
width
:
100%
;
width
:
100%
;
...
@@ -31,7 +31,6 @@
...
@@ -31,7 +31,6 @@
ul
{
ul
{
width
:
355px
;
width
:
355px
;
height
:
316px
;
margin
:
0
auto
;
margin
:
0
auto
;
background
:
rgba
(
57
,
0
,
201
,
1
);
background
:
rgba
(
57
,
0
,
201
,
1
);
border
:
1px
solid
rgba
(
89
,
112
,
255
,
1
);
border
:
1px
solid
rgba
(
89
,
112
,
255
,
1
);
...
...
src/components/blessingPreheat/formal-draw/index.js
View file @
fd83c9cb
This diff is collapsed.
Click to expand it.
src/components/blessingPreheat/formal-draw/index.scss
View file @
fd83c9cb
...
@@ -43,6 +43,14 @@
...
@@ -43,6 +43,14 @@
}
}
}
}
&
.am-tabs-horizontal
{
.am-tabs-pane-wrap
{
&
-inactive
{
padding
:
0
1px
;
}
}
}
.am-tabs-tab-bar-wrap
{
.am-tabs-tab-bar-wrap
{
height
:
33px
;
height
:
33px
;
border
:
1px
solid
rgba
(
255
,
246
,
4
,
1
);
border
:
1px
solid
rgba
(
255
,
246
,
4
,
1
);
...
@@ -146,6 +154,7 @@
...
@@ -146,6 +154,7 @@
.time-ranges
{
.time-ranges
{
overflow
:
hidden
;
overflow
:
hidden
;
&
>
li
{
&
>
li
{
&
:
:
after
{
&
:
:
after
{
content
:
''
;
content
:
''
;
...
@@ -159,6 +168,7 @@
...
@@ -159,6 +168,7 @@
&
>
li
:last-child
{
&
>
li
:last-child
{
margin-bottom
:
30px
;
margin-bottom
:
30px
;
&
:
:
after
{
&
:
:
after
{
display
:
none
;
display
:
none
;
}
}
...
@@ -231,8 +241,9 @@
...
@@ -231,8 +241,9 @@
text-decoration
:
underline
;
text-decoration
:
underline
;
}
}
}
}
&
.active
{
.
status
:
:
after
{
&
.active
{
.
status
:
:
after
{
display
:
block
;
display
:
block
;
border-top-color
:
#DDDDDD
;
border-top-color
:
#DDDDDD
;
}
}
...
@@ -278,6 +289,7 @@
...
@@ -278,6 +289,7 @@
.prizes
{
.prizes
{
margin-top
:
15px
;
margin-top
:
15px
;
li
{
li
{
position
:
relative
;
position
:
relative
;
width
:
100px
;
width
:
100px
;
...
@@ -285,24 +297,28 @@
...
@@ -285,24 +297,28 @@
.tip
{
.tip
{
position
:
absolute
;
position
:
absolute
;
top
:
-
20
px
;
top
:
-
32
px
;
left
:
50%
;
left
:
50%
;
z-index
:
10
;
z-index
:
10
;
margin-left
:
-
37
px
;
margin-left
:
-
50
px
;
width
:
74
px
;
padding
:
5px
8
px
;
height
:
20px
;
white-space
:
nowrap
;
background
:
rgba
(
255
,
246
,
4
,
1
);
background
:
rgba
(
255
,
246
,
4
,
1
);
border-radius
:
2px
;
border-radius
:
2px
;
font-size
:
11px
;
font-size
:
11px
;
color
:
#3900C9
;
color
:
#3900C9
;
transform
:
scale
(
.8
);
&
:
:
after
{
&
:
:
after
{
position
:
absolute
;
position
:
absolute
;
bottom
:
-4px
;
left
:
50%
;
bottom
:
-3px
;
margin-left
:
-6px
;
content
:
''
;
content
:
''
;
display
:
block
;
display
:
block
;
border-style
:
solid
;
border-style
:
solid
;
border-width
:
4px
6px
0
;
border-width
:
4px
6px
0
;
border-color
:
transparent
;
border-top-color
:
rgba
(
255
,
246
,
4
,
1
);
border-top-color
:
rgba
(
255
,
246
,
4
,
1
);
}
}
}
}
...
@@ -333,9 +349,13 @@
...
@@ -333,9 +349,13 @@
}
}
}
}
.swiper-container
{
overflow
:
visible
;
}
}
}
.closable-popup-mask
{
.closable-popup-mask
{
.popup-container.join-lottery
{
.popup-container.join-lottery
{
background
:
#5327FA
;
background
:
#5327FA
;
text-align
:
center
;
text-align
:
center
;
...
@@ -369,7 +389,7 @@
...
@@ -369,7 +389,7 @@
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.hint
{
.hint
{
color
:
rgba
(
82
,
92
,
101
,
.8
);
color
:
rgba
(
82
,
92
,
101
,
.8
);
margin-bottom
:
10px
;
margin-bottom
:
10px
;
text-align
:
left
;
text-align
:
left
;
...
@@ -397,15 +417,18 @@
...
@@ -397,15 +417,18 @@
}
}
.closable-popup-mask
{
.closable-popup-mask
{
.subscribe
{
.subscribe
{
height
:
215px
;
height
:
215px
;
padding-bottom
:
30px
;
padding-bottom
:
30px
;
.title
{
.title
{
margin-bottom
:
20px
;
margin-bottom
:
20px
;
}
}
.content
{
.content
{
text-align
:
center
;
text-align
:
center
;
.qr-code
{
.qr-code
{
width
:
120px
;
width
:
120px
;
height
:
120px
;
height
:
120px
;
}
}
...
...
src/components/blessingPreheat/index.js
View file @
fd83c9cb
...
@@ -29,6 +29,8 @@ import FormalDraw from "./formal-draw"
...
@@ -29,6 +29,8 @@ import FormalDraw from "./formal-draw"
class
BlessingPreheat
extends
Component
{
class
BlessingPreheat
extends
Component
{
recordInstance
=
null
constructor
(
props
)
{
constructor
(
props
)
{
super
(
props
)
super
(
props
)
this
.
navTop
=
183
this
.
navTop
=
183
...
@@ -85,6 +87,12 @@ class BlessingPreheat extends Component {
...
@@ -85,6 +87,12 @@ class BlessingPreheat extends Component {
isApp
:
false
,
isApp
:
false
,
isClose
:
false
,
isClose
:
false
,
testSum
:
0
,
testSum
:
0
,
address
:
{
name
:
''
,
phone
:
''
,
address
:
''
},
addressPopupVisible
:
false
}
}
}
}
...
@@ -413,6 +421,97 @@ class BlessingPreheat extends Component {
...
@@ -413,6 +421,97 @@ class BlessingPreheat extends Component {
}
}
}
}
getMyPrizeRecord
=
()
=>
{
http
.
get
(
`
${
API
.
home
}
/sys/activity/my_lotteries`
)
.
then
(
res
=>
{
const
{
code
,
data
,
msg
}
=
res
.
data
if
(
code
==
200
)
{
this
.
recordInstance
=
Popup
({
title
:
'我的中奖纪录'
,
className
:
'prize-record-popup'
,
content
:
(
<
div
className
=
{
'record-container'
}
>
<
div
className
=
"list-title"
>
<
div
>
时间
<
/div
>
<
div
>
奖品名称
<
/div
>
<
/div
>
<
ul
>
{
data
.
map
((
item
,
index
)
=>
{
return
(
<
li
key
=
{
index
}
>
<
div
className
=
"time"
>
{
item
.
time
}
<
/div
>
<
div
className
=
"name"
onClick
=
{
this
.
showAddressPopup
.
bind
(
this
,
item
[
'is_virtual'
],
item
.
prize
)}
>
{
item
.
prize
}
<
/div
>
<
/li
>
)
})
}
<
/ul
>
<
/div
>
)
})
}
else
{
Toast
.
info
(
msg
,
2
,
null
,
false
)
}
})
}
submitAddress
=
debounce
(()
=>
{
http
.
post
(
`
${
API
.
home
}
/sys/collect_info`
,
{
...
this
.
state
.
address
})
.
then
(
res
=>
{
const
{
data
,
code
,
msg
}
=
res
.
data
if
(
code
==
200
)
{
this
.
setState
({
addressPopupVisible
:
false
})
}
else
{
Toast
.
info
(
msg
,
2
,
null
,
false
)
}
})
},
500
)
setAddressState
=
e
=>
{
const
value
=
e
.
target
.
value
const
name
=
e
.
target
.
name
this
.
setState
({
address
:
{
...
this
.
state
.
address
,
...{
[
name
]:
value
}
}
})
}
showAddressPopup
=
(
isVirtual
,
prize
)
=>
{
if
(
!
isVirtual
){
Toast
.
info
(
`恭喜你抽中
${
prize
}
,奖品已存放到你的账户`
,
2
,
null
,
false
)
return
}
http
.
get
(
`
${
API
.
home
}
/sys/user_address_info`
)
.
then
(
res
=>
{
const
{
data
,
code
,
msg
}
=
res
.
data
if
(
code
==
200
)
{
this
.
recordInstance
&&
this
.
recordInstance
.
close
()
this
.
setState
({
address
:
{
...
this
.
state
.
address
,
...{
name
:
data
.
name
,
phone
:
Number
(
data
.
phone
),
address
:
data
.
address
}
},
addressPopupVisible
:
true
})
}
else
{
Toast
.
info
(
msg
,
2
,
null
,
false
)
}
})
}
render
()
{
render
()
{
const
{
const
{
navs
,
navs
,
...
@@ -426,7 +525,9 @@ class BlessingPreheat extends Component {
...
@@ -426,7 +525,9 @@ class BlessingPreheat extends Component {
index
,
index
,
isApp
,
isApp
,
isClose
,
isClose
,
testSum
testSum
,
address
,
addressPopupVisible
,
}
=
this
.
state
}
=
this
.
state
const
{
history
}
=
this
.
props
const
{
history
}
=
this
.
props
const
isLogin
=
!
this
.
props
.
user
.
hasError
const
isLogin
=
!
this
.
props
.
user
.
hasError
...
@@ -472,7 +573,14 @@ class BlessingPreheat extends Component {
...
@@ -472,7 +573,14 @@ class BlessingPreheat extends Component {
{
/* 抽奖--正式 */
}
{
/* 抽奖--正式 */
}
{
{
isFormal
===
1
&&
isFormal
===
1
&&
<
FormalDraw
/>
<>
<
div
className
=
"formal-draw-btns"
>
<
button
className
=
"luck-draw__button"
onClick
=
{()
=>
this
.
handleToShow
(
'isRule'
)}
>
活动规则
><
/button
>
<
button
className
=
'prize-record'
onClick
=
{
this
.
getMyPrizeRecord
}
>
中奖记录
><
/button
>
<
/div
>
<
FormalDraw
/>
<
/
>
}
}
{
/*定金--只在预热期间显示*/
}
{
/*定金--只在预热期间显示*/
}
...
@@ -527,6 +635,51 @@ class BlessingPreheat extends Component {
...
@@ -527,6 +635,51 @@ class BlessingPreheat extends Component {
<
RankList
><
/RankList
>
<
RankList
><
/RankList
>
{
/*<Live isFormal={isFormal} isLogin={isLogin}></Live>*/
}
{
/*<Live isFormal={isFormal} isLogin={isLogin}></Live>*/
}
{
addressPopupVisible
&&
<
div
className
=
"address-mask"
>
<
div
className
=
"address-popup"
>
<
div
className
=
"title"
>
收货信息
<
/div
>
<
div
className
=
"address-info-container"
>
<
div
className
=
"tip"
>
请及时填写收货信息,获得实物奖品后将第一时间为您邮寄
<
/div
>
<
input
type
=
"text"
placeholder
=
{
'收件人'
}
name
=
{
'name'
}
onChange
=
{
e
=>
{
this
.
setAddressState
(
e
)
}}
value
=
{
address
.
name
}
/
>
<
input
type
=
"tel"
placeholder
=
{
'联系方式'
}
name
=
{
'tel'
}
onChange
=
{
e
=>
{
this
.
setAddressState
(
e
)
}}
value
=
{
address
.
phone
}
/
>
<
input
type
=
"text"
placeholder
=
{
'收货地址'
}
name
=
{
'address'
}
onChange
=
{
e
=>
{
this
.
setAddressState
(
e
)
}}
value
=
{
address
.
address
}
/
>
<
button
type
=
'button'
className
=
{(
address
.
name
!=
''
&&
address
.
phone
!=
''
&&
address
.
address
!=
''
)
?
'active'
:
''
}
onClick
=
{
this
.
submitAddress
}
>
提交
<
/button
>
<
i
className
=
{
'iconfont iconiconfront-2'
}
onClick
=
{()
=>
{
this
.
setState
({
addressPopupVisible
:
false
})
}}
/
>
<
/div
>
<
/div
>
<
/div
>
}
<
/div
>
<
/div
>
)
)
}
}
...
...
src/components/blessingPreheat/index.scss
View file @
fd83c9cb
#blessing-preheat
{
#blessing-preheat
{
background
:
#5327FA
;
background
:
#5327FA
;
}
}
.test__record
{
.test__record
{
width
:
106px
;
width
:
106px
;
height
:
26px
;
height
:
26px
;
border
:
1px
solid
rgba
(
255
,
246
,
4
,
1
);
border
:
1px
solid
rgba
(
255
,
246
,
4
,
1
);
border-radius
:
13px
;
border-radius
:
13px
;
font-size
:
14px
;
font-size
:
14px
;
font-weight
:
400
;
font-weight
:
400
;
color
:
rgba
(
255
,
246
,
4
,
1
)
;
color
:
rgba
(
255
,
246
,
4
,
1
);
margin
:
10px
auto
14px
;
margin
:
10px
auto
14px
;
display
:
flex
;
display
:
flex
;
justify-content
:
center
;
justify-content
:
center
;
align-items
:
center
;
align-items
:
center
;
}
}
.sort__rules
{
.sort__rules
{
font-size
:
12px
;
font-size
:
12px
;
font-weight
:
400
;
font-weight
:
400
;
color
:
rgba
(
255
,
255
,
255
,
1
)
;
color
:
rgba
(
255
,
255
,
255
,
1
);
text-align
:
center
;
text-align
:
center
;
text-align-last
:
center
;
text-align-last
:
center
;
}
}
...
@@ -57,7 +59,7 @@
...
@@ -57,7 +59,7 @@
text-align
:
center
;
text-align
:
center
;
}
}
.luck-draw__button
{
.luck-draw__button
,
.prize-record
{
display
:
block
;
display
:
block
;
width
:
106px
;
width
:
106px
;
height
:
26px
;
height
:
26px
;
...
@@ -75,3 +77,158 @@
...
@@ -75,3 +77,158 @@
outline
:
none
;
outline
:
none
;
}
}
.formal-draw-btns
{
display
:
flex
;
justify-content
:
center
;
margin
:
15px
0
;
button
{
margin
:
0
;
}
&
button
:first-child
{
margin-right
:
27px
;
}
}
.prize-record-popup
{
.title
{
margin-bottom
:
11px
;
}
.record-container
{
width
:
250px
;
.list-title
{
display
:
flex
;
border-radius
:
2px
2px
0
0
;
div
{
width
:
50%
;
height
:
33px
;
line-height
:
33px
;
background
:
#edeeef
;
text-align
:
center
;
font-size
:
12px
;
color
:
#525C65
;
}
}
ul
{
border
:
1px
solid
#CFDBE5
;
border-bottom
:
0
;
li
{
border-bottom
:
1px
solid
#CFDBE5
;
display
:
flex
;
height
:
33px
;
line-height
:
33px
;
font-size
:
12px
;
&
>
div
{
width
:
50%
;
text-align
:
center
;
}
.time
{
color
:
#525C65
;
}
.name
{
color
:
#09f
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
text-decoration
:
underline
;
}
}
}
}
}
.address-mask
{
position
:
fixed
;
top
:
0
;
left
:
0
;
width
:
100%
;
height
:
100%
;
background
:
rgba
(
0
,
0
,
0
,
.6
);
z-index
:
100
;
.address-popup
{
position
:
absolute
;
top
:
179px
;
left
:
50%
;
margin-left
:
-150px
;
width
:
300px
;
height
:
309px
;
padding
:
18px
25px
;
background
:
#fff
;
border-radius
:
5px
;
font-size
:
12px
;
.address-info-container
{
position
:
relative
;
padding-bottom
:
24px
;
text-align
:
center
;
}
.title
{
font-size
:
16px
;
color
:
#525C65
;
text-align
:
center
;
margin-bottom
:
11px
;
}
.tip
{
color
:
#999
;
margin-bottom
:
15px
;
}
input
{
width
:
250px
;
height
:
40px
;
border
:
1px
solid
rgba
(
221
,
221
,
221
,
1
);
-webkit-appearance
:
none
;
outline
:
none
;
margin-bottom
:
10px
;
padding-left
:
10px
;
&
:
:
placeholder
{
color
:
#999
;
}
}
button
{
width
:
141px
;
height
:
33px
;
margin-top
:
13px
;
text-align
:
center
;
line-height
:
33px
;
background
:
#ccced0
;
color
:
#fff
;
-webkit-appearance
:
none
;
outline
:
none
;
border
:
none
;
border-radius
:
16px
;
font-size
:
15px
;
&
.active
{
background
:
#09f
;
}
}
}
.iconfont
{
position
:
absolute
;
bottom
:
-50px
;
left
:
50%
;
transform
:
translateX
(
-50%
);
font-size
:
33px
;
color
:
#fff
;
}
}
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