mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-portal.git
synced 2025-12-11 20:06:44 +08:00
提交
This commit is contained in:
@@ -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;
|
||||||
|
}
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
@@ -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;
|
||||||
|
|||||||
Reference in New Issue
Block a user