Merge branch 'main' of 47.107.44.202:xionglijia/18xchat

This commit is contained in:
2025-09-05 15:16:43 +08:00
7 changed files with 34 additions and 14 deletions
@@ -1,4 +1,4 @@
import { AiCharacter } from "../../schema/schema";
import { AiCharacters } from "../../schema/schema";
import { ConfigManager } from "../manager/ConfigManager";
/**
@@ -46,7 +46,7 @@ export class RoleConfigLoader {
/**
* 获取所有配置的角色ID
*/
public static getAllRoles(): AiCharacter[] {
public static getAllRoles(): AiCharacters[] {
return ConfigManager.tables.TbAiCharacters.getDataList();
}
}
+28 -2
View File
@@ -67,11 +67,16 @@ export class GirlData extends BaseData {
let allData = this.parseAllGirlBrief(respOrList);
if (!allData) return;
const bucket = this.ensureBucket(categoryId);
// 用一个临时 Set 保存已有的 id,加速去重
const existed = new Set<number>(bucket.girlIds);
for (const g of allData) {
const id = g.id;
bucket.briefs.set(id, g);
// TODO去重
bucket.girlIds.push(id);
// 去重
if (!existed.has(id)) {
bucket.girlIds.push(id);
existed.add(id);
}
}
console.log("保存技师的简要数据: ", bucket);
}
@@ -183,6 +188,27 @@ export class GirlData extends BaseData {
return oneData.category;
}
/** 获取主题枚举,根据 id */
public getGrilCategoryById(girlId: number): number {
const cats = this.ensureCategories();
for (const bucket of cats.values()) {
// 先查简要信息
const brief = bucket.briefs.get(girlId);
if (brief && brief.category) {
return brief.category;
}
// 兜底:若只缓存了详情,也从详情里的 brief 取
const detail = bucket.details.get(girlId);
if (detail?.brief && typeof detail.brief.category) {
return detail.brief.category;
}
}
// 未找到
return 0;
}
/** 获取list头像路径 */
public getGrilListAvatar(categoryId: string, girlId: number): string {
let oneData = this.getGrilBrief(categoryId, girlId);
@@ -21,8 +21,7 @@ class SystemBrowserOpener implements IPaymentOpener {
// 如需内嵌 WebView,可封装一个组件并在 open 里显示;此处给空壳
class InAppWebViewOpener implements IPaymentOpener {
async open(url: string) {
// TODO: 实现你的 WebView 弹窗并加载 url;可拦截 redirect_uri 关闭弹窗
sys.openURL(url); // 临时:用系统浏览器兜底
sys.openURL(url); // 系统浏览器
}
canReturnSignal() { return true; } // 拦截回跳时可立即开始轮询
}
@@ -16,7 +16,6 @@ import LanguageUtils from "../../../Main/Common/LanguageUtils";
import Utils from "../../../Main/Common/Utils";
import { InnerMsgCode } from "../../../Main/Config/InnerMsgCode";
import { SimpleToggle } from "../components/SimpleToggle";
import { GirlDetail, purchase } from "../../../schema/schema";
import { DataManager, DataId } from "../../data/DataManager";
import { GirlData } from "../../data/GirlData";
import { GirlService } from "db://assets/Scripts/chat18x/network/services/GirlService";
@@ -137,9 +136,8 @@ export class GirlDetailPanel extends li_BaseView {
tagKey: string;
category: number;
async refresh(index: number) {
// TODO,暂时这样获取,修改后从GirlData获取
const girlConfig = ConfigManager.tables.TbGirls.get(this.id);
this.category = girlConfig.category;
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
this.category = girlData.getGrilCategoryById(this.id);
// 请求详细数据
const reqData = {
id: this.id,
@@ -147,7 +145,6 @@ export class GirlDetailPanel extends li_BaseView {
let res = await GirlService.I.reqGetGirlDetail(reqData);
if (res && res.code === proto.cs.EnmRetCode.SUCCESS) {
// 保存数据
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
girlData.setGirlDetails(this.category.toString(), res.data);
// 根据数据,刷新界面
this.nameKey = girlData.getGrilName(this.category.toString(), this.id);
@@ -4,7 +4,6 @@ import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import { ViewManager } from "db://assets/Scripts/Main/Manager/ViewManager";
import { GButton } from "db://assets/Scripts/Main/Common/GButton";
import { GirlDetailPanel } from "../ui/panels/GirlDetailPanel";
import { purchase } from "../../schema/schema";
import proto from 'db://assets/Scripts/proto/proto.pb.js';
import { DataManager, DataId } from "../data/DataManager";
import { GirlData } from "../data/GirlData";
@@ -4,7 +4,7 @@ import { ViewManager } from "db://assets/Scripts/Main/Manager/ViewManager";
import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import Utils from "db://assets/Scripts/Main/Common/Utils";
import { NavigationManager } from "../manager/NavigationManager";
import { Girl, PriceType } from "../../schema/schema";
import { PriceType } from "../../schema/schema";
import LanguageUtils from "../../Main/Common/LanguageUtils";
import { InnerMsgCode } from "../../Main/Config/InnerMsgCode";
import { DataManager, DataId } from "../data/DataManager";
@@ -3,7 +3,6 @@ import { GButton } from "db://assets/Scripts/Main/Common/GButton";
import ResManager from "db://assets/Scripts/Main/Manager/ResManager";
import Utils from "db://assets/Scripts/Main/Common/Utils";
import { NavigationManager } from "../manager/NavigationManager";
import { TbThemes, Theme } from "../../schema/schema";
import LanguageUtils from "../../Main/Common/LanguageUtils";
import { InnerMsgCode } from "../../Main/Config/InnerMsgCode";
import { DataManager, DataId } from "../data/DataManager";