95 lines
2.9 KiB
TypeScript
95 lines
2.9 KiB
TypeScript
import NumberToImage from "../../Script/NumberToImage";
|
|
import CareerList from "./CareerList";
|
|
const { ccclass, property } = cc._decorator;
|
|
//排行榜
|
|
@ccclass
|
|
export default class CareerManager extends cc.Component {
|
|
@property(cc.Sprite) //用户头像换图
|
|
phone: cc.Sprite = null;
|
|
|
|
@property(cc.Node) //用户头像换图
|
|
bg: cc.Node = null;
|
|
private rankList: CareerList; //排行榜
|
|
|
|
listData: any; //总列表信息
|
|
selfData: any; //自己信息
|
|
rankNumber: number; //用户自己排名 有可能不在排行榜内99+
|
|
rankTotal: number; //获取排行榜用户数量 现在为100
|
|
|
|
onLoad() {
|
|
this.node.opacity = 0;
|
|
// this.init();
|
|
}
|
|
//初始化数据
|
|
init(data, topData) {
|
|
this.rankList = cc.find("ScrollView", this.node).getComponent(CareerList);
|
|
this.listData = data;
|
|
this.selfData = null;
|
|
this.rankNumber = 100;
|
|
this.rankTotal = 100;
|
|
this.rankList.setData(data, topData);
|
|
// 获取当前日期
|
|
let currentDate = new Date();
|
|
let month = currentDate.getMonth() + 1;
|
|
let day = currentDate.getDate();
|
|
|
|
this.bg.getChildByName("month").getComponent(cc.Label).string = month.toString();
|
|
this.bg.getChildByName("day").getComponent(cc.Label).string = day.toString();
|
|
}
|
|
|
|
start() {
|
|
}
|
|
|
|
//实际设置排行数据
|
|
public getRankData(data) {
|
|
if (data) {
|
|
// console.log(data);
|
|
cc.fx.GameTool.getRankData(data, this, 6);
|
|
this.setPic(this.selfData.pic);
|
|
}
|
|
}
|
|
//返回按钮
|
|
public backClick() {
|
|
cc.director.loadScene("LoadScene");
|
|
}
|
|
//最上方用户动画
|
|
|
|
//设置头像 处理的逻辑比较多,不用公共类的了
|
|
public setPic(pic) {
|
|
this.phone.node.parent.getChildByName("icon").active = false;
|
|
this.phone.node.active = false;
|
|
fetch(pic)
|
|
.then(response => {
|
|
return response.headers.get('Content-Length');
|
|
})
|
|
.then(errNo => {
|
|
if (errNo == "5093") {
|
|
this.phone.node.parent.getChildByName("icon").active = true;
|
|
}
|
|
})
|
|
.catch(error => {
|
|
// console.error('Error fetching X-Info:', error);
|
|
});
|
|
var self = this;
|
|
cc.assetManager.loadRemote(pic, { ext: '.png' }, (err, texture: cc.Texture2D) => {
|
|
if (texture) {
|
|
self.phone.node.active = true;
|
|
self.phone.spriteFrame = new cc.SpriteFrame(texture);
|
|
}
|
|
else {
|
|
}
|
|
|
|
})
|
|
}
|
|
|
|
public setData(data, topData) {
|
|
this.selfData = data;
|
|
this.rankList.setData(this.listData, topData);
|
|
if (data.length > 0) {
|
|
this.rankNumber = data[0].rank;
|
|
this.rankTotal = data.length;
|
|
}
|
|
}
|
|
|
|
}
|