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;