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
71b4f546
Commit
71b4f546
authored
Dec 14, 2019
by
FE
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch '00' of gitlab.julyedu.com:baiguangyao/mr-julyedu into 00
parents
7d3cecb5
69a89854
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
139 additions
and
87 deletions
+139
-87
src/components/activity/newyear-2019/common/prizes/index.js
+3
-0
src/components/activity/newyear-2019/common/user-bullet-screen/bullet-screen.scss
+3
-0
src/components/activity/newyear-2019/common/user-bullet-screen/index.js
+2
-4
src/components/activity/newyear-2019/landing/index.js
+88
-59
src/components/activity/newyear-2019/preheat/YearCourse/index.js
+2
-2
src/components/activity/newyear-2019/preheat/index.js
+26
-4
src/components/activity/newyear-2019/preheat/nav.js
+15
-18
No files found.
src/components/activity/newyear-2019/common/prizes/index.js
View file @
71b4f546
...
...
@@ -115,6 +115,9 @@ class Prizes extends Component {
)
})
}
<
li
>
<
img
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/prize-placeholder.png"
alt
=
""
/>
<
/li
>
<
/ul
>
<
/div
>
<
div
className
=
"show-more"
onClick
=
{
this
.
showMore
}
>
...
...
src/components/activity/newyear-2019/common/user-bullet-screen/bullet-screen.scss
View file @
71b4f546
...
...
@@ -28,6 +28,9 @@
span
{
font-size
:
12px
;
color
:
#fff
;
white-space
:
nowrap
;
overflow
:
hidden
;
text-overflow
:
ellipsis
;
}
}
#user-bullet-screen
{
...
...
src/components/activity/newyear-2019/common/user-bullet-screen/index.js
View file @
71b4f546
...
...
@@ -51,8 +51,7 @@ class UserBulletScreen extends Component {
return
`
<li class="swiper-slide">
<img class="avatar" src="
${
item
.
avatar_file
}
" alt="">
<span>
${
item
.
user_name
}
</span>
<span>
${
item
.
msg
}
</span>
<span>
${
item
.
user_name
}
${
item
.
msg
}
</span>
</li>
`
})
...
...
@@ -87,8 +86,7 @@ class UserBulletScreen extends Component {
<
li
className
=
'swiper-slide'
key
=
{
index
}
>
<
img
src
=
{
item
[
'avatar_file'
]}
alt
=
""
className
=
"avatar"
/>
<
span
>
{
item
.
user_name
}
<
/span
>
<
span
>
{
item
.
msg
}
<
/span
>
<
span
>
{
item
.
user_name
}
{
item
.
msg
}
<
/span
>
<
/li
>
)
})
...
...
src/components/activity/newyear-2019/landing/index.js
View file @
71b4f546
...
...
@@ -24,17 +24,24 @@ class Landing extends Component {
teamData
:
{
member
:
[]
},
origin
:
getParam
(
'origin'
),
origin
:
sessionStorage
.
getItem
(
'isCaptain'
)
?
1
:
getParam
(
'origin'
),
treasure_code
:
getParam
(
'treasure_code'
),
activityEnd
:
false
,
notices
:
[],
rule
:
''
rule
:
''
,
isCaptain
:
getParam
(
'origin'
)
==
1
}
componentDidMount
()
{
this
.
fetchPageData
()
}
componentDidUpdate
(
prevProps
)
{
if
(
prevProps
.
user
.
hasError
!==
this
.
props
.
user
.
hasError
&&
!
this
.
props
.
user
.
hasError
)
{
this
.
fetchPageData
()
}
}
fetchPageData
=
({
origin
=
this
.
state
.
origin
,
treasure_code
=
this
.
state
.
treasure_code
}
=
{})
=>
{
http
.
post
(
`
${
API
.
home
}
/sys/treasure/team`
,
{
...
...
@@ -46,12 +53,14 @@ class Landing extends Component {
if
(
code
==
200
)
{
this
.
setState
({
teamData
:
data
teamData
:
data
,
isCaptain
:
sessionStorage
.
getItem
(
'isCaptain'
)
?
sessionStorage
.
getItem
(
'isCaptain'
)
:
getParam
(
'origin'
)
==
1
})
let
searchParams
=
new
URLSearchParams
(
window
.
location
.
search
)
if
(
searchParams
.
get
(
'origin'
)
===
'1'
&&
!
browser
.
isWeixin
)
{
searchParams
.
set
(
'origin'
,
'2'
)
sessionStorage
.
setItem
(
'isCaptain'
,
'1'
)
window
.
history
.
replaceState
(
null
,
''
,
`landing?
${
searchParams
.
toString
()}
`
)
}
...
...
@@ -111,7 +120,7 @@ class Landing extends Component {
})
}
joinSuccess
=
({
id
,
status
,
my_team
:
{
team_num
,
lack_member
,
is_team
}})
=>
{
joinSuccess
=
({
id
,
status
,
my_team
:
{
team_num
,
lack_member
,
is_team
,
treasure_code
}})
=>
{
const
{
history
}
=
this
.
props
this
.
joinSuccessPopup
=
Popup
({
title
:
<
div
className
=
{
'join-success'
}
>
...
...
@@ -125,7 +134,7 @@ class Landing extends Component {
status
===
2
?
'组队成功,恭喜你获得一个宝箱!'
:
is_team
?
`您的
${
<
span
>
{
team_num
}
<
/span>}号队伍还差${<span>{lack_member}</
span
>
}
人即可获得宝箱`
?
<>
您的
{
<
span
>
{
team_num
}
<
/span>}号队伍还差{<span>{lack_member}</
span
>
}
人即可获得宝箱
<
/
>
:
'自己当队长,宝箱内有专属奖品哦~'
}
<
/div
>
...
...
@@ -140,77 +149,87 @@ class Landing extends Component {
/
>
:
is_team
?
<
button
type
=
'button'
onClick
=
{
this
.
inviteMembers
.
bind
(
this
,
t
his
.
state
.
teamData
[
'my_team'
][
'treasure_code'
]
)}
>
继续组队
<
/button
>
onClick
=
{
this
.
inviteMembers
.
bind
(
this
,
t
reasure_code
)}
>
继续组队
<
/button
>
:
<
button
type
=
"button"
onClick
=
{
this
.
createMyTeam
}
>
创建我的队伍
<
/button
>
}
<
/div>
,
closeIcon
:
this
.
closeIcon
,
close
:
()
=>
{
this
.
fetchPageData
()
this
.
getFollowStatus
()
.
then
(
isFollow
=>
{
!
isFollow
&&
this
.
remind
(
'join'
,
getParam
(
'treasure_code'
))
})
}
})
}
inviteMembers
=
(
treasure_code
)
=>
{
inviteMembers
=
treasure_code
=>
{
const
{
history
,
match
,
user
,
location
}
=
this
.
props
if
(
browser
.
isWeixin
)
{
wxShare
({
title
:
`@
${
user
.
data
.
username
}
邀您一起组队拿豪礼!`
,
desc
:
`加我我的队伍,机械键盘,纸质书籍等超多奖品等你拿!`
,
link
:
encodeURIComponent
(
`
${
window
.
location
.
origin
}
/
${
location
.
pathname
}
?treasure_code=
${
treasure_code
}
&origin=2`
)
,
link
:
`
${
window
.
location
.
origin
}
/
${
location
.
pathname
}
?treasure_code=
${
treasure_code
}
&origin=2`
,
imgUrl
:
'https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newIndex/community/tou5_bj.png'
})
}
sessionStorage
.
setItem
(
'showShareTip'
,
'1'
)
history
.
replace
(
`
${
match
.
path
}
?treasure_code=
${
treasure_code
}
&origin=
${
1
}
`
)
this
.
createTeamSuccessPopup
&&
this
.
createTeamSuccessPopup
.
remove
()
&&
(
this
.
createTeamSuccessPopup
=
null
)
this
.
joinSuccessPopup
&&
this
.
joinSuccessPopup
.
remove
()
&&
(
this
.
joinSuccessPopup
=
null
)
this
.
fetchPageData
({
treasure_code
,
origin
:
1
})
this
.
setState
({
isCaptain
:
true
})
}
getFollowStatus
=
()
=>
http
.
get
(
`
${
API
.
home
}
/sys/user/isFollowWeChat`
)
.
then
(
res
=>
{
const
{
code
,
data
}
=
res
.
data
return
code
===
200
&&
data
[
'is_follow'
]
})
createTeamSuccess
=
(
member
,
team_num
,
lack_member
,
treasure_code
)
=>
{
let
isFollow
=
false
this
.
joinSuccessPopup
&&
this
.
joinSuccessPopup
.
remove
()
&&
(
this
.
joinSuccessPopup
=
null
)
http
.
get
(
`
${
API
.
home
}
/sys/user/isFollowWeChat`
)
.
then
(
res
=>
{
const
{
errno
,
status
}
=
res
.
data
if
(
errno
===
0
&&
status
===
1
)
{
isFollow
=
true
}
})
this
.
createTeamSuccessPopup
=
Popup
({
title
:
'创建成功'
,
className
:
'landing-create-success'
,
content
:
<
div
>
<
div
className
=
"tip"
>
{
<
span
>
{
team_num
}
<
/span>}号队伍 还差{<span>{lack_member}</
span
>
}
名队员即可获得宝箱哦
~<
/div
>
<
img
className
=
{
'treasure-box'
}
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/treasure-box-icon.png"
alt
=
""
/>
<
ul
className
=
'members'
>
{
new
Array
(
5
).
fill
(
'a'
).
map
((
item
,
index
)
=>
{
const
_member
=
member
[
index
]
return
<
li
key
=
{
index
}
>
{
_member
&&
_member
[
'is_captain'
]
&&
<
sup
>
队长
<
/sup>
}
<
img
className
=
{
'avatar'
}
src
=
{
_member
?
_member
[
'head_img'
]
:
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/not-joined-placeholder.png"
}
alt
=
""
/>
<
/li
>
})
this
.
getFollowStatus
()
.
then
(
isFollow
=>
{
this
.
createTeamSuccessPopup
=
Popup
({
title
:
'创建成功'
,
className
:
'landing-create-success'
,
content
:
<
div
>
<
div
className
=
"tip"
>
{
<
span
>
{
team_num
}
<
/span>}号队伍 还差{<span>{lack_member}</
span
>
}
名队员即可获得宝箱哦
~<
/div
>
<
img
className
=
{
'treasure-box'
}
src
=
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/treasure-box-icon.png"
alt
=
""
/>
<
ul
className
=
'members'
>
{
new
Array
(
5
).
fill
(
'a'
).
map
((
item
,
index
)
=>
{
const
_member
=
member
[
index
]
return
<
li
key
=
{
index
}
>
{
_member
&&
_member
[
'is_captain'
]
&&
<
sup
>
队长
<
/sup>
}
<
img
className
=
{
'avatar'
}
src
=
{
_member
?
_member
[
'head_img'
]
:
"https://julyedu-cdn.oss-cn-beijing.aliyuncs.com/newyear20/H5/not-joined-placeholder.png"
}
alt
=
""
/>
<
/li
>
})
}
<
/ul
>
<
button
type
=
{
'button'
}
onClick
=
{
this
.
inviteMembers
.
bind
(
this
,
treasure_code
)}
>
邀请好友加入队伍
<
/button
>
<
/div>
,
closeIcon
:
this
.
closeIcon
,
afterClose
:
()
=>
{
if
(
!
isFollow
)
{
this
.
remind
(
'create'
,
treasure_code
)
}
}
<
/ul
>
<
button
type
=
{
'button'
}
onClick
=
{
this
.
inviteMembers
.
bind
(
this
,
treasure_code
)}
>
邀请好友加入队伍
<
/button
>
<
/div>
,
closeIcon
:
this
.
closeIcon
,
afterClose
:
()
=>
{
if
(
!
isFollow
)
{
this
.
remind
(
'create'
,
treasure_code
)
}
}
})
})
})
}
remind
=
(
type
=
'create'
,
treasure_code
)
=>
{
...
...
@@ -232,7 +251,7 @@ class Landing extends Component {
<
div
className
=
"des"
>
长按识别
/
扫码
关注【七月在线】服务号即可预约
<
/div
>
<
/div>
,
close
:
()
=>
{
history
.
replace
(
`
${
match
.
path
}
?treasure_code=
${
treasure_code
}
&origin=1`
)
//
history.replace(`${match.path}?treasure_code=${treasure_code}&origin=1`)
this
.
fetchPageData
({
treasure_code
,
origin
:
'1'
...
...
@@ -283,7 +302,10 @@ class Landing extends Component {
closable
:
false
,
close
:
()
=>
{
sessionStorage
.
removeItem
(
'showShareTip'
)
this
.
remind
()
this
.
getFollowStatus
()
.
then
(
isFollow
=>
{
!
isFollow
&&
this
.
remind
(
'create'
,
getParam
(
'treasure_code'
))
})
}
})
}
...
...
@@ -334,9 +356,9 @@ class Landing extends Component {
prize_info
,
my_team
},
activityEnd
activityEnd
,
isCaptain
}
=
this
.
state
/*
* status
* 1-自己的队伍
...
...
@@ -355,9 +377,10 @@ class Landing extends Component {
<
img
className
=
'main-avatar'
src
=
{
head_img
}
alt
=
""
/>
{
status
===
1
&&
<
div
className
=
"des"
>
邀请好友加入队伍,开宝箱领取丰厚奖品
~<
/div
>
status
===
1
?
<
div
className
=
"des"
>
邀请好友加入队伍,开宝箱领取丰厚奖品
~<
/div
>
:
<
div
className
=
"des"
>
加入我的
<
span
>
{
team_num
}
<
/span>号队伍,一起开宝箱领取丰厚奖品~</
div
>
}
<
div
className
=
"des"
>
加入我的
<
span
>
{
team_num
}
<
/span>号队伍,一起开宝箱领取丰厚奖品~</
div
>
<
Prizes
showSystemNotices
=
{
false
}
/
>
<
BulletScreen
/>
<
div
className
=
"group"
>
...
...
@@ -465,8 +488,8 @@ class Landing extends Component {
<
/button
>
}
{
prize_info
&&
!
activityEnd
&&
<
div
className
=
"certainly-prompt"
>
第
{
prize_info
.
stage_no
}
次必中
{
prize_info
.
name
}
prize_info
&&
prize_info
.
length
!==
0
&&
!
activityEnd
&&
!
isCaptain
&&
<
div
className
=
"certainly-prompt"
>
第
{
prize_info
[
0
].
stage_no
}
次必中
{
prize_info
[
0
]
.
name
}
<
/div
>
}
{
...
...
@@ -480,8 +503,14 @@ class Landing extends Component {
}
<
/div
>
<
/BoxContainer
>
<
WhiteSpace
size
=
{
'xl'
}
/
>
<
YearCourse
><
/YearCourse
>
{
!
isCaptain
&&
<>
<
WhiteSpace
size
=
{
'xl'
}
/
>
<
YearCourse
getSum
=
{()
=>
{
}}
/
>
<
/
>
}
<
/div
>
)
}
...
...
src/components/activity/newyear-2019/preheat/YearCourse/index.js
View file @
71b4f546
...
...
@@ -404,7 +404,7 @@ class YearCourse extends Component {
<
div
className
=
"coupon-course__footer"
>
{
item
.
is_buy
==
1
&&
<
a
onClick
=
{
this
.
toCourse
}
className
=
"btn to-study"
>
开始学习
<
/a
>
<
a
onClick
=
{
()
=>
this
.
toCourse
(
item
.
course_id
)
}
className
=
"btn to-study"
>
开始学习
<
/a
>
}
{
item
.
is_buy
==
0
&&
...
...
@@ -440,7 +440,7 @@ class YearCourse extends Component {
<
div
className
=
"coupon-course__footer"
>
{
item
.
is_buy
==
1
&&
<
a
toCourse
=
{
this
.
toCourse
}
className
=
"btn to-study"
>
开始学习
<
/a
>
<
a
onClick
=
{()
=>
this
.
toCourse
(
item
.
course_id
)
}
className
=
"btn to-study"
>
开始学习
<
/a
>
}
{
item
.
is_buy
==
0
&&
...
...
src/components/activity/newyear-2019/preheat/index.js
View file @
71b4f546
...
...
@@ -7,9 +7,10 @@ import TreasureNav from './nav'
import
CommonPopup
from
'./../common/commonPopup/index'
import
cookie
from
"js-cookie"
import
{
setCurrentUser
,
startFetchUser
}
from
"@/store/userAction"
import
{
SendMessageToApp
,
getParam
}
from
'@/utils'
import
{
SendMessageToApp
,
getParam
,
http
}
from
'@/utils'
import
{
addDays
}
from
"date-fns"
import
{
connect
}
from
"react-redux"
import
{
Toast
}
from
'antd-mobile'
;
@
connect
(
state
=>
({
user
:
state
.
user
...
...
@@ -19,6 +20,8 @@ export default class index extends Component {
state
=
{
removable
:
0
,
// 未拆宝箱的数量
currentOpenId
:
0
,
// 当前要拆的宝箱的队伍的ID
treasure_stage
:
0
,
// 宝箱的活动阶段
active_stage
:
0
,
// 整个活动的阶段
userInfoList
:
[],
userInfo
:
{},
isAppUpdate
:
false
,
...
...
@@ -32,6 +35,8 @@ export default class index extends Component {
window
[
'loginInfo'
]
=
result
=>
{
_this
.
loginInfo
(
result
)
}
_this
.
getStage
();
}
// 获取app登录数据
...
...
@@ -118,6 +123,21 @@ export default class index extends Component {
}
}
// 获取活动以及宝箱的阶段
getStage
=
()
=>
{
http
.
get
(
`
${
API
.
home
}
/activity/stage`
).
then
(
res
=>
{
const
{
code
,
data
,
msg
}
=
res
.
data
;
if
(
code
===
200
)
{
// treasure_stage,宝箱阶段,0-不在活动时间,1-活动时间内
this
.
setState
({
treasure_stage
:
data
.
treasure_stage
})
}
else
{
Toast
.
info
(
msg
,
2
);
}
});
}
toYearWish
=
()
=>
{
const
isLogin
=
!
this
.
props
.
user
.
hasError
if
(
isLogin
)
{
...
...
@@ -139,14 +159,14 @@ export default class index extends Component {
}
render
()
{
const
{
banner
,
removable
}
=
this
.
state
const
{
banner
,
removable
,
treasure_stage
}
=
this
.
state
return
(
<
div
className
=
{
'year-index'
}
>
<
div
className
=
"banner-treasure"
>
<
div
id
=
"banner"
className
=
"banner-treasure__header"
style
=
{{
backgroundImage
:
`url(
${
banner
}
)`
}}
><
/div
>
<
div
className
=
"banner-treasure__nav"
>
<
TreasureNav
id
=
"banner"
/>
<
TreasureNav
id
=
"banner"
treasure_stage
=
{
treasure_stage
}
/
>
<
/div
>
<
div
className
=
"banner-treasure__decorate"
><
/div
>
<
/div
>
...
...
@@ -171,7 +191,9 @@ export default class index extends Component {
<
LiveRoom
/>
{
/* 组队开宝箱 */
}
<
TreasureBox
getRemovable
=
{
this
.
getRemovable
}
/
>
{
treasure_stage
===
1
&&
<
TreasureBox
getRemovable
=
{
this
.
getRemovable
}
/
>
}
{
/*课程*/
}
<
YearCourse
isAppUpdate
=
{
this
.
state
.
isAppUpdate
}
getSum
=
{
this
.
sonToPar
.
bind
(
this
)}
/
>
...
...
src/components/activity/newyear-2019/preheat/nav.js
View file @
71b4f546
...
...
@@ -40,7 +40,6 @@ class TreasureNav extends Component {
}
componentDidMount
()
{
this
.
initNav
();
window
.
addEventListener
(
'scroll'
,
this
.
calcNavActive
)
}
...
...
@@ -48,24 +47,22 @@ class TreasureNav extends Component {
window
.
removeEventListener
(
'scroll'
,
this
.
calcNavActive
);
}
initNav
=
()
=>
{
const
{
navs
}
=
this
.
state
;
http
.
get
(
`
${
API
.
home
}
/activity/stage`
).
then
(
res
=>
{
const
{
code
,
data
}
=
res
.
data
;
if
(
code
===
200
)
{
componentWillReceiveProps
(
nextProps
)
{
this
.
initNav
(
nextProps
.
treasure_stage
);
}
// treasure_stage,宝箱阶段,0-不在活动时间,1-活动时间内
if
(
data
.
treasure_stage
===
0
)
{
this
.
setState
({
formatNavs
:
navs
.
filter
(
item
=>
item
.
id
!==
'year-treasure'
)
});
}
else
{
this
.
setState
({
formatNavs
:
navs
})
}
}
}
);
initNav
=
(
treasure_stage
)
=>
{
let
{
navs
}
=
this
.
state
;
// treasure_stage,宝箱阶段,0-不在活动时间,1-活动时间内
if
(
treasure_stage
===
0
)
{
this
.
setState
({
formatNavs
:
navs
.
filter
(
item
=>
item
.
id
!==
'year-treasure'
)
});
}
else
{
this
.
setState
({
formatNavs
:
navs
}
)
}
}
calcNavActive
=
()
=>
{
...
...
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