mirror of
https://codeup.aliyun.com/67762337eccfc218f6110e0e/vue/learning-system-mobile.git
synced 2025-12-10 03:16:45 +08:00
排行榜接口对接
This commit is contained in:
@@ -11,8 +11,8 @@
|
||||
}"></u-tabs>
|
||||
<view v-show="activeTab == 0">
|
||||
<view class="box-info-top">
|
||||
<text class="top-text">我的排名:<text class="text-num">128</text></text>
|
||||
<text class="top-text" style="margin-left: 30upx;">我的经验值:<text class="text-num">367</text></text>
|
||||
<text class="top-text">我的排名:<text class="text-num">{{experience.data.rankingNo}}</text></text>
|
||||
<text class="top-text" style="margin-left: 30upx;">我的经验值:<text class="text-num">{{experience.data.total}}</text></text>
|
||||
</view>
|
||||
<view class="ran-table">
|
||||
<view class="ran-table-haeder">
|
||||
@@ -20,7 +20,7 @@
|
||||
<view class="table-cell-tow">姓名</view>
|
||||
<view class="table-cell-three">经验值</view>
|
||||
</view>
|
||||
<view class="ran-table-body" v-for="(item, index) in 5">
|
||||
<view class="ran-table-body" v-for="(exper, index) in experience.list">
|
||||
<view class="table-cell-one">
|
||||
<image v-if="index == 0" style="width: 60upx;height:60upx" src="../../static/images/ranking/ran-one.png" mode=""></image>
|
||||
<image v-if="index == 1" style="width: 60upx;height:60upx" src="../../static/images/ranking/ran-tow.png" mode=""></image>
|
||||
@@ -28,34 +28,35 @@
|
||||
<text v-if="index > 2" class="cell-one-index">{{index+1}}</text>
|
||||
</view>
|
||||
<view class="table-cell-tow">
|
||||
<image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image>
|
||||
<text class="table-cell-tow-name">小张</text>
|
||||
<text class="table-cell-tow-org">(数据资产部)</text>
|
||||
<author-img :avatar="exper.authorInfo.avatar" :sex="exper.authorInfo.sex"></author-img>
|
||||
<text class="table-cell-tow-name">{{exper.authorInfo.name}}</text>
|
||||
<text class="table-cell-tow-org">({{cutOrgNamePath(exper.authorInfo.orgInfo)}})</text>
|
||||
</view>
|
||||
<view class="table-cell-three">1073</view>
|
||||
<view class="table-cell-three">{{exper.total}}</view>
|
||||
</view>
|
||||
<view class="ranking-dote">
|
||||
<view class="ranking-dote" v-if="experience.data.rankingNo>5">
|
||||
<view>.</view>
|
||||
<view>.</view>
|
||||
<view>.</view>
|
||||
</view>
|
||||
<view class="ran-table-body" style="border-bottom: none;margin-bottom: 60upx;">
|
||||
<view class="ran-table-body" style="border-bottom: none;margin-bottom: 60upx;" v-if="experience.data.rankingNo>5">
|
||||
<view class="table-cell-one">
|
||||
<text class="cell-one-index" style="color:#326DFF">128</text>
|
||||
<text class="cell-one-index" style="color:#326DFF">{{experience.data.rankingNo}}</text>
|
||||
</view>
|
||||
<view class="table-cell-tow">
|
||||
<image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image>
|
||||
<text class="table-cell-tow-name" style="color:#326DFF">小张</text>
|
||||
<text class="table-cell-tow-org" style="color:#326DFF">(数据资产部)</text>
|
||||
<author-img :avatar="userInfo.avatar" :sex="userInfo.sex"></author-img>
|
||||
<!-- <image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image> -->
|
||||
<text class="table-cell-tow-name" style="color:#326DFF">{{userInfo.name}}</text>
|
||||
<text class="table-cell-tow-org" style="color:#326DFF">({{cutOrgNamePath(userInfo.departFullName)}})</text>
|
||||
</view>
|
||||
<view class="table-cell-three" style="color:#326DFF">1073</view>
|
||||
<view class="table-cell-three" style="color:#326DFF">{{experience.data.total}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="activeTab == 1">
|
||||
<view class="box-info-top">
|
||||
<text class="top-text">我的排名:<text class="text-num">128</text></text>
|
||||
<text class="top-text" style="margin-left: 30upx;">我的学习时长:<text class="text-num">367</text>h</text>
|
||||
<text class="top-text">我的排名:<text class="text-num">{{learningDuration.data.rankingNo}}</text></text>
|
||||
<text class="top-text" style="margin-left: 30upx;">我的学习时长:<text class="text-num">{{formatSecondToHour(learningDuration.data.total)}}</text>h</text>
|
||||
</view>
|
||||
<view class="ran-table">
|
||||
<view class="ran-table-haeder">
|
||||
@@ -63,7 +64,7 @@
|
||||
<view class="table-cell-tow">姓名</view>
|
||||
<view class="table-cell-three">学习时长(h)</view>
|
||||
</view>
|
||||
<view class="ran-table-body" v-for="(item, index) in 5">
|
||||
<view class="ran-table-body" v-for="(learning, index) in learningDuration.list">
|
||||
<view class="table-cell-one">
|
||||
<image v-if="index == 0" style="width: 60upx;height:60upx" src="../../static/images/ranking/ran-one.png" mode=""></image>
|
||||
<image v-if="index == 1" style="width: 60upx;height:60upx" src="../../static/images/ranking/ran-tow.png" mode=""></image>
|
||||
@@ -71,34 +72,35 @@
|
||||
<text v-if="index > 2" class="cell-one-index">{{index+1}}</text>
|
||||
</view>
|
||||
<view class="table-cell-tow">
|
||||
<image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image>
|
||||
<text class="table-cell-tow-name">小张</text>
|
||||
<text class="table-cell-tow-org">(数据资产部)</text>
|
||||
<author-img :avatar="learning.authorInfo.avatar" :sex="learning.authorInfo.sex"></author-img>
|
||||
<text class="table-cell-tow-name">{{learning.authorInfo.name}}</text>
|
||||
<text class="table-cell-tow-org">({{cutOrgNamePath(learning.authorInfo.orgInfo)}})</text>
|
||||
</view>
|
||||
<view class="table-cell-three">1073</view>
|
||||
<view class="table-cell-three">{{formatSecondToHour(learning.total)}}</view>
|
||||
</view>
|
||||
<view class="ranking-dote">
|
||||
<view class="ranking-dote" v-if="learningDuration.data.rankingNo > 5">
|
||||
<view>.</view>
|
||||
<view>.</view>
|
||||
<view>.</view>
|
||||
</view>
|
||||
<view class="ran-table-body" style="border-bottom: none;margin-bottom: 60upx;">
|
||||
<view class="ran-table-body" style="border-bottom: none;margin-bottom: 60upx;" v-if="learningDuration.data.rankingNo > 5">
|
||||
<view class="table-cell-one">
|
||||
<text class="cell-one-index" style="color:#326DFF">128</text>
|
||||
<text class="cell-one-index" style="color:#326DFF">{{learningDuration.data.rankingNo}}</text>
|
||||
</view>
|
||||
<view class="table-cell-tow">
|
||||
<image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image>
|
||||
<text class="table-cell-tow-name" style="color:#326DFF">小张</text>
|
||||
<text class="table-cell-tow-org" style="color:#326DFF">(数据资产部)</text>
|
||||
<author-img :avatar="userInfo.avatar" :sex="userInfo.sex"></author-img>
|
||||
<!-- <image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image> -->
|
||||
<text class="table-cell-tow-name" style="color:#326DFF">{{userInfo.name}}</text>
|
||||
<text class="table-cell-tow-org" style="color:#326DFF">({{cutOrgNamePath(userInfo.departFullName)}})</text>
|
||||
</view>
|
||||
<view class="table-cell-three" style="color:#326DFF">1073</view>
|
||||
<view class="table-cell-three" style="color:#326DFF">{{formatSecondToHour(learningDuration.data.total)}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
<view v-show="activeTab == 2">
|
||||
<view class="box-info-top">
|
||||
<text class="top-text">我的排名:<text class="text-num">128</text></text>
|
||||
<text class="top-text" style="margin-left: 30upx;">我的学习天数:<text class="text-num">367</text></text>
|
||||
<text class="top-text">我的排名:<text class="text-num">{{learningDays.data.rankingNo}}</text></text>
|
||||
<text class="top-text" style="margin-left: 30upx;">我的学习天数:<text class="text-num">{{learningDays.data.total}}</text></text>
|
||||
</view>
|
||||
<view class="ran-table">
|
||||
<view class="ran-table-haeder">
|
||||
@@ -106,7 +108,7 @@
|
||||
<view class="table-cell-tow">姓名</view>
|
||||
<view class="table-cell-three">学习天数</view>
|
||||
</view>
|
||||
<view class="ran-table-body" v-for="(item, index) in 5">
|
||||
<view class="ran-table-body" v-for="(days, index) in learningDays.list">
|
||||
<view class="table-cell-one">
|
||||
<image v-if="index == 0" style="width: 60upx;height:60upx" src="../../static/images/ranking/ran-one.png" mode=""></image>
|
||||
<image v-if="index == 1" style="width: 60upx;height:60upx" src="../../static/images/ranking/ran-tow.png" mode=""></image>
|
||||
@@ -114,27 +116,27 @@
|
||||
<text v-if="index > 2" class="cell-one-index">{{index+1}}</text>
|
||||
</view>
|
||||
<view class="table-cell-tow">
|
||||
<image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image>
|
||||
<text class="table-cell-tow-name">小张</text>
|
||||
<text class="table-cell-tow-org">(数据资产部)</text>
|
||||
<author-img :avatar="days.authorInfo.avatar" :sex="days.authorInfo.sex"></author-img>
|
||||
<text class="table-cell-tow-name">{{days.authorInfo.name}}</text>
|
||||
<text class="table-cell-tow-org">({{cutOrgNamePath(days.authorInfo.orgInfo)}})</text>
|
||||
</view>
|
||||
<view class="table-cell-three">1073</view>
|
||||
<view class="table-cell-three">{{days.total}}</view>
|
||||
</view>
|
||||
<view class="ranking-dote">
|
||||
<view class="ranking-dote" v-if="learningDays.data.rankingNo > 5">
|
||||
<view>.</view>
|
||||
<view>.</view>
|
||||
<view>.</view>
|
||||
</view>
|
||||
<view class="ran-table-body" style="border-bottom: none;margin-bottom: 60upx;">
|
||||
<view class="ran-table-body" style="border-bottom: none;margin-bottom: 60upx;" v-if="learningDays.data.rankingNo > 5">
|
||||
<view class="table-cell-one">
|
||||
<text class="cell-one-index" style="color:#326DFF">128</text>
|
||||
<text class="cell-one-index" style="color:#326DFF">{{learningDays.data.rankingNo}}</text>
|
||||
</view>
|
||||
<view class="table-cell-tow">
|
||||
<image style="width: 80upx;height:80upx;vertical-align: middle;" src="../../static/images/woman.png" mode=""></image>
|
||||
<text class="table-cell-tow-name" style="color:#326DFF">小张</text>
|
||||
<text class="table-cell-tow-org" style="color:#326DFF">(数据资产部)</text>
|
||||
<author-img :avatar="userInfo.avatar" :sex="userInfo.sex"></author-img>
|
||||
<text class="table-cell-tow-name" style="color:#326DFF">{{userInfo.name}}</text>
|
||||
<text class="table-cell-tow-org" style="color:#326DFF">({{cutOrgNamePath(userInfo.departFullName)}})</text>
|
||||
</view>
|
||||
<view class="table-cell-three" style="color:#326DFF">1073</view>
|
||||
<view class="table-cell-three" style="color:#326DFF">{{learningDays.data.total}}</view>
|
||||
</view>
|
||||
</view>
|
||||
</view>
|
||||
@@ -146,9 +148,12 @@
|
||||
<script>
|
||||
import apiUser from "@/api/system/user.js";
|
||||
import apiStat from '@/api/phase2/stat.js';
|
||||
import {cutOrgNamePath,formatSecondToHour} from '@/utils/tools.js'
|
||||
export default {
|
||||
data() {
|
||||
return {
|
||||
formatSecondToHour,
|
||||
cutOrgNamePath,
|
||||
tabList:[
|
||||
{ name: '经验值'},
|
||||
{ name: '学习时长'},
|
||||
@@ -157,6 +162,33 @@
|
||||
activeTab:0,
|
||||
rankingList:{},
|
||||
userInfo:{},
|
||||
learningDays:{
|
||||
field:'total',
|
||||
name:'累计',
|
||||
data:{
|
||||
rankingNo:0,
|
||||
total:0
|
||||
},
|
||||
list:[],
|
||||
},
|
||||
experience:{
|
||||
field:'total',
|
||||
name:'累计',
|
||||
data:{
|
||||
rankingNo:0,
|
||||
total:0
|
||||
},
|
||||
list:[],
|
||||
},
|
||||
learningDuration:{
|
||||
field:'total',
|
||||
name:'累计',
|
||||
data:{
|
||||
rankingNo:0,
|
||||
total:0
|
||||
},
|
||||
list:[],
|
||||
},
|
||||
}
|
||||
},
|
||||
onPullDownRefresh() {
|
||||
@@ -168,7 +200,10 @@
|
||||
onLoad(options) {
|
||||
this.$store.dispatch('GetUserInfo').then(rs => {
|
||||
this.userInfo = rs;
|
||||
console.log(rs,'rs')
|
||||
this.getExperience();
|
||||
this.getDuration();
|
||||
this.getDays();
|
||||
});
|
||||
|
||||
},
|
||||
@@ -180,7 +215,7 @@
|
||||
let data = {
|
||||
aid:this.userInfo.aid,// #用户id
|
||||
statType:20, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
||||
field:'todays',// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||
field:'total',// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||
num:5,// #显示的条数
|
||||
}
|
||||
apiStat.getRanking(data).then(res=>{
|
||||
@@ -193,16 +228,8 @@
|
||||
avatar: "",
|
||||
sex: null
|
||||
}
|
||||
// this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
|
||||
this.experience.data = res.result.currentUserRankingData;
|
||||
if(this.experience.field == 'total') {
|
||||
// this.current = this.experienceValue(res.result.currentUserRankingData.total);
|
||||
this.currentUserRankingTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
||||
this.currentUserRankingTotalData.rankValue = res.result.currentUserRankingData.total;
|
||||
this.currentUserRankingTotalData.endValue = this.current.endValue;
|
||||
}
|
||||
}
|
||||
this.current.total=res.result.currentUserRankingData.total;//当前用户的经验值是固定的
|
||||
const ids= [];
|
||||
res.result.rankingData.forEach(item=>{
|
||||
ids.push(item.aid)
|
||||
@@ -214,7 +241,7 @@
|
||||
sex: null
|
||||
}
|
||||
})
|
||||
// this.getUserData(ids,res.result.rankingData)
|
||||
this.getUserData(ids,res.result.rankingData)
|
||||
this.experience.list = res.result.rankingData;
|
||||
}
|
||||
})
|
||||
@@ -223,28 +250,14 @@
|
||||
let data = {
|
||||
aid:this.userInfo.aid,// #用户id
|
||||
statType:10, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
||||
field:this.learningDuration.field,// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||
field:'total',// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||
num:5,// #显示的条数
|
||||
}
|
||||
apiStat.getRanking(data).then(res=>{
|
||||
if(res.status==200){
|
||||
if(res.result.currentUserRankingData) {
|
||||
res.result.currentUserRankingData.authorInfo={
|
||||
aid: "",
|
||||
name: "",
|
||||
orgInfo: "",
|
||||
avatar: "",
|
||||
sex: null
|
||||
}
|
||||
// this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData])
|
||||
this.learningDuration.data = res.result.currentUserRankingData;
|
||||
if(data.field == 'total'){
|
||||
this.learningDurationTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
||||
this.learningDurationTotalData.rankValue = res.result.currentUserRankingData.total;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
const ids= [];
|
||||
res.result.rankingData.forEach(item=>{
|
||||
ids.push(item.aid)
|
||||
@@ -256,8 +269,8 @@
|
||||
sex: null
|
||||
}
|
||||
})
|
||||
// this.getUserData(ids,res.result.rankingData)
|
||||
// this.learningDuration.list = res.result.rankingData;
|
||||
this.getUserData(ids,res.result.rankingData)
|
||||
this.learningDuration.list = res.result.rankingData;
|
||||
}
|
||||
})
|
||||
},
|
||||
@@ -266,25 +279,13 @@
|
||||
let data = {
|
||||
aid:this.userInfo.aid,// #用户id
|
||||
statType:11, // #统计类型 10学习时长 11 学习天数 20表经验值 30表u币 40表获取天数
|
||||
field:this.learningDays.field,// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||
field:'total',// #统计周期 todays-当天,weeks-周,months-月,years-年 total-总计
|
||||
num:5,// #显示的条数
|
||||
}
|
||||
apiStat.getRanking(data).then(res=>{
|
||||
if(res.status==200){
|
||||
if(res.result.currentUserRankingData) {
|
||||
res.result.currentUserRankingData.authorInfo={
|
||||
aid: "",
|
||||
name: "",
|
||||
orgInfo: "",
|
||||
avatar: "",
|
||||
sex: null
|
||||
}
|
||||
// this.getUserData([res.result.currentUserRankingData.aid],[res.result.currentUserRankingData]);
|
||||
// this.learningDays.data = res.result.currentUserRankingData;
|
||||
// if(data.field == 'total'){
|
||||
// this.learningDaysTotalData.rankNo = res.result.currentUserRankingData.rankingNo;
|
||||
// this.learningDaysTotalData.rankValue = res.result.currentUserRankingData.total;
|
||||
// }
|
||||
this.learningDays.data = res.result.currentUserRankingData;
|
||||
}
|
||||
|
||||
const ids= [];
|
||||
@@ -298,11 +299,30 @@
|
||||
sex: null
|
||||
}
|
||||
})
|
||||
// this.getUserData(ids,res.result.rankingData)
|
||||
// this.learningDays.list = res.result.rankingData;
|
||||
this.getUserData(ids,res.result.rankingData)
|
||||
this.learningDays.list = res.result.rankingData;
|
||||
}
|
||||
})
|
||||
},
|
||||
getUserData(ids,list) {
|
||||
const noReapetIds = [...new Set(ids)];
|
||||
apiUser.getByIds(noReapetIds).then(res => {
|
||||
if (res.status == 200) {
|
||||
list.forEach((item, index) => {
|
||||
res.result.some(author => {
|
||||
if (author.aid == item.aid) {
|
||||
item.authorInfo = author;
|
||||
return true;
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
});
|
||||
});
|
||||
} else {
|
||||
this.$message.error(res.message);
|
||||
}
|
||||
});
|
||||
},
|
||||
|
||||
}
|
||||
}
|
||||
@@ -372,6 +392,11 @@
|
||||
}
|
||||
}
|
||||
.table-cell-tow{
|
||||
overflow: hidden;
|
||||
text-overflow: ellipsis;
|
||||
-webkit-box-orient: vertical;
|
||||
display: -webkit-box;-webkit-line-clamp: 1;
|
||||
word-break:break-all;
|
||||
// flex: 100%;
|
||||
width: 100%;
|
||||
.table-cell-tow-name{
|
||||
|
||||
Reference in New Issue
Block a user