You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
79 lines
2.2 KiB
79 lines
2.2 KiB
let dataDemo = {
|
|
friendDatas:[],
|
|
InitData:(res)=>{
|
|
console.log("获取朋友数据", res);
|
|
dataDemo.friendDatas = res.data;
|
|
},
|
|
|
|
sortDataList(check) {
|
|
// 使用解构赋值简化访问
|
|
const { friendDatas, selfItem } = dataDemo;
|
|
|
|
// 一次性处理所有好友数据
|
|
dataDemo.data = friendDatas.map(friend => {
|
|
const rankScore = dataDemo.getKVDataValue(friend.KVDataList, check);
|
|
const passtime = Math.floor(rankScore / 21);
|
|
const strpass = rankScore <= 21 ? rankScore + '关': `全通${passtime}次`;
|
|
const item = {
|
|
rankScore,
|
|
rankDesc: strpass,
|
|
avatarUrl: friend.avatarUrl,
|
|
nickname: friend.nickname,
|
|
openid: friend.openid
|
|
};
|
|
|
|
// 检查是否是当前用户
|
|
if (selfItem.openid === friend.openid) {
|
|
selfItem.rankScore = rankScore;
|
|
selfItem.rankDesc = strpass;
|
|
}
|
|
|
|
return item;
|
|
});
|
|
|
|
// 按分数降序排序
|
|
dataDemo.data.sort((a, b) => b.rankScore - a.rankScore);
|
|
|
|
// 查找当前用户排名
|
|
dataDemo.selfRankIdx = dataDemo.data.findIndex(item =>
|
|
item.openid === selfItem.openid
|
|
);
|
|
|
|
console.log("selfRankIdx", dataDemo.selfRankIdx);
|
|
},
|
|
|
|
getKVDataValue(KVDataList,check){
|
|
let idx = KVDataList.findIndex((value,idx)=>{
|
|
return value.key == check;
|
|
})
|
|
if(idx>=0){
|
|
return +KVDataList[idx].value;
|
|
}else{
|
|
return 0
|
|
}
|
|
},
|
|
setSelfUserInfo(useinfo){
|
|
dataDemo.selfItem.avatarUrl = useinfo.avatarUrl;
|
|
dataDemo.selfItem.nickname = useinfo.nickname;
|
|
dataDemo.selfItem.openid = useinfo.openid;
|
|
},
|
|
data: [
|
|
/*
|
|
{
|
|
rankScore: 0,
|
|
avatarUrl: '',
|
|
nickname: '',
|
|
},
|
|
*/
|
|
],
|
|
|
|
selfRankIdx:-1,
|
|
selfItem:{
|
|
avatarUrl:"openDataContext/image/avatar.png",
|
|
nickname:"游客",
|
|
openid:"",
|
|
rankScore:0,
|
|
}
|
|
};
|
|
|
|
export default dataDemo;
|