ranking.vue 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187
  1. <template>
  2. <view>
  3. <view class="content">
  4. <view class="title">
  5. <view class="label label_1">排名</view>
  6. <view class="label label_2">姓名</view>
  7. <view class="label label_3">完成数</view>
  8. <view class="label label_4">总用时</view>
  9. </view>
  10. <scroll-view scroll-y @scrolltolower="scrolltolower">
  11. <view class="list">
  12. <view class="item" v-for="(item,index) in list" :key="index">
  13. <view class="label label_1">
  14. <view class="index" v-if="index == 0" style="background-color: #FFCE30;">
  15. {{index+1}}
  16. </view>
  17. <view class="index" v-else-if="index == 1" style="background-color: #BABABA;">
  18. {{index+1}}
  19. </view>
  20. <view class="index" v-else-if="index == 2" style="background-color: #CF892E;">
  21. {{index+1}}
  22. </view>
  23. <view class="index" v-else>
  24. {{index+1}}
  25. </view>
  26. </view>
  27. <view class="label label_2">
  28. <view class="img">
  29. <image :src="item.sign" mode="aspectFill"></image>
  30. </view>
  31. <view class="name">{{item.name}}</view>
  32. </view>
  33. <view class="label label_3">
  34. <view class="num">{{item.num}}</view>
  35. </view>
  36. <view class="label label_4">
  37. <view class="time">{{Math.floor(item.completion_time/60)}}分钟{{item.completion_time%60}}秒</view>
  38. </view>
  39. </view>
  40. </view>
  41. </scroll-view>
  42. </view>
  43. </view>
  44. </template>
  45. <script>
  46. export default {
  47. data() {
  48. return {
  49. list:[]
  50. };
  51. },
  52. onLoad(option) {
  53. console.log(option)
  54. this.get_jigsawPuzzle_getRankingById(option.id)
  55. },
  56. methods:{
  57. scrolltolower(){
  58. console.log('++')
  59. },
  60. get_jigsawPuzzle_getRankingById(id){
  61. this.$api.jigsawPuzzle_getRankingById({
  62. special_id:id
  63. }).then((res)=>{
  64. console.log(res.data.data)
  65. this.list = res.data.data
  66. })
  67. }
  68. }
  69. }
  70. </script>
  71. <style lang="scss">
  72. page {
  73. box-sizing: border-box;
  74. padding: 25rpx;
  75. background-color: #009FE8;
  76. }
  77. .content {
  78. width: 700rpx;
  79. // height: 100vh;
  80. height: calc(100vh - 140rpx);
  81. background-image: url(./icon/bg.png);
  82. background-size: 100% 100%;
  83. background-repeat: no-repeat;
  84. }
  85. .title{
  86. width: 700rpx;
  87. box-sizing: border-box;
  88. padding: 50rpx 25rpx 25rpx;
  89. display: flex;
  90. justify-content: space-between;
  91. .label{
  92. color: #CBA164;
  93. font-size: 28rpx;
  94. text-align: center;
  95. font-weight: 700;
  96. }
  97. .label_1{
  98. width: 70rpx;
  99. }
  100. .label_2{
  101. width: 200rpx;
  102. }
  103. .label_3{
  104. width: 90rpx;
  105. }
  106. .label_4{
  107. width: 190rpx;
  108. }
  109. }
  110. .list{
  111. height: calc(100vh - 320rpx);
  112. width: 700rpx;
  113. box-sizing: border-box;
  114. padding: 0 25rpx;
  115. .item{
  116. margin-bottom: 10rpx;
  117. width: 650rpx;
  118. height: 100rpx;
  119. background-image: url(./icon/item.png);
  120. background-size: 100% 100%;
  121. background-repeat: no-repeat;
  122. display: flex;
  123. justify-content: space-between;
  124. align-items: center;
  125. text-align: center;
  126. font-size: 28rpx;
  127. color: #3A230A;
  128. .label_1{
  129. padding-left: 15rpx;
  130. width: 70rpx;
  131. color: #FFFFFF;
  132. font-weight: 700;
  133. .index{
  134. width:55rpx;
  135. height:55rpx;
  136. line-height:55rpx;
  137. border-radius: 50%;
  138. }
  139. }
  140. .label_2{
  141. width: 190rpx;
  142. display: flex;
  143. align-items: center;
  144. .img{
  145. margin-right: 15rpx;
  146. image{
  147. border: 4rpx solid #FFFFFF;
  148. width: 60rpx;
  149. height: 60rpx;
  150. display: block;
  151. border-radius: 50%;
  152. }
  153. }
  154. .name{
  155. overflow:hidden;
  156. text-overflow:ellipsis;
  157. white-space:nowrap;
  158. font-size: 36rpx;
  159. font-weight: 700;
  160. color: #FFFFFF;
  161. text-shadow: 0rpx 4rpx 0rpx #3A230A;
  162. }
  163. }
  164. .label_3{
  165. width: 90rpx;
  166. }
  167. .label_4{
  168. width: 190rpx;
  169. }
  170. }
  171. }
  172. </style>