From 147e7a2fcffa1e1b4ce6c8a998b5a03e912facd9 Mon Sep 17 00:00:00 2001 From: zhaofang <752743406@qq.com> Date: Mon, 26 Sep 2022 18:41:47 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/tools.js | 75 +++++++++++++++++++++++++++++++++++ src/views/ucurrency/Index.vue | 64 ++++++++++++++++++------------ src/views/user/ranking.vue | 41 +++++++++++-------- 3 files changed, 137 insertions(+), 43 deletions(-) diff --git a/src/utils/tools.js b/src/utils/tools.js index 1e9fc864..368735ad 100644 --- a/src/utils/tools.js +++ b/src/utils/tools.js @@ -263,3 +263,78 @@ export function getUType(type) { let name = uTypeMaps[type]; return name; } + + +export function experienceValue(total) { + let data = { + start:'', + end:'', + endValue:null, + percentage:null, + total, + } + if(total < 300) { + data.start = 'LV1'; + data.end = 'LV2'; + data.endValue = 600; + data.percentage = parseFloat((total / 600) * 100); + } else if(total > 300 || total == 300 || total < 600){ + data.start = 'LV2'; + data.end = 'LV3'; + data.endValue = 1000; + data.percentage = parseFloat((total / 1000) * 1000); + } else if(total > 600 || total == 600 || total < 1000){ + data.start = 'LV3'; + data.end = 'LV4'; + data.endValue = 2000; + data.percentage = parseFloat((total / 2000) * 100); + } else if(total > 1000 || total == 1000 || total < 2000){ + data.start = 'LV4'; + data.end = 'LV5'; + data.endValue = 4000; + data.percentage = parseFloat((total / 4000) * 4000); + } else if(total > 2000 || total == 2000 || total < 4000){ + data.start = 'LV5'; + data.end = 'LV6'; + data.endValue = 8000; + data.percentage = parseFloat((total / 8000) * 100); + } else if(total > 4000 || total == 4000 || total < 8000){ + data.start = 'LV6'; + data.end = 'LV7'; + data.endValue = 15000; + data.percentage = parseFloat((total / 15000) * 100); + } else if(total > 8000 || total == 8000 || total < 15000){ + data.start = 'LV7'; + data.end = 'LV8'; + data.endValue = 20000; + data.percentage = parseFloat((total / 20000) * 100); + } else if(total > 15000 || total == 15000 || total < 20000){ + data.start = 'LV8'; + data.end = 'LV9'; + data.endValue = 30000; + data.percentage = parseFloat((total / 30000) * 100); + } else if(total > 20000 || total == 20000 || total < 30000){ + data.start = 'LV9'; + data.end = 'LV10'; + data.endValue = 30000; + data.percentage = parseFloat((total / 30000) * 100); + } else if(total > 30000 || total == 30000){ + data.start = 'LV9'; + data.end = 'LV10'; + data.endValue = 30000; + data.percentage = parseFloat((total / 30000) * 100); + } + return data; +} +export function translate(field) { + let name = ''; + switch (field) { + case 'total':name = '累计'; break; + case 'weeks':name = '本周'; break; + case 'months':name = '本月'; break; + case 'years':name = '本年'; break; + default: + break; + } + return name; +} diff --git a/src/views/ucurrency/Index.vue b/src/views/ucurrency/Index.vue index 92794bde..b46db8da 100644 --- a/src/views/ucurrency/Index.vue +++ b/src/views/ucurrency/Index.vue @@ -56,13 +56,14 @@
-
300/600
-
-
+
{{current.total}}/{{current.endValue}}
+
+ +
- LV1 - LV2 + {{current.start}} + {{current.end}}
@@ -192,6 +193,7 @@ import author from '@/components/Portal/authorInfo.vue'; import apiUser from "@/api/system/user.js"; import * as echarts from 'echarts' + import {translate,experienceValue} from "@/utils/tools.js"; export default{ computed: { ...mapGetters(['userInfo']), @@ -200,6 +202,9 @@ components: {authorImg,author}, data(){ return{ + current:{}, + experienceValue, + translate, cycle:'total', name:'累计', getUType, @@ -228,18 +233,7 @@ this.getRanking(); }, methods:{ - translate(field) { - let name = ''; - switch (field) { - case 'total':name = '累计'; break; - case 'weeks':name = '本周'; break; - case 'months':name = '本月'; break; - case 'years':name = '本年'; break; - default: - break; - } - return name; - }, + handleCommand(e) { this.cycle = e; this.name = this.translate(e) @@ -254,15 +248,30 @@ } apiStat.getRanking(data).then(res=>{ if(res.status==200){ - res.result.currentUserRankingData.authorInfo={ - aid: "", - name: "", - orgInfo: "", - avatar: "", - sex: null + if(res.result.currentUserRankingData) { + res.result.currentUserRankingData.authorInfo={ + aid: "", + name: "", + orgInfo: "", + avatar: "", + sex: null + } + this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData]) + this.currentUserRankingData = res.result.currentUserRankingData; + if(res.result.currentUserRankingData.total) { + this.current = this.experienceValue(res.result.currentUserRankingData.total); + } + if(res.result.currentUserRankingData.weeks) { + this.current = this.experienceValue(res.result.currentUserRankingData.weeks); + } + if(res.result.currentUserRankingData.months) { + this.current = this.experienceValue(res.result.currentUserRankingData.months); + } + if(res.result.currentUserRankingData.years) { + this.current = this.experienceValue(res.result.currentUserRankingData.years); + } } - this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData]) - this.currentUserRankingData = res.result.currentUserRankingData; + const ids= []; res.result.rankingData.forEach(item=>{ ids.push(item.aid) @@ -677,12 +686,15 @@ .exp-barbox{ width: 100%; height: 8px; - background: #ECF1FE; + // background: #ECF1FE; border-radius: 6px; margin-left: 25px; margin-top: 3px; position: relative; z-index: 1; + ::v-deep .el-progress__text{ + display: none; + } .exp-bar-cont{ width: 230px; height: 6px; diff --git a/src/views/user/ranking.vue b/src/views/user/ranking.vue index 0b099308..58ef8a81 100644 --- a/src/views/user/ranking.vue +++ b/src/views/user/ranking.vue @@ -31,13 +31,13 @@
-
300/600
+
{{current.total}}/{{current.endValue}}
-
+
- LV1 - LV2 + {{current.start}} + {{current.end}}
@@ -247,6 +247,7 @@ import apiStat from '@/api/phase2/stat.js'; import { mapGetters } from 'vuex'; import authorImg from '@/components/Portal/authorImg.vue'; + import {translate,experienceValue} from "@/utils/tools.js"; export default { computed: { ...mapGetters(['userInfo']), @@ -255,6 +256,9 @@ export default { components: {authorImg}, data(){ return{ + experienceValue, + current:{}, + translate, experience:{ field:'total', name:'累计', @@ -290,18 +294,6 @@ export default { this.getDays(); }, methods:{ - translate(field) { - let name = ''; - switch (field) { - case 'total':name = '累计'; break; - case 'weeks':name = '本周'; break; - case 'months':name = '本月'; break; - case 'years':name = '本年'; break; - default: - break; - } - return name; - }, experienceCommand(e) { this.experience.field = e; this.experience.name = this.translate(e) @@ -336,6 +328,18 @@ export default { } this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData]) this.experience.data = res.result.currentUserRankingData; + if(res.result.currentUserRankingData.total) { + this.current = this.experienceValue(res.result.currentUserRankingData.total); + } + if(res.result.currentUserRankingData.weeks) { + this.current = this.experienceValue(res.result.currentUserRankingData.weeks); + } + if(res.result.currentUserRankingData.months) { + this.current = this.experienceValue(res.result.currentUserRankingData.months); + } + if(res.result.currentUserRankingData.years) { + this.current = this.experienceValue(res.result.currentUserRankingData.years); + } } const ids= []; res.result.rankingData.forEach(item=>{ @@ -619,12 +623,15 @@ export default { .exp-barbox{ width: 100%; height: 8px; - background: #ECF1FE; + // background: #ECF1FE; border-radius: 6px; margin-left: 25px; margin-top: 3px; position: relative; z-index: 1; + ::v-deep .el-progress__text{ + display: none; + } .exp-bar-cont{ width: 230px; height: 6px;