squidGame/tgx-games-client/assets/module_arean/ui_user_info/UIUserInfo.ts

119 lines
4.6 KiB
TypeScript
Raw Normal View History

2025-02-07 10:49:34 +08:00
import { EditBox, Toggle } from "cc";
import { tgxUIAlert, tgxUIController, tgx_class } from "../../core_tgx/tgx";
import { GameUILayers } from "../../scripts/GameUILayers";
import { UserMgr } from "../../module_basic/scripts/UserMgr";
import { Layout_UIUserInfo } from "./Layout_UIUserInfo";
import { ModuleDef } from "../../scripts/ModuleDef";
import { ConfigMgr } from "../../module_basic/scripts/ConfigMgr";
import {UserInfo} from "db://assets/module_basic/shared/types/UserInfo";
const genderStrArr = ['保密', '男', '女'];
@tgx_class(ModuleDef.Arean)
export class UIUserInfo extends tgxUIController {
constructor() {
super("ui_user_info/ui_user_info", GameUILayers.POPUP, Layout_UIUserInfo);
}
private _userInfo: UserInfo;
private _gender: number = undefined;
private _introduction: string = undefined;
protected async onCreated(userInfo: UserInfo): Promise<void> {
this._userInfo = userInfo;
let config = await ConfigMgr.inst.getBasicConfig();
if (!config) {
tgxUIAlert.show('获取匹配失败,请稍后再试');
this.close();
return;
}
let layout = this.layout as Layout_UIUserInfo;
this.onButtonEvent(layout.btnClose, async () => {
if (this._gender != undefined || this._introduction != undefined) {
tgxUIAlert.show(`是否花费${config.userInfoModifyCost}战币修改信息?`, true).onClick(async b => {
this.close();
if (b) {
if (UserMgr.inst.coin < config.userInfoModifyCost) {
tgxUIAlert.show('金币不足,修改失败');
return;
}
let ret = await UserMgr.inst.rpc_ModifyUserInfo(this._gender, this._introduction);
if (ret.isSucc) {
tgxUIAlert.show('用户信息修改成功!');
}
else {
tgxUIAlert.show('用户信息修改失败!');
}
}
});
}
else {
this.close();
}
});
this.onButtonEvent(layout.btnIntroductionEdit, () => {
layout.editIntroduction.node.active = true;
layout.editIntroduction.string = this._introduction || this._userInfo.introduction || '';
});
layout.editIntroduction.node.on(EditBox.EventType.EDITING_DID_ENDED, this.onEditDidEnd, this);
this.onButtonEvent(layout.btnMaskBg, this.onEditDidEnd, this);
this.onToggleEvent(layout.toggleGenderOptions, (v: Toggle) => {
let index = layout.toggleGenderOptions.toggleItems.indexOf(v);
if (index != this._userInfo.gender) {
this._gender = index;
}
});
this.initData();
}
onEditDidEnd() {
let layout = this.layout as Layout_UIUserInfo;
if (!layout.editIntroduction.node.active) {
return;
}
if (this._userInfo.introduction != layout.editIntroduction.string) {
layout.lblIntroduction.string = layout.editIntroduction.string;
this._introduction = layout.lblIntroduction.string;
}
layout.editIntroduction.node.active = false;
}
initData() {
if (!this.node) {
return;
}
let layout = this.layout as Layout_UIUserInfo;
let bShow = !!this._userInfo;
layout.lblName.node.active = bShow;
layout.lblId.node.active = bShow;
layout.lblGender.node.active = bShow;
layout.toggleGenderOptions.node.active = bShow;
layout.lblIntroduction.node.active = bShow;
if (!this._userInfo) {
return;
}
UserMgr.inst.setUserIconAndName(this._userInfo.uid, layout.sprHeadImg);
layout.lblName.string = '昵称:' + this._userInfo.name;
layout.lblId.string = 'ID' + this._userInfo.uid;
layout.lblIntroduction.string = this._userInfo.introduction || '这家伙很懒,什么也没留下~';
layout.lblGender.string = '性别:';
let gender = this._userInfo.gender || 0;
if (this._userInfo.uid == UserMgr.inst.userId) {
layout.toggleGenderOptions.toggleItems[gender].isChecked = true;
}
else {
layout.toggleGenderOptions.node.active = false;
layout.btnIntroductionEdit.enabled = false;
layout.lblGender.string = '性别:' + genderStrArr[gender];
}
}
}