This commit is contained in:
zhaofang
2022-09-26 18:41:47 +08:00
parent 154af6e634
commit 147e7a2fcf
3 changed files with 137 additions and 43 deletions

View File

@@ -263,3 +263,78 @@ export function getUType(type) {
let name = uTypeMaps[type]; let name = uTypeMaps[type];
return name; 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;
}

View File

@@ -56,13 +56,14 @@
</div> </div>
</div> </div>
<div class="exp-bar"> <div class="exp-bar">
<h6> 300/600</h6> <h6> {{current.total}}/{{current.endValue}}</h6>
<div class="exp-barbox"> <div class="exp-barbox" v-if="current.percentage">
<div class="exp-bar-cont"></div> <el-progress :percentage="current.percentage" color="#387DF7"></el-progress>
<!-- <div class="exp-bar-cont"></div> -->
</div> </div>
<div class="exp-barname"> <div class="exp-barname">
<span>LV1</span> <span>{{current.start}}</span>
<span>LV2</span> <span>{{current.end}}</span>
</div> </div>
</div> </div>
<div class="exp-table" style="height:550px;overflow-y:auto"> <div class="exp-table" style="height:550px;overflow-y:auto">
@@ -192,6 +193,7 @@
import author from '@/components/Portal/authorInfo.vue'; import author from '@/components/Portal/authorInfo.vue';
import apiUser from "@/api/system/user.js"; import apiUser from "@/api/system/user.js";
import * as echarts from 'echarts' import * as echarts from 'echarts'
import {translate,experienceValue} from "@/utils/tools.js";
export default{ export default{
computed: { computed: {
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
@@ -200,6 +202,9 @@
components: {authorImg,author}, components: {authorImg,author},
data(){ data(){
return{ return{
current:{},
experienceValue,
translate,
cycle:'total', cycle:'total',
name:'累计', name:'累计',
getUType, getUType,
@@ -228,18 +233,7 @@
this.getRanking(); this.getRanking();
}, },
methods:{ 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) { handleCommand(e) {
this.cycle = e; this.cycle = e;
this.name = this.translate(e) this.name = this.translate(e)
@@ -254,6 +248,7 @@
} }
apiStat.getRanking(data).then(res=>{ apiStat.getRanking(data).then(res=>{
if(res.status==200){ if(res.status==200){
if(res.result.currentUserRankingData) {
res.result.currentUserRankingData.authorInfo={ res.result.currentUserRankingData.authorInfo={
aid: "", aid: "",
name: "", name: "",
@@ -263,6 +258,20 @@
} }
this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData]) this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
this.currentUserRankingData = 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);
}
}
const ids= []; const ids= [];
res.result.rankingData.forEach(item=>{ res.result.rankingData.forEach(item=>{
ids.push(item.aid) ids.push(item.aid)
@@ -677,12 +686,15 @@
.exp-barbox{ .exp-barbox{
width: 100%; width: 100%;
height: 8px; height: 8px;
background: #ECF1FE; // background: #ECF1FE;
border-radius: 6px; border-radius: 6px;
margin-left: 25px; margin-left: 25px;
margin-top: 3px; margin-top: 3px;
position: relative; position: relative;
z-index: 1; z-index: 1;
::v-deep .el-progress__text{
display: none;
}
.exp-bar-cont{ .exp-bar-cont{
width: 230px; width: 230px;
height: 6px; height: 6px;

View File

@@ -31,13 +31,13 @@
</div> </div>
</div> </div>
<div class="exp-bar"> <div class="exp-bar">
<h6> 300/600</h6> <h6> {{current.total}}/{{current.endValue}}</h6>
<div class="exp-barbox"> <div class="exp-barbox">
<div class="exp-bar-cont"></div> <el-progress :percentage="current.percentage" color="#387DF7"></el-progress>
</div> </div>
<div class="exp-barname"> <div class="exp-barname">
<span>LV1</span> <span>{{current.start}}</span>
<span>LV2</span> <span>{{current.end}}</span>
</div> </div>
</div> </div>
<div class="exp-table"> <div class="exp-table">
@@ -247,6 +247,7 @@
import apiStat from '@/api/phase2/stat.js'; import apiStat from '@/api/phase2/stat.js';
import { mapGetters } from 'vuex'; import { mapGetters } from 'vuex';
import authorImg from '@/components/Portal/authorImg.vue'; import authorImg from '@/components/Portal/authorImg.vue';
import {translate,experienceValue} from "@/utils/tools.js";
export default { export default {
computed: { computed: {
...mapGetters(['userInfo']), ...mapGetters(['userInfo']),
@@ -255,6 +256,9 @@ export default {
components: {authorImg}, components: {authorImg},
data(){ data(){
return{ return{
experienceValue,
current:{},
translate,
experience:{ experience:{
field:'total', field:'total',
name:'累计', name:'累计',
@@ -290,18 +294,6 @@ export default {
this.getDays(); this.getDays();
}, },
methods:{ 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) { experienceCommand(e) {
this.experience.field = e; this.experience.field = e;
this.experience.name = this.translate(e) this.experience.name = this.translate(e)
@@ -336,6 +328,18 @@ export default {
} }
this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData]) this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
this.experience.data = 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= []; const ids= [];
res.result.rankingData.forEach(item=>{ res.result.rankingData.forEach(item=>{
@@ -619,12 +623,15 @@ export default {
.exp-barbox{ .exp-barbox{
width: 100%; width: 100%;
height: 8px; height: 8px;
background: #ECF1FE; // background: #ECF1FE;
border-radius: 6px; border-radius: 6px;
margin-left: 25px; margin-left: 25px;
margin-top: 3px; margin-top: 3px;
position: relative; position: relative;
z-index: 1; z-index: 1;
::v-deep .el-progress__text{
display: none;
}
.exp-bar-cont{ .exp-bar-cont{
width: 230px; width: 230px;
height: 6px; height: 6px;