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({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 }); } }