This commit is contained in:
2025-09-21 14:28:17 +08:00
parent 11e8e516b7
commit d823fa9083
16 changed files with 635 additions and 701 deletions
@@ -5,6 +5,7 @@ import { GButton } from "db://assets/Scripts/Main/Common/GButton";
import { PastGirlListItem } from "../../uiitems/PastGirlListItem";
import { DataManager, DataId } from "../../data/DataManager";
import { GirlData } from "../../data/GirlData";
import { ChatHistoryManager } from "../../manager/ChatHistoryManager";
const { ccclass, property } = _decorator;
@@ -68,13 +69,9 @@ export class PastGirlListPanel extends li_BaseView {
// TODO: 实现获取已解锁女孩列表的逻辑
// 这个方法需要遍历所有分类,找出 isRelease === true 的女孩
private getUnlockedGirls(): number[] {
// TODO: 实现获取已解锁女孩列表逻辑
// 需要实现的逻辑:
// 1. 遍历 GirlData 中的所有分类
// 2. 对每个分类中的每个女孩检查 getIsRelease 状态
// 3. 返回所有已解锁女孩的 {category, id} 列表
console.log("TODO: 实现获取已解锁女孩列表逻辑");
return [10001, 10002];
const GirlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
const allids = GirlData.getAllReleaseGirlIds();
return allids;
}
refresh() {
@@ -90,10 +87,22 @@ export class PastGirlListPanel extends li_BaseView {
// 获取已解锁女孩列表
const ids = this.getUnlockedGirls();
// 根据数据,刷新界面
// 创建带时间戳的数组用于排序
const girlsWithTime: {id: number, lastTime: number}[] = [];
// 收集每个女孩的最后聊天时间
for (let id of ids) {
const lastTime = ChatHistoryManager.Instance.getLastChatTime(id) || 0;
girlsWithTime.push({id, lastTime});
}
// 按最后聊天时间降序排序(最近的在前)
girlsWithTime.sort((a, b) => b.lastTime - a.lastTime);
// 根据排序后的数据刷新界面
for (let girlData of girlsWithTime) {
let item = this.getItemFromPool();
item.refreshData(id, this.node);
item.refreshData(girlData.id, this.node);
item.node.active = true;
this.cache.push(item);