94 lines
3.8 KiB
TypeScript
94 lines
3.8 KiB
TypeScript
import { _decorator, Asset, ImageAsset, Node, ScrollView, Sprite, SpriteFrame, Texture2D } from 'cc';
|
||
import BaseView from '../../../../../../extensions/app/assets/base/BaseView';
|
||
import { Tools } from 'db://assets/res-native/tools/Tools';
|
||
import { LANG_ENUM, LANG_SET } from 'db://assets/res-native/setting/LangSet';
|
||
const { ccclass, property } = _decorator;
|
||
@ccclass('PageRewardhistory')
|
||
export class PageRewardhistory extends BaseView {
|
||
@property(Node)
|
||
rw_item: Node = null!;
|
||
@property(ScrollView)
|
||
rw_list: ScrollView = null!;
|
||
|
||
private now_index: number = 0;
|
||
|
||
private _create_time_min : string = "";
|
||
private _create_time_max : string = "";
|
||
|
||
|
||
// 初始化的相关逻辑写在这
|
||
onLoad() {}
|
||
|
||
// 界面打开时的相关逻辑写在这(onShow可被多次调用-它与onHide不成对)
|
||
onShow(params: any) {
|
||
this.now_index = 1
|
||
this.initRw()
|
||
this.rw_list.node.on(ScrollView.EventType.SCROLL_TO_BOTTOM, this.nextPage, this)
|
||
|
||
// 计算一周内的时间范围
|
||
const now = new Date()
|
||
const oneWeekAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000)
|
||
|
||
// 转换为北京时间 (使用toLocaleString指定时区)
|
||
const getTimeString = (date: Date) => {
|
||
return date.toLocaleString('sv-SE', {
|
||
timeZone: 'Asia/Shanghai',
|
||
year: 'numeric',
|
||
month: '2-digit',
|
||
day: '2-digit',
|
||
hour: '2-digit',
|
||
minute: '2-digit',
|
||
second: '2-digit'
|
||
});
|
||
};
|
||
|
||
this._create_time_min = getTimeString(oneWeekAgo)
|
||
this._create_time_max = getTimeString(now)
|
||
}
|
||
|
||
// 界面关闭时的相关逻辑写在这(已经关闭的界面不会触发onHide)
|
||
onHide(result: undefined) {
|
||
// app.manager.ui.show<PageRewardhistory>({name: 'PageRewardhistory', onHide:(result) => { 接收到return的数据,并且有类型提示 }})
|
||
this.rw_list.node.off(ScrollView.EventType.SCROLL_TO_BOTTOM, this.nextPage, this)
|
||
return result;
|
||
}
|
||
|
||
nextPage() {
|
||
this.now_index += 1
|
||
this.initRw()
|
||
}
|
||
|
||
initRw() {
|
||
if (this.now_index == 1) this.rw_list.content.removeAllChildren()
|
||
Tools.httpReq("user/playGameRecord", {
|
||
"page": this.now_index,
|
||
"limit": 20,
|
||
"create_time_min": this._create_time_min,
|
||
"create_time_max": this._create_time_max
|
||
}, (res:any)=>{
|
||
for (let i = 0; i < res.list.length; i++) {
|
||
let d = res.list[i]
|
||
let item = Tools.AddChild(this.rw_list.content, this.rw_item, "item" + i);
|
||
item.active = true;
|
||
this.loadSprite(d.win_coin >= 0 ? "rehis_bg_get" : "rehis_bg_lost", item)
|
||
let lang_str = LANG_ENUM[LANG_SET.langIndex]
|
||
Tools.ActChild(item, "win_" + lang_str, d.win_coin > 0)
|
||
if (d.win_coin > 0) Tools.SetChildText(item, "win_" + lang_str + "/lab", Math.trunc(d.win_coin).toString())
|
||
Tools.ActChild(item, "lose_" + lang_str, d.win_coin < 0)
|
||
if (d.win_coin < 0) Tools.SetChildText(item, "lose_" + lang_str + "/lab", Math.abs(Math.trunc(d.win_coin)).toString())
|
||
Tools.ActChild(item, "more", d.win_coin == 0)
|
||
Tools.SetChildText(item, "time", d.create_time)
|
||
}
|
||
})
|
||
}
|
||
|
||
loadSprite(pic: string, node: Node){
|
||
this.loadRes(pic, Asset, (res: ImageAsset)=>{
|
||
let sp = new SpriteFrame()
|
||
let tex = new Texture2D();
|
||
tex.image = res;
|
||
sp.texture = tex
|
||
node.getComponent(Sprite).spriteFrame = sp
|
||
});
|
||
}
|
||
} |