fastest-progress.vue 3.4 KB
Newer Older
leiqingsong's avatar
leiqingsong committed
1 2 3
<template>
  <div class="fastest-progress">
    <div class="bg">
leiqingsong's avatar
leiqingsong committed
4
      <van-icon name="arrow-left" @click="handlerBack" />
leiqingsong's avatar
leiqingsong committed
5
      <span class="title">本月进步最大奖励池</span>
leiqingsong's avatar
leiqingsong committed
6 7 8
      <span class="award"
        ><span v-if="growthTotal > 0"></span>{{ growthTotal }}</span
      >
leiqingsong's avatar
leiqingsong committed
9 10 11 12 13
    </div>
    <div class="rank">
      <div class="header rank-flex">
        <span style="flex:1;text-align:center;">排名</span>
        <span style="flex:1"></span>
14
        <span style="flex:2;text-align:center">用户名</span>
leiqingsong's avatar
leiqingsong committed
15 16 17 18 19 20
        <span style="flex:2">本月业绩增长率</span>
        <span style="flex:1;text-align:center">奖金</span>
      </div>
      <div class="rank-flex rank-content">
        <base-refresh-scroll>
          <div slot="content">
leiqingsong's avatar
leiqingsong committed
21
            <rank-item
xulili's avatar
xulili committed
22
              v-for="(item, index) in prizeVos"
leiqingsong's avatar
leiqingsong committed
23 24
              :key="index"
              :rank-index="index + 1"
xulili's avatar
xulili committed
25
              :prizeVos="item"
leiqingsong's avatar
leiqingsong committed
26
            />
leiqingsong's avatar
leiqingsong committed
27 28 29 30 31 32 33 34 35 36
          </div>
        </base-refresh-scroll>
      </div>
    </div>
  </div>
</template>

<script>
import BaseRefreshScroll from "../../components/BaseRefreshScroll.vue";
import RankItem from "./compoments/rankItem.vue";
xulili's avatar
xulili committed
37
import { getProgressPrizes } from "@/api/progressPrizes";
leiqingsong's avatar
leiqingsong committed
38 39 40 41 42
export default {
  name: "FastestProgress",
  components: {
    RankItem,
    BaseRefreshScroll
xulili's avatar
xulili committed
43 44 45 46 47 48 49
  },
  data() {
    return {
      growthTotal: 0,
      prizeVos: []
    };
  },
leiqingsong's avatar
leiqingsong committed
50
  beforeRouteEnter(to, from, next) {
leiqingsong's avatar
leiqingsong committed
51
    console.log("路由前");
leiqingsong's avatar
leiqingsong committed
52
    try {
leiqingsong's avatar
leiqingsong committed
53
      this.$bridgeToAppFun.showBottomBar(false);
leiqingsong's avatar
leiqingsong committed
54
    } catch {
leiqingsong's avatar
leiqingsong committed
55 56
      console.log("无法请求App");
      next();
leiqingsong's avatar
leiqingsong committed
57 58 59 60 61
    }
  },
  beforeRouteLeave(to, form, next) {
    console.log("离开");
    try {
leiqingsong's avatar
leiqingsong committed
62
      this.$bridgeToAppFun.showBottomBar(true);
leiqingsong's avatar
leiqingsong committed
63
    } catch {
leiqingsong's avatar
leiqingsong committed
64
      console.log("未能和App交互");
leiqingsong's avatar
leiqingsong committed
65 66 67
      next();
    }
  },
xulili's avatar
xulili committed
68 69 70 71
  mounted() {
    this.getProgressPrizes();
  },
  methods: {
leiqingsong's avatar
leiqingsong committed
72
    handlerBack() {
leiqingsong's avatar
leiqingsong committed
73
      try {
leiqingsong's avatar
leiqingsong committed
74
        this.$bridgeToAppFun.navigateBack();
leiqingsong's avatar
leiqingsong committed
75
      } catch {
leiqingsong's avatar
leiqingsong committed
76
        console.log("不能和App交互");
leiqingsong's avatar
leiqingsong committed
77 78
        this.$router.go(-1);
      }
leiqingsong's avatar
leiqingsong committed
79
    },
xulili's avatar
xulili committed
80 81 82 83 84 85 86 87 88 89 90 91
    getProgressPrizes() {
      const _this = this;
      getProgressPrizes().then(res => {
        if (res.code === 0) {
          _this.growthTotal = res.data.growthTotal;
          _this.prizeVos = res.data.prizeVos;
        } else {
          _this.growthTotal = 0;
          _this.prizeVos = [];
        }
      });
    }
leiqingsong's avatar
leiqingsong committed
92 93 94 95 96 97 98
  }
};
</script>

<style lang="scss" scoped>
.fastest-progress {
  position: relative;
leiqingsong's avatar
leiqingsong committed
99
  height: 100vh;
leiqingsong's avatar
leiqingsong committed
100 101 102 103 104 105 106 107
}
.bg {
  position: relative;
  height: 178px;
  color: #ffffff;
  background-image: url("../../assets/images/进步奖背景图.png");
  background-size: cover;
  .van-icon {
leiqingsong's avatar
leiqingsong committed
108 109 110 111 112 113 114 115
    position: absolute;
    top: 0;
    bottom: 0;
    width: 52px;
    height: 46px;
    line-height: 46px;
    text-align: center;
    font-size: 16px;
leiqingsong's avatar
leiqingsong committed
116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136
    color: #ffffff;
  }
  .title {
    position: absolute;
    top: 113px;
    left: 35px;
    font-size: 14px;
  }
  .award {
    position: absolute;
    top: 136px;
    left: 35px;
    font-size: 16px;
  }
}
.rank {
  position: absolute;
  top: 168px;
  box-sizing: border-box;
  width: 100%;
  height: calc(100% - 178px);
leiqingsong's avatar
leiqingsong committed
137
  overflow: hidden;
leiqingsong's avatar
leiqingsong committed
138 139 140 141 142 143 144
  padding: 10px;
  background-color: #ffffff;
  border-radius: 12px;

  .header {
    height: 36px;
    font-size: 13px;
leiqingsong's avatar
leiqingsong committed
145
    font-weight: bold;
leiqingsong's avatar
leiqingsong committed
146 147
    border-bottom: 1px solid #eeeeee;
  }
leiqingsong's avatar
leiqingsong committed
148 149 150 151 152
  .rank-content {
    position: relative;
    height: 100%;
    overflow: hidden;
  }
leiqingsong's avatar
leiqingsong committed
153 154 155 156 157
  .rank-flex {
    display: flex;
  }
}
</style>