Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Submit feedback
Contribute to GitLab
Sign in
Toggle navigation
湖
湖南口味王-520猜数游戏-20250409
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
湖南口味王-520猜数游戏-20250409
Commits
28070c04
Commit
28070c04
authored
Apr 10, 2025
by
wangzhujun
Browse files
Options
Browse Files
Download
Plain Diff
Merge branch 'master' of
http://gitlab2.dui88.com/sparkprojects/KWW-520NumberGuessingGame-20250409
parents
dc94f44e
8e6fe2b4
Changes
10
Show whitespace changes
Inline
Side-by-side
Showing
10 changed files
with
477 additions
and
192 deletions
+477
-192
main.js
mock/project/main.js
+170
-23
assetList.json
src/assetList.json
+1
-1
border.png
src/assets/detailPage/border.png
+0
-0
l_bg.png
src/assets/detailPage/l_bg.png
+0
-0
border.png
src/assets/rankPage/border.png
+0
-0
l_bg.png
src/assets/rankPage/l_bg.png
+0
-0
detailpage.jsx
src/pages/detailpage/detailpage.jsx
+49
-22
detailpage.less
src/pages/detailpage/detailpage.less
+79
-51
rankpage.jsx
src/pages/rankpage/rankpage.jsx
+60
-13
rankpage.less
src/pages/rankpage/rankpage.less
+118
-82
No files found.
mock/project/main.js
View file @
28070c04
...
@@ -8,34 +8,100 @@ module.exports = {
...
@@ -8,34 +8,100 @@ module.exports = {
"rankInfo"
:
[
"rankInfo"
:
[
{
{
"index"
:
1
,
"index"
:
1
,
"
meFlag
"
:
"路人甲"
,
"
userName
"
:
"路人甲"
,
"score"
:
100
,
"score"
:
100
,
"
userName
"
:
"false"
"
meFlag
"
:
"false"
},
},
{
{
"index"
:
2
,
"index"
:
2
,
"
meFlag
"
:
"路人乙"
,
"
userName
"
:
"路人乙"
,
"score"
:
200
,
"score"
:
200
,
"
userName
"
:
"false"
"
meFlag
"
:
"false"
},
},
{
{
"index"
:
3
,
"index"
:
3
,
"
meFlag
"
:
"路人丙"
,
"
userName
"
:
"路人丙"
,
"score"
:
300
,
"score"
:
300
00
,
"
userName
"
:
"false"
"
meFlag
"
:
"false"
},
},
{
{
"index"
:
4
,
"index"
:
4
,
"
meFlag
"
:
"小明"
,
"
userName
"
:
"小明"
,
"score"
:
400
,
"score"
:
400
000
,
"
userName
"
:
"true"
"
meFlag
"
:
"true"
},
},
{
{
"index"
:
5
,
"index"
:
5
,
"
meFlag
"
:
"路人丁"
,
"
userName
"
:
"路人丁"
,
"score"
:
300
,
"score"
:
300
,
"userName"
:
"false"
"meFlag"
:
"false"
}
},
{
"index"
:
6
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
7
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
8
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
9
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
10
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
11
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
12
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
13
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
14
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
15
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
{
"index"
:
100
,
"userName"
:
"路人丁"
,
"score"
:
300
,
"meFlag"
:
"false"
},
],
],
"myRank"
:
{
"myRank"
:
{
"index"
:
4
,
"index"
:
4
,
...
@@ -56,7 +122,7 @@ module.exports = {
...
@@ -56,7 +122,7 @@ module.exports = {
"id"
:
1
,
"id"
:
1
,
"changedType"
:
"+"
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"quantity"
:
100
,
"extra"
:
"
dolore consectetur
"
,
"extra"
:
"
完成100分获得青果
"
,
"createTimestamp"
:
-
10558650.718847722
,
"createTimestamp"
:
-
10558650.718847722
,
"playwayId"
:
"nulla eiusmod deserunt anim"
,
"playwayId"
:
"nulla eiusmod deserunt anim"
,
"actionId"
:
"labore anim aliqua ad velit"
"actionId"
:
"labore anim aliqua ad velit"
...
@@ -64,8 +130,8 @@ module.exports = {
...
@@ -64,8 +130,8 @@ module.exports = {
{
{
"id"
:
2
,
"id"
:
2
,
"changedType"
:
"+"
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"quantity"
:
100
00
,
"extra"
:
"
quis aute occaecat irure
"
,
"extra"
:
"
完成10000分获得青果
"
,
"createTimestamp"
:
37304141.000525266
,
"createTimestamp"
:
37304141.000525266
,
"playwayId"
:
"minim nisi velit commodo nulla"
,
"playwayId"
:
"minim nisi velit commodo nulla"
,
"actionId"
:
"voluptate elit magna dolor qui"
"actionId"
:
"voluptate elit magna dolor qui"
...
@@ -73,8 +139,8 @@ module.exports = {
...
@@ -73,8 +139,8 @@ module.exports = {
{
{
"id"
:
3
,
"id"
:
3
,
"changedType"
:
"+"
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"quantity"
:
100
000
,
"extra"
:
"
velit ex consequat
"
,
"extra"
:
"
完成100000分获得青果
"
,
"createTimestamp"
:
79460372.33933905
,
"createTimestamp"
:
79460372.33933905
,
"playwayId"
:
"reprehenderit consectetur"
,
"playwayId"
:
"reprehenderit consectetur"
,
"actionId"
:
"exercitation veniam tempor magna"
"actionId"
:
"exercitation veniam tempor magna"
...
@@ -83,22 +149,103 @@ module.exports = {
...
@@ -83,22 +149,103 @@ module.exports = {
"id"
:
4
,
"id"
:
4
,
"changedType"
:
"+"
,
"changedType"
:
"+"
,
"quantity"
:
200
,
"quantity"
:
200
,
"extra"
:
"
dolor elit Excepteur fugiat amet
"
,
"extra"
:
"
完成200分获得青果
"
,
"createTimestamp"
:
-
74285506.14657179
,
"createTimestamp"
:
-
74285506.14657179
,
"playwayId"
:
"elit id qui labore non"
,
"playwayId"
:
"elit id qui labore non"
,
"actionId"
:
"Excepteur consectetur"
"actionId"
:
"Excepteur consectetur"
},
},
{
{
"id"
:
5
,
"id"
:
5
,
"changedType"
:
"
-
"
,
"changedType"
:
"
+
"
,
"quantity"
:
100
,
"quantity"
:
100
,
"extra"
:
"
magna exercitation
"
,
"extra"
:
"
完成100分获得青果
"
,
"createTimestamp"
:
84285291.15363145
,
"createTimestamp"
:
84285291.15363145
,
"playwayId"
:
"id ut"
,
"playwayId"
:
"id ut"
,
"actionId"
:
"sed ex enim Duis"
"actionId"
:
"sed ex enim Duis"
}
},
{
"id"
:
6
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"extra"
:
"完成100分获得青果"
,
"createTimestamp"
:
84285291.15363145
,
"playwayId"
:
"id ut"
,
"actionId"
:
"sed ex enim Duis"
},
{
"id"
:
7
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"extra"
:
"完成100分获得青果"
,
"createTimestamp"
:
84285291.15363145
,
"playwayId"
:
"id ut"
,
"actionId"
:
"sed ex enim Duis"
},
{
"id"
:
8
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"extra"
:
"完成100分获得青果"
,
"createTimestamp"
:
84285291.15363145
,
"playwayId"
:
"id ut"
,
"actionId"
:
"sed ex enim Duis"
},
{
"id"
:
9
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"extra"
:
"完成100分获得青果"
,
"createTimestamp"
:
84285291.15363145
,
"playwayId"
:
"id ut"
,
"actionId"
:
"sed ex enim Duis"
},
{
"id"
:
10
,
"changedType"
:
"+"
,
"quantity"
:
100
,
"extra"
:
"完成100分获得青果"
,
"createTimestamp"
:
84285291.15363145
,
"playwayId"
:
"id ut"
,
"actionId"
:
"sed ex enim Duis"
},
{
"id"
:
11
,
"changedType"
:
"+"
,
"quantity"
:
200
,
"extra"
:
"完成200分获得青果"
,
"createTimestamp"
:
-
74285506.14657179
,
"playwayId"
:
"elit id qui labore non"
,
"actionId"
:
"Excepteur consectetur"
},
{
"id"
:
12
,
"changedType"
:
"+"
,
"quantity"
:
200
,
"extra"
:
"完成200分获得青果"
,
"createTimestamp"
:
-
74285506.14657179
,
"playwayId"
:
"elit id qui labore non"
,
"actionId"
:
"Excepteur consectetur"
},
{
"id"
:
13
,
"changedType"
:
"+"
,
"quantity"
:
200
,
"extra"
:
"完成200分获得青果"
,
"createTimestamp"
:
-
74285506.14657179
,
"playwayId"
:
"elit id qui labore non"
,
"actionId"
:
"Excepteur consectetur"
},
{
"id"
:
14
,
"changedType"
:
"+"
,
"quantity"
:
9000
,
"extra"
:
"完成9000分获得青果"
,
"createTimestamp"
:
-
74285506.14657179
,
"playwayId"
:
"elit id qui labore non"
,
"actionId"
:
"Excepteur consectetur"
},
],
],
"haveMore"
:
tru
e
"haveMore"
:
fals
e
},
},
"timeStamp"
:
-
87748265.39137948
"timeStamp"
:
-
87748265.39137948
}
}
...
...
src/assetList.json
View file @
28070c04
{
"preLoadImg"
:[],
"asyncLoadImg"
:[
"detailPage/back.png"
,
"detailPage/bg.png"
,
"detailPage/border.png"
,
"detailPage/headline.png"
,
"detailPage/line.png"
,
"detailPage/l_bg.png"
,
"failPop/bg.png"
,
"failPop/close.png"
,
"failPop/endbtn.png"
,
"failPop/goonbtn.png"
,
"homePahe/bardown.png"
,
"homePahe/baron.png"
,
"homePahe/bg.png"
,
"homePahe/box1.png"
,
"homePahe/box2.png"
,
"homePahe/box3.png"
,
"homePahe/box4.png"
,
"homePahe/close1.png"
,
"homePahe/close2.png"
,
"homePahe/close3.png"
,
"homePahe/close4.png"
,
"homePahe/detail.png"
,
"homePahe/gameBarbg.png"
,
"homePahe/infobg.png"
,
"homePahe/open1.png"
,
"homePahe/open2.png"
,
"homePahe/open3.png"
,
"homePahe/open4.png"
,
"homePahe/prizebg.png"
,
"homePahe/rank.png"
,
"homePahe/rule.png"
,
"homePahe/show.png"
,
"homePahe/startBtn.png"
,
"homePahe/title.png"
,
"loading/bardown.png"
,
"loading/baron.png"
,
"loading/bg.png"
,
"loading/ip.png"
,
"loading/title.png"
,
"LoadingPage/loadingBg.jpg"
,
"LoadingPage/loadingFill.png"
,
"LoadingPage/loadingIp.png"
,
"rankPage/back.png"
,
"rankPage/bg.png"
,
"rankPage/border.png"
,
"rankPage/headnline.png"
,
"rankPage/line.png"
,
"rankPage/l_bg.png"
,
"rankPage/ownbg.png"
,
"rulePop/bg.png"
,
"rulePop/close.png"
,
"successPop/bar.png"
,
"successPop/barbg.png"
,
"successPop/bg.png"
,
"successPop/btn.png"
,
"successPop/close.png"
]}
{
"preLoadImg"
:[],
"asyncLoadImg"
:[
"LoadingPage/loadingBg.jpg"
,
"LoadingPage/loadingFill.png"
,
"LoadingPage/loadingIp.png"
,
"detailPage/back.png"
,
"detailPage/bg.png"
,
"detailPage/border.png"
,
"detailPage/headline.png"
,
"detailPage/l_bg.png"
,
"detailPage/line.png"
,
"failPop/bg.png"
,
"failPop/close.png"
,
"failPop/endbtn.png"
,
"failPop/goonbtn.png"
,
"homePahe/bardown.png"
,
"homePahe/baron.png"
,
"homePahe/bg.png"
,
"homePahe/box1.png"
,
"homePahe/box2.png"
,
"homePahe/box3.png"
,
"homePahe/box4.png"
,
"homePahe/close1.png"
,
"homePahe/close2.png"
,
"homePahe/close3.png"
,
"homePahe/close4.png"
,
"homePahe/detail.png"
,
"homePahe/gameBarbg.png"
,
"homePahe/infobg.png"
,
"homePahe/open1.png"
,
"homePahe/open2.png"
,
"homePahe/open3.png"
,
"homePahe/open4.png"
,
"homePahe/prizebg.png"
,
"homePahe/rank.png"
,
"homePahe/rule.png"
,
"homePahe/show.png"
,
"homePahe/startBtn.png"
,
"homePahe/title.png"
,
"loading/bardown.png"
,
"loading/baron.png"
,
"loading/bg.png"
,
"loading/ip.png"
,
"loading/title.png"
,
"rankPage/back.png"
,
"rankPage/bg.png"
,
"rankPage/border.png"
,
"rankPage/headnline.png"
,
"rankPage/l_bg.png"
,
"rankPage/line.png"
,
"rankPage/ownbg.png"
,
"rulePop/bg.png"
,
"rulePop/close.png"
,
"successPop/bar.png"
,
"successPop/barbg.png"
,
"successPop/bg.png"
,
"successPop/btn.png"
,
"successPop/close.png"
]}
\ No newline at end of file
\ No newline at end of file
src/assets/detailPage/border.png
View replaced file @
dc94f44e
View file @
28070c04
12.5 KB
|
W:
|
H:
639 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/assets/detailPage/l_bg.png
deleted
100644 → 0
View file @
dc94f44e
633 KB
src/assets/rankPage/border.png
View replaced file @
dc94f44e
View file @
28070c04
12.6 KB
|
W:
|
H:
633 KB
|
W:
|
H:
2-up
Swipe
Onion skin
src/assets/rankPage/l_bg.png
deleted
100644 → 0
View file @
dc94f44e
627 KB
src/pages/detailpage/detailpage.jsx
View file @
28070c04
...
@@ -15,49 +15,76 @@ class Detailpage extends React.Component {
...
@@ -15,49 +15,76 @@ class Detailpage extends React.Component {
constructor
(
props
)
{
constructor
(
props
)
{
super
(
props
);
super
(
props
);
this
.
state
=
{
this
.
state
=
{
detailInfo
:
{}
logList
:
[],
// 列表数据
isSearching
:
false
// 是否在请求列表中
}
}
this
.
pageNum
=
1
;
// 页码
this
.
pageSize
=
10
;
// 每页条数
this
.
isLoadedAll
=
false
;
// 是否加载完所有数据
}
}
componentDidMount
()
{
componentDidMount
()
{
this
.
getDetail
();
this
.
getDetail
();
}
}
// 明细
// 明细 获取列表数据
getDetail
=
async
()
=>
{
getDetail
=
async
()
=>
{
const
{
success
,
data
}
=
await
API
.
getQGDetails
();
if
(
this
.
state
.
isSearching
)
return
;
if
(
this
.
isLoadedAll
)
return
;
this
.
setState
({
isSearching
:
true
})
const
params
=
{
pageNum
:
this
.
pageNum
,
// 页数,默认1
pageSize
:
this
.
pageSize
,
// 查询数量,默认10
}
const
{
success
,
data
}
=
await
API
.
getQGDetails
(
params
);
if
(
success
)
{
if
(
success
)
{
const
_list
=
this
.
state
.
logList
.
concat
(
data
?.
list
||
[])
this
.
setState
({
this
.
setState
({
detailInfo
:
data
||
{}
isSearching
:
false
,
})
logList
:
_list
,
});
this
.
isLoadedAll
=
!
data
?.
haveMore
this
.
pageNum
++
;
}
}
}
}
// 监听滚动事件
handScroll
=
(
e
)
=>
{
if
(
e
.
target
.
scrollTop
+
e
.
target
.
clientHeight
+
10
>=
e
.
target
.
scrollHeight
)
{
this
.
getDetail
();
}
};
back
=
_asyncThrottle
(()
=>
{
back
=
_asyncThrottle
(()
=>
{
store
.
changePage
(
PAGE_MAP
.
HOME_PAGE
)
store
.
changePage
(
PAGE_MAP
.
HOME_PAGE
)
})
})
render
()
{
render
()
{
const
list
=
this
.
state
.
detailInfo
.
list
||
[]
;
const
{
logList
}
=
this
.
state
;
return
(
return
(
<
div
className=
"detailpage
modal_center"
>
<
div
className=
"detailpage
"
onScroll=
{
this
.
handScroll
}
>
<
span
className=
"bg"
></
span
>
<
span
className=
"bg"
></
span
>
<
Button
className=
"back"
onClick=
{
this
.
back
}
/>
<
Button
className=
"back"
onClick=
{
this
.
back
}
/>
<
div
className=
"list"
>
<
div
className=
"list"
>
<
span
className=
"
border
"
></
span
>
<
span
className=
"
listbg
"
></
span
>
<
span
className=
"l_bg"
></
span
>
<
div
className=
"l_bg"
>
{
Array
.
isArray
(
list
)
&&
list
.
length
>
0
?
l
ist
.
map
((
item
,
index
)
=>
{
{
Array
.
isArray
(
logList
)
&&
logList
.
length
>
0
?
logL
ist
.
map
((
item
,
index
)
=>
{
const
{
changedType
,
quantity
,
createTimestamp
}
=
item
;
const
{
changedType
,
quantity
,
extra
,
createTimestamp
}
=
item
;
return
(
return
(
<
div
className=
"sample"
key=
{
index
}
>
<
div
className=
"sample"
key=
{
index
}
>
<
span
className=
"name"
>
完成
{
quantity
}
分获得青果
</
span
>
<
span
className=
"name"
>
{
extra
}
</
span
>
<
span
className=
"time"
>
{
dateFormatter
(
createTimestamp
,
"yyyy-MM-dd"
)
}
</
span
>
<
span
className=
"time"
>
{
dateFormatter
(
createTimestamp
,
"yyyy-MM-dd"
)
}
</
span
>
<
span
className=
"receive"
>
+1000000000
</
span
>
<
span
className=
"receive"
>
{
changedType
}{
quantity
}
</
span
>
<
span
className=
"line"
></
span
>
{
index
!=
logList
.
length
-
1
&&
<
span
className=
"line"
></
span
>
}
</
div
>
</
div
>
)
)
})
:
null
}
})
:
<
span
className=
"nodata"
>
暂无数据
</
span
>
}
</
div
>
</
div
>
</
div
>
<
span
className=
"headline"
></
span
>
<
span
className=
"headline"
></
span
>
</
div
>
</
div
>
...
...
src/pages/detailpage/detailpage.less
View file @
28070c04
@import "../../res.less";
@import "../../res.less";
.detailpage {
.detailpage {
width: 750px;
width: 750px;
height: 1624px;
height: 1624px;
left: 0px;
left: 0px;
top: 0px;
top: 0px;
position: absolute;
position: absolute;
.bg {
.bg {
width: 750px;
width: 750px;
height: 1624px;
height: 1624px;
...
@@ -13,6 +15,7 @@
...
@@ -13,6 +15,7 @@
position: absolute;
position: absolute;
.sparkBg("detailPage/bg.png");
.sparkBg("detailPage/bg.png");
}
}
.back {
.back {
width: 94px;
width: 94px;
height: 49px;
height: 49px;
...
@@ -21,13 +24,15 @@
...
@@ -21,13 +24,15 @@
position: absolute;
position: absolute;
.sparkBg("detailPage/back.png");
.sparkBg("detailPage/back.png");
}
}
.list {
.list {
width: 724px;
width: 724px;
height: 1351px;
height: 1351px;
left: 12px;
left: 12px;
top: 240px;
top: 240px;
position: absolute;
position: absolute;
.border {
.listbg {
width: 724px;
width: 724px;
height: 1351px;
height: 1351px;
left: 0px;
left: 0px;
...
@@ -35,21 +40,37 @@
...
@@ -35,21 +40,37 @@
position: absolute;
position: absolute;
.sparkBg("detailPage/border.png");
.sparkBg("detailPage/border.png");
}
}
.l_bg {
.l_bg {
width: 674px;
width: 674px;
height: 1298px;
height: auto;
left: 24px;
left: 38px;
top: 34px;
bottom: 52px;
top: 274px;
position: fixed;
overflow-y: auto;
overflow-x: hidden;
.nodata {
width: 674px;
height: 60px;
left: 0px;
top: 50px;
position: absolute;
position: absolute;
.sparkBg("detailPage/l_bg.png");
text-align: center;
font-size: 30px;
line-height: 30px;
color: rgba(255, 255, 255, 1);
}
}
.sample {
.sample {
width: 623px;
width: 623px;
height: 95px;
height: 95px;
left: 51
px;
left: 25
px;
top: 79
px;
top: 25
px;
margin-top: 15
px;
margin-top: 20
px;
position: relative;
position: relative;
.name {
.name {
width: 460px;
width: 460px;
height: 34px;
height: 34px;
...
@@ -61,6 +82,7 @@
...
@@ -61,6 +82,7 @@
color: rgba(255, 255, 255, 1);
color: rgba(255, 255, 255, 1);
.lineClamp1();
.lineClamp1();
}
}
.time {
.time {
width: 360px;
width: 360px;
height: 30px;
height: 30px;
...
@@ -72,17 +94,21 @@
...
@@ -72,17 +94,21 @@
color: rgba(183, 183, 183, 1);
color: rgba(183, 183, 183, 1);
.lineClamp1();
.lineClamp1();
}
}
.receive {
.receive {
width: 99px;
// width: 99px;
width: 120px;
height: 34px;
height: 34px;
left: 53
0px;
left: 52
0px;
top: 14px;
top: 14px;
position: absolute;
position: absolute;
font-size: 30px;
font-size: 30px;
line-height: 30px;
line-height: 30px;
color: rgba(255, 255, 255, 1);
color: rgba(255, 255, 255, 1);
.lineClamp1();
.lineClamp1();
text-align: left;
}
}
.line {
.line {
width: 623px;
width: 623px;
height: 4px;
height: 4px;
...
@@ -94,10 +120,12 @@
...
@@ -94,10 +120,12 @@
}
}
}
}
}
}
}
.headline {
.headline {
width: 464px;
width: 464px;
height: 140px;
height: 140px;
left: 14
1
px;
left: 14
3
px;
top: 93px;
top: 93px;
position: absolute;
position: absolute;
.sparkBg("detailPage/headline.png");
.sparkBg("detailPage/headline.png");
...
...
src/pages/rankpage/rankpage.jsx
View file @
28070c04
...
@@ -7,11 +7,29 @@ import { Button } from '@src/components/Button';
...
@@ -7,11 +7,29 @@ import { Button } from '@src/components/Button';
import
{
_asyncThrottle
}
from
'@src/utils/utils'
;
import
{
_asyncThrottle
}
from
'@src/utils/utils'
;
import
store
from
'@src/store'
;
import
store
from
'@src/store'
;
import
{
PAGE_MAP
}
from
'@src/utils/constants'
;
import
{
PAGE_MAP
}
from
'@src/utils/constants'
;
import
API
from
'@src/api'
;
@
observer
@
observer
class
Rankpage
extends
React
.
Component
{
class
Rankpage
extends
React
.
Component
{
constructor
(
props
)
{
constructor
(
props
)
{
super
(
props
);
super
(
props
);
this
.
state
=
{
info
:
{}
}
}
componentDidMount
()
{
this
.
getRank
();
}
// 明细
getRank
=
async
()
=>
{
const
{
success
,
data
}
=
await
API
.
getRankInfo
();
if
(
success
)
{
this
.
setState
({
info
:
data
||
{}
})
}
}
}
back
=
_asyncThrottle
(()
=>
{
back
=
_asyncThrottle
(()
=>
{
...
@@ -19,27 +37,56 @@ class Rankpage extends React.Component {
...
@@ -19,27 +37,56 @@ class Rankpage extends React.Component {
})
})
render
()
{
render
()
{
const
{
rankInfo
=
[],
myRank
=
{}
}
=
this
.
state
?.
info
;
const
hasRankData
=
rankInfo
.
length
>
0
;
return
(
return
(
<
div
className=
"rankpage
modal_center
"
>
<
div
className=
"rankpage"
>
<
span
className=
"bg"
></
span
>
<
span
className=
"bg"
></
span
>
<
span
className=
"headnline"
></
span
>
<
span
className=
"headnline"
></
span
>
<
span
className=
"tip"
>
该成绩仅为游戏当日分数
</
span
>
<
span
className=
"tip"
>
该成绩仅为游戏当日分数
</
span
>
<
Button
className=
"back"
onClick=
{
this
.
back
}
/>
<
Button
className=
"back"
onClick=
{
this
.
back
}
/>
<
div
className=
"list"
>
<
div
className=
"list"
>
<
span
className=
"border"
></
span
>
<
span
className=
"listbg"
></
span
>
<
span
className=
"l_bg"
></
span
>
<
div
className=
"own"
>
<
div
className=
"own"
>
<
span
className=
"ownbg"
></
span
>
<
span
className=
"ownbg"
></
span
>
<
span
className=
"ownrank"
>
99
</
span
>
<
span
className=
"ownrank"
>
<
span
className=
"ownname"
>
用户昵称12345(我)
</
span
>
{
myRank
.
index
===
-
1
<
span
className=
"ownscore"
>
200
</
span
>
?
'—'
:
myRank
.
index
>
100
?
'100+'
:
myRank
.
index
}
</
span
>
<
span
className=
"ownname"
>
{
myRank
.
userName
||
'口味王用户'
}
</
span
>
<
span
className=
"ownscore"
>
{
myRank
.
index
===
-
1
?
0
:
(
myRank
.
score
||
0
)
}
</
span
>
</
div
>
</
div
>
<
div
className=
"sample"
>
{
hasRankData
?
(
<
span
className=
"userrank"
>
99
</
span
>
<>
<
span
className=
"username"
>
用户昵称12345(他)
</
span
>
<
div
className=
"l_bg"
>
<
span
className=
"userscore"
>
200
</
span
>
{
Array
.
isArray
(
rankInfo
)
&&
rankInfo
.
length
>
0
&&
rankInfo
.
map
((
item
)
=>
(
<
div
className=
"sample"
key=
{
item
.
index
}
>
<
span
className=
"userrank"
>
{
item
.
index
===
-
1
?
'—'
:
item
.
index
>
100
?
'100+'
:
item
.
index
}
</
span
>
<
span
className=
"username"
>
{
item
.
userName
||
'口味王用户'
}
</
span
>
<
span
className=
"userscore"
>
{
item
.
index
===
-
1
?
0
:
(
item
.
score
||
0
)
}
</
span
>
<
span
className=
"line"
></
span
>
<
span
className=
"line"
></
span
>
</
div
>
</
div
>
))
}
</
div
>
</>
)
:
<
span
className=
'nodata'
>
暂无数据
</
span
>
}
<
span
className=
"rank"
>
排名
</
span
>
<
span
className=
"rank"
>
排名
</
span
>
<
span
className=
"name"
>
用户昵称
</
span
>
<
span
className=
"name"
>
用户昵称
</
span
>
<
span
className=
"score"
>
获得分数
</
span
>
<
span
className=
"score"
>
获得分数
</
span
>
...
...
src/pages/rankpage/rankpage.less
View file @
28070c04
@import "../../res.less";
@import "../../res.less";
.rankpage {
.rankpage {
width: 750px;
width: 750px;
height: 1624px;
height: 1624px;
left: 0px;
left: 0px;
top: 0px;
top: 0px;
position: absolute;
position: absolute;
.bg {
.bg {
width: 750px;
width: 750px;
height: 1624px;
height: 1624px;
...
@@ -13,6 +15,7 @@
...
@@ -13,6 +15,7 @@
position: absolute;
position: absolute;
.sparkBg("rankPage/bg.png");
.sparkBg("rankPage/bg.png");
}
}
.headnline {
.headnline {
width: 464px;
width: 464px;
height: 140px;
height: 140px;
...
@@ -21,6 +24,7 @@
...
@@ -21,6 +24,7 @@
position: absolute;
position: absolute;
.sparkBg("rankPage/headnline.png");
.sparkBg("rankPage/headnline.png");
}
}
.tip {
.tip {
width: 392px;
width: 392px;
height: 33px;
height: 33px;
...
@@ -31,6 +35,7 @@
...
@@ -31,6 +35,7 @@
line-height: 33px;
line-height: 33px;
color: rgba(255, 255, 255, 1);
color: rgba(255, 255, 255, 1);
}
}
.back {
.back {
width: 94px;
width: 94px;
height: 49px;
height: 49px;
...
@@ -39,13 +44,15 @@
...
@@ -39,13 +44,15 @@
position: absolute;
position: absolute;
.sparkBg("rankPage/back.png");
.sparkBg("rankPage/back.png");
}
}
.list {
.list {
width: 750px;
width: 750px;
height: 1351px;
height: 1351px;
left: 0px;
left: 0px;
top: 240px;
top: 240px;
position: absolute;
position: absolute;
.border {
.listbg {
width: 724px;
width: 724px;
height: 1351px;
height: 1351px;
left: 12px;
left: 12px;
...
@@ -53,29 +60,36 @@
...
@@ -53,29 +60,36 @@
position: absolute;
position: absolute;
.sparkBg("rankPage/border.png");
.sparkBg("rankPage/border.png");
}
}
.l_bg {
width: 674px;
.nodata {
height: 1298px;
width: 724px;
left: 36px;
height: 60px;
top: 34px;
// left: 12px;
top: 500px;
position: absolute;
position: absolute;
.sparkBg("rankPage/l_bg.png");
text-align: center;
overflow-y: auto;
font-size: 30px;
line-height: 30px;
color: rgba(255, 255, 255, 1);
}
}
.own {
.own {
width: 750px;
width: 750px;
height: 139px;
height: 139px;
left: 0
px
;
left: 0;
top: 12
0
px;
top: 12
1
px;
position: absolute;
position: absolute;
.ownbg {
.ownbg {
width: 750px;
width: 750px;
height: 139px;
height: 139px;
left: 0px;
left: 0px;
top: 0px;
top: 0px;
position: absolute;
position: absolute;
display: block;
.sparkBg("rankPage/ownbg.png");
.sparkBg("rankPage/ownbg.png");
}
}
.ownrank {
.ownrank {
width: 100px;
width: 100px;
height: 26px;
height: 26px;
...
@@ -88,6 +102,7 @@
...
@@ -88,6 +102,7 @@
.lineClamp1();
.lineClamp1();
text-align: center;
text-align: center;
}
}
.ownname {
.ownname {
width: 273px;
width: 273px;
height: 34px;
height: 34px;
...
@@ -100,6 +115,7 @@
...
@@ -100,6 +115,7 @@
.lineClamp1();
.lineClamp1();
text-align: center;
text-align: center;
}
}
.ownscore {
.ownscore {
width: 100px;
width: 100px;
height: 26px;
height: 26px;
...
@@ -113,17 +129,30 @@
...
@@ -113,17 +129,30 @@
text-align: center;
text-align: center;
}
}
}
}
.l_bg {
width: 674px;
height: auto;
left: 36px;
top: 465px;
bottom: 52px;
position: fixed;
overflow-y: auto;
overflow-x: hidden;
.sample {
.sample {
width: 623px;
width: 623px;
height: 75px;
height: 75px;
left: 63px;
left: 28px;
top: 274px;
top: 0px;
position: absolute;
position: relative;
margin-top: 15px;
.userrank {
.userrank {
width: 100px;
width: 100px;
height: 28px;
height: 28px;
left: -5px;
left: -5px;
top: 0
px;
top: 16
px;
position: absolute;
position: absolute;
font-size: 28px;
font-size: 28px;
line-height: 26px;
line-height: 26px;
...
@@ -131,11 +160,12 @@
...
@@ -131,11 +160,12 @@
.lineClamp1();
.lineClamp1();
text-align: center;
text-align: center;
}
}
.username {
.username {
width: 273px;
width: 273px;
height: 30px;
height: 30px;
left: 160px;
left: 160px;
top: -4
px;
top: 15
px;
position: absolute;
position: absolute;
font-size: 28px;
font-size: 28px;
line-height: 28px;
line-height: 28px;
...
@@ -143,11 +173,12 @@
...
@@ -143,11 +173,12 @@
.lineClamp1();
.lineClamp1();
text-align: center;
text-align: center;
}
}
.userscore {
.userscore {
width: 100px;
width: 100px;
height: 32px;
height: 32px;
left: 495px;
left: 495px;
top: -4
px;
top: 15
px;
position: absolute;
position: absolute;
font-size: 28px;
font-size: 28px;
line-height: 30px;
line-height: 30px;
...
@@ -155,6 +186,7 @@
...
@@ -155,6 +186,7 @@
.lineClamp1();
.lineClamp1();
text-align: center;
text-align: center;
}
}
.line {
.line {
width: 623px;
width: 623px;
height: 4px;
height: 4px;
...
@@ -165,6 +197,8 @@
...
@@ -165,6 +197,8 @@
.sparkBg("rankPage/line.png");
.sparkBg("rankPage/line.png");
}
}
}
}
}
.rank {
.rank {
width: 66px;
width: 66px;
height: 28px;
height: 28px;
...
@@ -175,16 +209,18 @@
...
@@ -175,16 +209,18 @@
line-height: 28px;
line-height: 28px;
color: rgba(255, 255, 255, 1);
color: rgba(255, 255, 255, 1);
}
}
.name {
.name {
width: 132px;
width: 132px;
height: 28px;
height: 28px;
left: 282
px;
left: 296
px;
top: 68px;
top: 68px;
position: absolute;
position: absolute;
font-size: 30px;
font-size: 30px;
line-height: 28px;
line-height: 28px;
color: rgba(255, 255, 255, 1);
color: rgba(255, 255, 255, 1);
}
}
.score {
.score {
width: 131px;
width: 131px;
height: 28px;
height: 28px;
...
...
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