Commit 5ee59d83 authored by xulili's avatar xulili

森林状态

parent 4b9d640d
import request from "@/utils/request";
/**
* 空投池
* @param {*}
*/
export function queryAerialDelivery() {
return request({
url: `/user/queryAerialDelivery`,
method: "get"
});
}
import request from "@/utils/request";
/**
* 获取进步奖
* @param {*} params userId
*/
export function getProgressPrizes() {
return request({
url: "/growth/getProgressPrizes",
method: "get"
});
}
...@@ -8,6 +8,141 @@ const levels = { ...@@ -8,6 +8,141 @@ const levels = {
6: "森林之星", 6: "森林之星",
7: "西田森合伙人" 7: "西田森合伙人"
}; };
const getDesOfield = {
differenceAmount: "差额",
recommendDifferenceSeedling: "幼苗",
recommendDifferenceSilver: "白银",
recommendDifferenceGold: "黄金",
teamDifferenceBronze: "青铜",
teamDifferenceSilver: "白银",
teamDifferenceGold: "黄金",
recommendDifferenceFarmer: "农场主",
recommendDifferenceForestStart: "森林之星"
};
export let diffrentOflevel = {
0: [
{
label: getDesOfield["differenceAmount"],
field: "differenceAmount",
type: "amount",
index: 1
}
],
1: [
{
label: getDesOfield["differenceAmount"],
field: "differenceAmount",
type: "amount",
index: 1
}
],
2: [
{
label: getDesOfield["recommendDifferenceSeedling"],
field: "recommendDifferenceSeedling",
type: "recommend",
index: 1
}
],
3: [
{
label: getDesOfield["recommendDifferenceSeedling"],
field: "recommendDifferenceSeedling",
type: "recommend",
index: 1
},
{
label: getDesOfield["recommendDifferenceSilver"],
field: "recommendDifferenceSilver",
type: "recommend",
index: 2
},
{
label: getDesOfield["teamDifferenceBronze"],
field: "teamDifferenceBronze",
type: "team",
index: 1
}
],
4: [
{
label: getDesOfield["recommendDifferenceSeedling"],
field: "recommendDifferenceSeedling",
type: "recommend",
index: 1
},
{
label: getDesOfield["recommendDifferenceGold"],
field: "recommendDifferenceGold",
type: "recommend",
index: 2
},
{
label: getDesOfield["teamDifferenceSilver"],
field: "teamDifferenceSilver",
type: "team",
index: 1
}
],
5: [
{
label: getDesOfield["recommendDifferenceSeedling"],
field: "recommendDifferenceSeedling",
type: "recommend",
index: 1
},
{
label: getDesOfield["recommendDifferenceFarmer"],
field: "recommendDifferenceFarmer",
type: "recommend",
index: 2
},
{
label: getDesOfield["teamDifferenceSilver"],
field: "teamDifferenceSilver",
type: "team",
index: 1
},
{
label: getDesOfield["teamDifferenceGold"],
field: "teamDifferenceGold",
type: "team",
index: 2
}
],
6: [
{
label: getDesOfield["recommendDifferenceSeedling"],
field: "recommendDifferenceSeedling",
type: "recommend",
index: 1
},
{
label: getDesOfield["recommendDifferenceFarmer"],
field: "recommendDifferenceFarmer",
type: "recommend",
index: 2
},
{
label: getDesOfield["recommendDifferenceForestStart"],
field: "recommendDifferenceForestStart",
type: "recommend",
index: 3
},
{
label: getDesOfield["teamDifferenceSilver"],
field: "teamDifferenceSilver",
type: "team",
index: 1
},
{
label: getDesOfield["teamDifferenceGold"],
field: "teamDifferenceGold",
type: "team",
index: 2
}
]
};
export function getLevelDes(level) { export function getLevelDes(level) {
const label = levels[level]; const label = levels[level];
if (label) { if (label) {
......
...@@ -13,13 +13,15 @@ ...@@ -13,13 +13,15 @@
<div class="air-panel"> <div class="air-panel">
<div class="notice-bar"> <div class="notice-bar">
<img src="@/assets/images/icon-notice.png" alt="" /> <img src="@/assets/images/icon-notice.png" alt="" />
<div class="notice-bar-show"> <div class="notice-bar-show" id="scroll-box">
<p class="dark">88888888888</p> <div class="user-id-list">
<p>88888888888</p> <p v-for="(item, index) in userPoolVos" :key="index">
<p class="dark">88888888888</p> {{ item.userId }}
<p>88888888888</p> </p>
<p>88888888888</p> <p v-for="(item, index) in userPoolVos" :key="index + 'us'">
<p>88888888888</p> {{ item.userId }}
</p>
</div>
</div> </div>
</div> </div>
</div> </div>
...@@ -28,7 +30,7 @@ ...@@ -28,7 +30,7 @@
<div class="air-panel-num-content"> <div class="air-panel-num-content">
<img src="@/assets/images/parachute.png" alt="" /> <img src="@/assets/images/parachute.png" alt="" />
<p> <p>
本月<span>{{ personNum }}</span> 人在池 本月<span>{{ total }}</span> 人在池
</p> </p>
</div> </div>
</div> </div>
...@@ -36,15 +38,58 @@ ...@@ -36,15 +38,58 @@
</template> </template>
<script> <script>
import { queryAerialDelivery } from "@/api/airDropPool";
export default { export default {
name: "leagueNums", name: "leagueNums",
data() { data() {
return { return {
personNum: 108 total: 0,
userPoolVos: [{ userId: "" }],
timer: null
}; };
}, },
mounted() {}, mounted() {
methods: {} this.queryData();
},
methods: {
queryData() {
const _this = this;
queryAerialDelivery().then(res => {
console.log(res);
if (res.code === 0) {
_this.total = res.data.total;
_this.userPoolVos = res.data.userPoolVos;
_this.$nextTick(() => {
_this.scroll();
});
} else {
_this.$toast(res.msg);
}
});
},
scroll() {
this.timer = setInterval(this.autoScrollLine, 100);
},
autoScrollLine() {
let box = document.getElementById("scroll-box");
let parent = document.getElementsByClassName("user-id-list")[0];
const _this = this;
if (box) {
if (box.scrollTop != null && box.scrollTop >= parent.offsetHeight) {
box.scrollTop = 0;
} else {
box.scrollTop += 1;
}
if (box.scrollTop % box.offsetHeight == 0) {
clearInterval(_this.timer);
box.scrollTop = 0;
setTimeout(() => {
_this.timer = setInterval(_this.autoScrollLine, 100);
}, 0);
}
}
}
}
}; };
</script> </script>
...@@ -132,16 +177,36 @@ $white: #ffffff; ...@@ -132,16 +177,36 @@ $white: #ffffff;
display: flex; display: flex;
align-items: center; align-items: center;
padding: 0 20px 0 50px; padding: 0 20px 0 50px;
position: relative;
&::before,
&::after {
content: "";
display: inline-block;
width: calc(100% - 81px);
height: 33.33%;
position: absolute;
background-color: #ffffff;
opacity: 0.4;
left: 81px;
}
&::before {
top: 0;
}
&::after {
top: 66.66%;
}
img { img {
width: 16px; width: 16px;
margin-right: 15px; margin-right: 15px;
} }
.notice-bar-show { .notice-bar-show {
height: 100%; height: 100%;
overflow: scroll;
p { p {
font-size: 16px; font-size: 16px;
color: #333333; color: #999;
height: 33.33%; height: 36.6px;
margin: 0; margin: 0;
padding: 0; padding: 0;
display: flex; display: flex;
......
...@@ -11,11 +11,26 @@ ...@@ -11,11 +11,26 @@
</div> </div>
<div class="forest-content"> <div class="forest-content">
<div class="forest-level">Lv.{{ userLevel }}{{ levelDes }}</div> <div class="forest-level">Lv.{{ userLevel }}{{ levelDes }}</div>
<div class="nums">距离下一级直推用户还需增加{{ directpush }}</div> <div v-for="(item, key, index) in diffrentMap" :key="index">
<div class="nums">距离下一级团队用户还需增加{{ team }}</div> <div>
<div class="nums">
<span>距离下一级</span>
<span v-if="key === 'team'">团队用户</span>
<span v-else-if="key === 'recommend'">直推用户</span>
<span v-else></span>
<span>还需增加</span>
<span v-for="(d, i) in item" :key="i">
{{ d.value }}
{{ d.label }}
</span>
</div>
</div>
</div>
<!-- <div class="level-progress" v-if="userLevel!=7"> -->
<div class="level-progress"> <div class="level-progress">
<div class="level-num">Lv.{{ userLevel }}</div> <div class="level-num">Lv.{{ userLevel }}</div>
<van-progress :percentage="50" /> <van-progress :percentage="perenct * 100" />
<div class="level-num">Lv.{{ nextLevel }}</div> <div class="level-num">Lv.{{ nextLevel }}</div>
</div> </div>
<div class="relegation">保级还需增加¥{{ relegationNum }} 业绩</div> <div class="relegation">保级还需增加¥{{ relegationNum }} 业绩</div>
...@@ -40,7 +55,7 @@ ...@@ -40,7 +55,7 @@
<script> <script>
import { getForestStatus } from "@/api/grade"; import { getForestStatus } from "@/api/grade";
import { getLevelDes, getNextLevel } from "@/config/grade"; import { getLevelDes, getNextLevel, diffrentOflevel } from "@/config/grade";
export default { export default {
name: "grade", name: "grade",
data() { data() {
...@@ -48,10 +63,12 @@ export default { ...@@ -48,10 +63,12 @@ export default {
userLevel: "", userLevel: "",
levelDes: "白银树", levelDes: "白银树",
directpush: "XXX", directpush: "XXX",
team: "XXX",
relegationNum: "21,141", relegationNum: "21,141",
currentLevel: "", currentLevel: "",
nextLevel: "", nextLevel: "",
perenct: 0,
diffrentMap: {},
type: ["amount", "recommend", "team"],
list: [ list: [
{ {
num: 14, num: 14,
...@@ -82,7 +99,7 @@ export default { ...@@ -82,7 +99,7 @@ export default {
}; };
}, },
mounted() { mounted() {
this.getstatus() this.getstatus();
}, },
methods: { methods: {
handleUrl(urlName) { handleUrl(urlName) {
...@@ -101,6 +118,7 @@ export default { ...@@ -101,6 +118,7 @@ export default {
}); });
}, },
handleData(data) { handleData(data) {
this.perenct = data.perenct;
this.userLevel = data.userLevel; this.userLevel = data.userLevel;
this.levelDes = getLevelDes(data.userLevel); this.levelDes = getLevelDes(data.userLevel);
let nextLevelObj = getNextLevel(data.userLevel); let nextLevelObj = getNextLevel(data.userLevel);
...@@ -108,8 +126,25 @@ export default { ...@@ -108,8 +126,25 @@ export default {
this.nextLevel = nextLevelObj.nextLevel; this.nextLevel = nextLevelObj.nextLevel;
} }
this.list.forEach(v => { this.list.forEach(v => {
v.num = data[v['field']] v.num = data[v["field"]];
}) });
this.diffrentMap = [];
if (data.userLevel < 7) {
let diffrentMap = diffrentOflevel[data.userLevel];
let desObj = {};
if (diffrentMap) {
diffrentMap.forEach(v => {
v.value = data.differenceMap[v.field];
if (desObj[v.type]) {
desObj[v.type].push(v);
} else {
desObj[v.type] = [];
desObj[v.type].push(v);
}
});
this.diffrentMap = desObj;
}
}
} }
} }
}; };
...@@ -193,7 +228,8 @@ $white: #ffffff; ...@@ -193,7 +228,8 @@ $white: #ffffff;
flex-direction: row; flex-direction: row;
flex-wrap: wrap; flex-wrap: wrap;
justify-content: space-between; justify-content: space-between;
margin-top: 20px; position: absolute;
top: 270px;
.forest-item { .forest-item {
height: 98px; height: 98px;
background-color: #ffffff; background-color: #ffffff;
......
...@@ -6,9 +6,13 @@ ...@@ -6,9 +6,13 @@
<div style="flex:1"> <div style="flex:1">
<img class="avatar" src="@/assets/images/avatar.png" alt="用户头像" /> <img class="avatar" src="@/assets/images/avatar.png" alt="用户头像" />
</div> </div>
<span class="userName" style="flex:2;text-align:center">135****4857</span> <span class="userName" style="flex:2;text-align:center">{{
<span style="flex:2;text-align:center">25%</span> prizeVos.userId
<span class="item-flex-1" style="color:#fc5202">¥125</span> }}</span>
<span style="flex:2;text-align:center">{{ prizeVos.growthRate }}%</span>
<span class="item-flex-1" style="color:#fc5202"
>{{ prizeVos.awardMoney }}</span
>
</div> </div>
</template> </template>
...@@ -18,6 +22,9 @@ export default { ...@@ -18,6 +22,9 @@ export default {
props: { props: {
RankIndex: { RankIndex: {
type: Number type: Number
},
prizeVos: {
type: Object
} }
} }
}; };
......
...@@ -3,7 +3,7 @@ ...@@ -3,7 +3,7 @@
<div class="bg"> <div class="bg">
<van-icon name="arrow-left" @click="$router.go(-1)" /> <van-icon name="arrow-left" @click="$router.go(-1)" />
<span class="title">本月进步最大奖励池</span> <span class="title">本月进步最大奖励池</span>
<span class="award">6000.00</span> <span class="award">{{ growthTotal }}</span>
</div> </div>
<div class="rank"> <div class="rank">
<div class="header rank-flex"> <div class="header rank-flex">
...@@ -17,9 +17,10 @@ ...@@ -17,9 +17,10 @@
<base-refresh-scroll> <base-refresh-scroll>
<div slot="content"> <div slot="content">
<rank-item <rank-item
v-for="(item, index) in 20" v-for="(item, index) in prizeVos"
:key="index" :key="index"
:rank-index="index + 1" :rank-index="index + 1"
:prizeVos="item"
/> />
</div> </div>
</base-refresh-scroll> </base-refresh-scroll>
...@@ -31,11 +32,35 @@ ...@@ -31,11 +32,35 @@
<script> <script>
import BaseRefreshScroll from "../../components/BaseRefreshScroll.vue"; import BaseRefreshScroll from "../../components/BaseRefreshScroll.vue";
import RankItem from "./compoments/rankItem.vue"; import RankItem from "./compoments/rankItem.vue";
import { getProgressPrizes } from "@/api/progressPrizes";
export default { export default {
name: "FastestProgress", name: "FastestProgress",
components: { components: {
RankItem, RankItem,
BaseRefreshScroll BaseRefreshScroll
},
data() {
return {
growthTotal: 0,
prizeVos: []
};
},
mounted() {
this.getProgressPrizes();
},
methods: {
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 = [];
}
});
}
} }
}; };
</script> </script>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment