UnbindAccount.ts 2.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384
  1. import { _decorator, Button, Color, EditBox, instantiate, Label, Node, RichText, Sprite, SpriteFrame, UITransform } from 'cc';
  2. import { UIViewID } from '@scripts/define/UIDefine';
  3. import { UICloseReason } from '@scripts/framework/ui/UILayer';
  4. import { addBtnClick } from '@scripts/utils/UIHelper';
  5. import { AppKernel } from '@scripts/app/AppKernel';
  6. import { SelectBox } from '@scripts/components/selectBox/SelectBox';
  7. import { UIPopup } from '@scripts/framework/ui/UIPopup';
  8. import { checkIsEmail } from '@scripts/utils/Helper';
  9. const { ccclass, property } = _decorator;
  10. @ccclass('UnbindAccount')
  11. export class UnbindAccount extends UIPopup {
  12. readonly viewId = UIViewID.UnbindAccount;
  13. @property(Node)
  14. private btn_close: Node = null;
  15. @property(Node)
  16. private btn_confirm: Node = null;
  17. @property(Node)
  18. private btn_grey: Node = null;
  19. @property(EditBox)
  20. private account: EditBox = null;
  21. @property(EditBox)
  22. private verify_code: EditBox = null;
  23. @property(Label)
  24. private _account: string = '';
  25. private _verify_code: string = '';
  26. protected onCreate(): void | Promise<void> {
  27. addBtnClick(this.btn_close, this.onBtnCloseClick, this);
  28. addBtnClick(this.btn_confirm, this.onBtnConfirmClick, this);
  29. this.account.node.on(EditBox.EventType.TEXT_CHANGED, this.onAccountTextChanged, this);
  30. this.verify_code.node.on(EditBox.EventType.TEXT_CHANGED, this.onVerifyCodeTextChanged, this);
  31. }
  32. private onBtnCloseClick() {
  33. AppKernel.ui.close(UIViewID.UnbindAccount);
  34. }
  35. private async onBtnConfirmClick() {
  36. const account = this.account.string;
  37. const code = this.verify_code.string;
  38. const isReady = !!account && !!code;
  39. if (!isReady) return;
  40. const res = await AppKernel.stores.mainStore.reqUnBind3rdConfirm({
  41. verify_type: checkIsEmail(account) ? "email" : "phone",
  42. code
  43. });
  44. if (res) {
  45. await AppKernel.ui.close(UIViewID.UnbindAccount);
  46. AppKernel.ui.toast("Unbind success");
  47. }
  48. }
  49. private onTextChanged() {
  50. const isReady = !!this._account && !!this._verify_code;
  51. this.btn_confirm.active = isReady;
  52. this.btn_grey.active = !isReady;
  53. }
  54. private onAccountTextChanged(editBox: EditBox) {
  55. console.log('onAccountTextChanged', editBox.string);
  56. this._account = editBox.string;
  57. this.onTextChanged();
  58. }
  59. private onVerifyCodeTextChanged(editBox: EditBox) {
  60. console.log('onVerifyCodeTextChanged', editBox.string);
  61. this._verify_code = editBox.string;
  62. this.onTextChanged();
  63. }
  64. }