Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
2
20250310_人保春游
Project
Project
Details
Activity
Releases
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
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Commits
Issue Boards
Open sidebar
SparkProjects
20250310_人保春游
Commits
e9968d3b
Commit
e9968d3b
authored
Mar 12, 2025
by
haiyoucuv
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
init
parent
1d98e835
Changes
4
Hide whitespace changes
Inline
Side-by-side
Showing
4 changed files
with
78 additions
and
31 deletions
+78
-31
home.js
mock/project/home.js
+6
-21
rank.less
src/pages/userhomepage/rank.less
+3
-0
userhomepage.jsx
src/pages/userhomepage/userhomepage.jsx
+63
-10
utils.js
src/utils/utils.js
+6
-0
No files found.
mock/project/home.js
View file @
e9968d3b
...
...
@@ -27,7 +27,7 @@ module.exports = {
return
{
index
:
i
+
1
,
score
:
1000
-
i
,
userName
:
`userName
${
i
}
`
,
userName
:
`userNam
啊实打实大苏打实打实的阿斯顿阿斯顿阿斯顿
e
${
i
}
`
,
meFlag
:
i
===
2
};
}),
...
...
@@ -36,28 +36,13 @@ module.exports = {
score
:
1011
,
userName
:
"userName"
},
rankOptions
:
[
{
ranking
:
11
,
name
:
"奖品名称"
,
image
:
"奖品名称奖品名称奖品名称奖品名称奖品名称"
},
{
ranking
:
11
,
name
:
"奖品名称"
,
image
:
"奖品名称奖品名称奖品名称奖品名称奖品名称"
},
{
ranking
:
11
,
name
:
"奖品名称"
,
image
:
"奖品名称奖品名称奖品名称奖品名称奖品名称"
},
{
rankOptions
:
new
Array
(
10
).
fill
(
1
).
map
(()
=>
{
return
{
ranking
:
11
,
name
:
"奖品名称"
,
name
:
"奖品名称
奖品名称奖品名称奖品名称奖品名称
"
,
image
:
"奖品名称奖品名称奖品名称奖品名称奖品名称"
}
,
]
}
;
})
}
}
}
...
...
src/pages/userhomepage/rank.less
View file @
e9968d3b
...
...
@@ -146,6 +146,8 @@
.prizeName {
margin-top: 7px;
font-size: 22.19px;
.lineClamp1();
width: 140px;
}
.prizeRank {
...
...
@@ -179,6 +181,7 @@
.nickName {
flex: 289;
.lineClamp1();
}
.inviteNum {
...
...
src/pages/userhomepage/userhomepage.jsx
View file @
e9968d3b
import
React
from
"react"
;
import
{
observer
}
from
"mobx-react"
;
import
store
from
"@src/store"
;
import
{
_asyncThrottle
,
_throttle
,
dateFormatter
,
getUrlParam
,
windowJumpUrl
}
from
"@src/utils/utils"
;
import
{
_asyncThrottle
,
_throttle
,
dateFormatter
,
getUrlParam
,
prefixInteger
,
windowJumpUrl
}
from
"@src/utils/utils"
;
import
modalStore
from
"@src/store/modal"
;
import
{
PAGE_MAP
}
from
"@src/utils/constants"
;
import
{
Button
}
from
"@src/components/Button"
;
...
...
@@ -16,8 +16,16 @@ import { RES_PATH } from "../../../sparkrc";
@
observer
class
Userhomepage
extends
React
.
Component
{
state
=
{
dNum
:
0
,
hNum
:
0
,
mNum
:
0
,
sNum
:
0
};
async
componentDidMount
()
{
store
.
getHomeInfo
();
await
store
.
getHomeInfo
();
this
.
flushCD
();
}
/** 规则按钮*/
...
...
@@ -59,14 +67,58 @@ class Userhomepage extends React.Component {
};
getRankIndex
=
(
index
)
=>
{
if
(
index
==
-
1
||
!
index
)
{
return
"未上榜"
;
}
return
index
;
};
interval
=
null
;
flushCD
=
()
=>
{
const
{
actEndTimestamp
,
currentTimestamp
}
=
store
.
setIndex
;
let
diff
=
(
actEndTimestamp
-
currentTimestamp
)
/
1000
;
if
(
diff
<=
0
)
{
return
;
}
const
flush
=
()
=>
{
diff
--
;
if
(
diff
<=
0
)
{
clearInterval
(
this
.
interval
);
store
.
getHomeInfo
().
then
(()
=>
this
.
flushCD
());
return
;
}
const
s
=
~~
diff
;
const
m
=
s
/
60
>>
0
;
const
h
=
m
/
60
>>
0
;
const
d
=
h
/
24
>>
0
;
this
.
setState
({
dNum
:
prefixInteger
(
d
,
2
),
hNum
:
prefixInteger
(
h
,
2
),
mNum
:
prefixInteger
(
m
%
60
,
2
),
sNum
:
prefixInteger
(
s
%
60
,
2
)
});
};
flush
();
this
.
interval
=
setInterval
(
flush
,
1000
);
};
render
()
{
const
{
dNum
,
hNum
,
mNum
,
sNum
}
=
this
.
state
;
const
{
userId
,
rankInfo
=
{},
actStartTimestamp
,
actEndTimestamp
}
=
store
.
setIndex
;
const
{
rankInfos
,
myRank
,
rankOptions
}
=
rankInfo
;
const
{
rankInfos
,
myRank
=
{}
,
rankOptions
}
=
rankInfo
;
const
sTxt
=
dateFormatter
(
actStartTimestamp
,
`yyyy年M月d日`
);
const
eTxt
=
dateFormatter
(
actEndTimestamp
,
`yyyy年M月d日`
);
const
eRTxt
=
dateFormatter
(
actEndTimestamp
,
`yyyy.MM.dd`
);
return
(
<
div
className=
"HomePage"
>
...
...
@@ -109,15 +161,16 @@ class Userhomepage extends React.Component {
<
div
className=
"rankTop"
style=
{
{
left
:
0
,
top
:
-
2
}
}
/>
<
div
className=
"rankBgInner"
>
<
div
className=
"rankTitle"
/>
<
div
className=
"rankTip"
>
截止
2025.04.30
,累计邀请人数前100名可获得旅游基金
</
div
>
<
div
className=
"rankTip"
>
截止
{
eRTxt
}
,累计邀请人数前100名可获得旅游基金
</
div
>
<
div
className=
"rankPrize"
>
<
div
className=
"rankTime"
>
<
span
>
01
</
span
>
天
<
span
>
01
</
span
>
:
<
span
>
59
</
span
>
:
<
span
>
59
</
span
>
后结算奖励
<
span
>
{
dNum
}
</
span
>
天
<
span
>
{
hNum
}
</
span
>
:
<
span
>
{
mNum
}
</
span
>
:
<
span
>
{
sNum
}
</
span
>
后结算奖励
</
div
>
<
Swiper
className=
"prizeList"
slideSize=
{
174
/
654
*
100
}
loop=
{
true
}
autoplay=
{
true
}
indicator=
{
false
}
>
{
rankOptions
?.
map
((
item
,
index
)
=>
(
...
...
@@ -136,9 +189,9 @@ class Userhomepage extends React.Component {
<
div
className=
"inviteNum"
>
累计邀请人数
</
div
>
</
div
>
<
div
className=
"rankItem rankListItem"
>
<
div
className=
"rank"
>
999+
</
div
>
<
div
className=
"nickName"
>
用户昵称
(我)
</
div
>
<
div
className=
"inviteNum"
>
9
</
div
>
<
div
className=
"rank"
>
{
this
.
getRankIndex
(
myRank
?.
index
)
}
</
div
>
<
div
className=
"nickName"
>
{
myRank
?.
userName
||
""
}
(我)
</
div
>
<
div
className=
"inviteNum"
>
{
myRank
?.
score
||
0
}
</
div
>
<
div
className=
"border"
/>
</
div
>
<
div
className=
"rankList"
>
...
...
@@ -146,11 +199,11 @@ class Userhomepage extends React.Component {
const
rankCls
=
classNames
(
"rank"
,
{
rankIcon
:
item
.
index
<=
3
});
const
rank
=
item
.
index
<=
3
?
""
:
item
.
index
;
const
rank
=
item
.
index
<=
3
?
""
:
this
.
getRankIndex
(
item
?.
index
)
;
return
<
div
className=
"rankItem rankListItem"
key=
{
index
}
>
<
div
className=
{
rankCls
}
>
{
rank
}
</
div
>
<
div
className=
"nickName"
>
{
item
?.
userName
}
</
div
>
<
div
className=
"inviteNum"
>
{
item
?.
score
}
</
div
>
<
div
className=
"inviteNum"
>
{
item
?.
score
||
0
}
</
div
>
<
div
className=
"border"
/>
</
div
>;
})
}
...
...
src/utils/utils.js
View file @
e9968d3b
...
...
@@ -450,3 +450,9 @@ export const appJump = (module, method, params, callback) => {
callback
:
callback
,
});
}
export
function
prefixInteger
(
num
,
length
)
{
return
(
Array
(
length
).
join
(
'0'
)
+
num
).
slice
(
-
length
);
}
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