FamilyPageNo.ts 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. import { _decorator, Component, Node } from "cc";
  2. import BaseUI from "../../scripts/base/BaseUI";
  3. import { InputNameLayer } from "./InputNameLayer";
  4. import Utils from "../../scripts/utils/Utils";
  5. import { TipsLayer } from "../layer/TipsLayer";
  6. import AB from "../../scripts/base/AB";
  7. import { instantiate } from "cc";
  8. import EV, { EV_TYPE } from "../../scripts/mgr/EV";
  9. import { Tips } from "../../scripts/mgr/Tips";
  10. import UserM from "../../scripts/api/UserM";
  11. import ShareM from "../../scripts/mgr/ShareM";
  12. import FamilyM from "../../scripts/api/FamilyM";
  13. import { EditBox } from "cc";
  14. import { FamilyItem } from "./FamilyItem";
  15. const { ccclass, property } = _decorator;
  16. @ccclass("FamilyPageNo")
  17. export class FamilyPageNo extends BaseUI {
  18. async createFamily() {
  19. let name = await InputNameLayer.show(10);
  20. console.log("name", name);
  21. if (name == null) {
  22. return;
  23. }
  24. let result = await FamilyM.ins.createFamily(name);
  25. if (!result) {
  26. // Tips.show("Create Family Failed");
  27. return;
  28. }
  29. await UserM.ins.refreshInfo();
  30. let title = "";
  31. let content = Utils.setI18nLabel("Family.CreateFamilySuccess", name);
  32. let familyOwner = UserM.ins.getUserName();
  33. let shareLink = await ShareM.ins.getFamilyShareLink(name, familyOwner);
  34. let success = await TipsLayer.forceConfirm(title, content, shareLink);
  35. EV.ins.emit(EV_TYPE.FAMILY_STATUS_UPDATE);
  36. }
  37. protected onLoad(): void {
  38. super.onLoad();
  39. this.staticUI();
  40. }
  41. staticUI() {
  42. this.setText("lbl_family_tips_what_is", Utils.setI18nLabel("Family.WhatIsFamily"));
  43. this.setText("lbl_family_tips_member", Utils.setI18nLabel("Family.FamilyMemberBenefits"));
  44. this.setText("lbl_family_tips_owner", Utils.setI18nLabel("Family.FamilyOwnerBenefits"));
  45. }
  46. async searchFamily() {
  47. let keyword = this.FindAs("EditBoxSearchFamily", EditBox).string;
  48. if (keyword == "") {
  49. return;
  50. }
  51. let p = await AB.ins.loadPrefab("prefab/family/FamilyItem");
  52. let families_layout = this.FindNode("families_layout");
  53. families_layout.removeAllChildren();
  54. let familyList = await FamilyM.ins.searchFamily(keyword);
  55. if (!familyList || familyList.length <= 0) {
  56. Tips.show("No Family Found");
  57. return;
  58. }
  59. for (let index = 0; index < familyList.length; index++) {
  60. let item = instantiate(p);
  61. item.active = true;
  62. item.parent = families_layout;
  63. item.getComponent(FamilyItem).init(familyList[index]);
  64. }
  65. }
  66. protected simpleOnBtnClick(name: string): void {
  67. switch (name) {
  68. case "btn_search":
  69. this.searchFamily();
  70. break;
  71. case "btn_join_family":
  72. Tips.show("Coming Soon");
  73. break;
  74. case "btn_create_family":
  75. this.createFamily();
  76. break;
  77. }
  78. }
  79. }