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

119 lines
4.6 KiB
TypeScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

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];
}
}
}