大侠
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

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;