聊天数据bug修复
This commit is contained in:
@@ -10,6 +10,10 @@ import { InnerMsgCode } from "../../Main/Config/InnerMsgCode";
|
||||
import { TipsPanel } from "../ui/panels/TipsPanel";
|
||||
import LanguageUtils from "../../Main/Common/LanguageUtils";
|
||||
import { logger } from "db://assets/Scripts/Main/Common/Logger";
|
||||
import { GirlService } from "../network/services/GirlService";
|
||||
import { DataManager, DataId } from "../data/DataManager";
|
||||
import { GirlData } from "../data/GirlData";
|
||||
import proto from "db://assets/Scripts/proto/proto.pb.js";
|
||||
|
||||
/**
|
||||
* 聊天控制器接口 - 定义Panel和Controller之间的通信协议
|
||||
@@ -152,12 +156,16 @@ export class ChatController {
|
||||
* @param roleId 角色ID
|
||||
* @returns 是否切换成功
|
||||
*/
|
||||
public switchRole(categoryId: string, roleId: number): boolean {
|
||||
public async switchRole(
|
||||
categoryId: string,
|
||||
roleId: number
|
||||
): Promise<boolean> {
|
||||
if (!this.chatModel.switchToRole(categoryId, roleId)) {
|
||||
logger.error(`Failed to switch to role ${roleId}`);
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
// 更新AI服务的当前角色
|
||||
ChatAIService.Instance.setCurrentRole(roleId);
|
||||
|
||||
|
||||
@@ -155,8 +155,10 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
}
|
||||
}
|
||||
async refresh() {
|
||||
const newRoleId = NavigationManager.Instance.getSelectedGirlId();
|
||||
// 请求详细数据
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
|
||||
const newRoleId = NavigationManager.Instance.getSelectedGirlId();
|
||||
this.waitingAI.active = false;
|
||||
// 检查是否是切换角色
|
||||
const isRoleSwitch = this.id && this.id !== newRoleId;
|
||||
@@ -165,6 +167,18 @@ export class ChatPanel extends li_BaseView implements IChatPanelCallback {
|
||||
this.categoryId =
|
||||
NavigationManager.Instance.getSelectedCategoryId().toString();
|
||||
|
||||
const detail = girlData.getGrilDetail(this.categoryId, this.id);
|
||||
if (!detail) {
|
||||
const reqData = {
|
||||
id: this.id,
|
||||
};
|
||||
let res = await GirlService.I.reqGetGirlDetail(reqData);
|
||||
if (res && res.code === proto.cs.EnmRetCode.SUCCESS) {
|
||||
// 保存数据
|
||||
girlData.setGirlDetailData(this.categoryId.toString(), res.data);
|
||||
}
|
||||
}
|
||||
|
||||
// 获取ChatController单例并绑定当前Panel
|
||||
this.chatController = ChatController.Instance;
|
||||
this.chatController.bindView(this);
|
||||
|
||||
@@ -326,8 +326,7 @@ export class GirlDetailPanel extends li_BaseView {
|
||||
OnClickChatBtn() {
|
||||
const girlData = DataManager.I.getDataById<GirlData>(DataId.Girl);
|
||||
|
||||
const isRelease = girlData.getIsRelease(this.category.toString(), this.id);
|
||||
const isFree = girlData.isGirlFreeType(this.category.toString(), this.id);
|
||||
|
||||
//if (isRelease || isFree) {
|
||||
// 直接在当前页面打开ChatPanel作为子页面
|
||||
const currentPanel = NavigationManager.Instance.getCurrentActivePanelNode();
|
||||
|
||||
@@ -278,6 +278,6 @@ export class SettingPanel extends li_BaseView {
|
||||
}
|
||||
|
||||
onClickClose() {
|
||||
NavigationManager.Instance.closeSubPanel(this);
|
||||
NavigationManager.Instance.closePopupPanel(this.node);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1337,7 +1337,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": 123.22400000000005,
|
||||
"y": 75.25150000000004,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -1386,8 +1386,8 @@
|
||||
},
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 487.9770000000001,
|
||||
"y": -383.09000000000003,
|
||||
"x": 149.128,
|
||||
"y": -537.486,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -1456,9 +1456,9 @@
|
||||
"_alignFlags": 36,
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 52.02299999999991,
|
||||
"_right": 390.872,
|
||||
"_top": 0,
|
||||
"_bottom": 73.75999999999999,
|
||||
"_bottom": 38.46249999999998,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
@@ -1524,7 +1524,7 @@
|
||||
"_lpos": {
|
||||
"__type__": "cc.Vec3",
|
||||
"x": 0,
|
||||
"y": -456.85,
|
||||
"y": -575.9485,
|
||||
"z": 0
|
||||
},
|
||||
"_lrot": {
|
||||
@@ -3733,7 +3733,7 @@
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 913.7
|
||||
"height": 1151.897
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@@ -3878,7 +3878,7 @@
|
||||
"_contentSize": {
|
||||
"__type__": "cc.Size",
|
||||
"width": 1080,
|
||||
"height": 913.7
|
||||
"height": 1151.897
|
||||
},
|
||||
"_anchorPoint": {
|
||||
"__type__": "cc.Vec2",
|
||||
@@ -3949,8 +3949,8 @@
|
||||
"_target": null,
|
||||
"_left": 0,
|
||||
"_right": 0,
|
||||
"_top": 219.92599999999993,
|
||||
"_bottom": 466.374,
|
||||
"_top": 148.80000000000007,
|
||||
"_bottom": 299.30300000000005,
|
||||
"_horizontalCenter": 0,
|
||||
"_verticalCenter": 0,
|
||||
"_isAbsLeft": true,
|
||||
|
||||
Reference in New Issue
Block a user