ranking.vue 2.1 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182
  1. <template>
  2. <view>
  3. <!-- 顶部导航 -->
  4. <fa-navbar title="签到排行榜"></fa-navbar>
  5. <view class="u-p-30">
  6. <block v-for="(item, index) in ranklist" :key="index">
  7. <view class="u-flex u-col-center u-row-around u-p-30 u-m-b-20 u-bg-white">
  8. <view class="u-flex-1 u-text-weight u-flex u-col-center u-row-around">
  9. <image v-if="index<3" class="medal" :src="'../../static/image/'+index+'.png'" mode="aspectFill"></image>
  10. <text v-else>{{ index + 1 }}</text>
  11. </view>
  12. <view class="u-flex-2 u-flex u-col-center u-row-around">
  13. <u-avatar :src="item.user.avatar"></u-avatar>
  14. </view>
  15. <view class="u-flex-4 u-m-l-15 u-line-1">{{ item.user.nickname }}</view>
  16. <view class="u-flex-5 u-text-right">连续签到<text class="u-text-weight u-p-l-10 u-p-r-10">{{ item.days }}</text>天</view>
  17. </view>
  18. </block>
  19. </view>
  20. <view class="" v-if="self_rank>10">
  21. <u-gap height="120" bg-color="#f4f6f8" ></u-gap>
  22. <view class="u-bg-white u-p-l-30 u-p-r-30 self-rank">
  23. <view class="u-flex u-col-center u-row-around u-p-30 ">
  24. <view class="u-text-weight">{{ self_rank }}</view>
  25. <view class="">{{ vuex_user.nickname }}</view>
  26. <u-avatar :src="vuex_user.avatar"></u-avatar>
  27. <view class="">连续签到<text class="u-text-weight u-p-l-10 u-p-r-10">{{ successions }}</text>天</view>
  28. </view>
  29. </view>
  30. </view>
  31. <!-- 底部导航 -->
  32. <fa-tabbar></fa-tabbar>
  33. </view>
  34. </template>
  35. <script>
  36. export default {
  37. onLoad() {
  38. this.getSignRank();
  39. },
  40. data() {
  41. return {
  42. ranklist: [],
  43. self_rank: 0,
  44. successions: 0
  45. };
  46. },
  47. methods: {
  48. getSignRank() {
  49. this.$api.signRank().then(res => {
  50. if (res.code) {
  51. this.ranklist = res.data.ranklist;
  52. this.self_rank = res.data.self_rank;
  53. this.successions = res.data.successions;
  54. }
  55. });
  56. }
  57. }
  58. };
  59. </script>
  60. <style lang="scss">
  61. page {
  62. background-color: #f4f6f8;
  63. }
  64. .u-flexs {
  65. display: flex;
  66. flex-direction: column;
  67. align-items: center;
  68. }
  69. .self-rank{
  70. position: fixed;
  71. width: 100%;
  72. bottom: 0;
  73. left: 0;
  74. }
  75. .medal{
  76. width: 50rpx;
  77. height: 50rpx;
  78. }
  79. </style>