FamilyPageHas.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374
  1. import { _decorator, Component, Node } from "cc";
  2. import BaseUI from "../../scripts/base/BaseUI";
  3. import { MemberManager } from "./MemberManager";
  4. import { InputNameLayer } from "./InputNameLayer";
  5. import EV, { EV_TYPE } from "../../scripts/mgr/EV";
  6. import AB from "../../scripts/base/AB";
  7. import { instantiate } from "cc";
  8. import { RankPlayerDto } from "../../scripts/api/RankM";
  9. import { RankPlayerItem } from "../item/RankPlayerItem";
  10. import { FamilyMemberItem } from "./FamilyMemberItem";
  11. import PayM from "../../scripts/mgr/PayM";
  12. import { Label } from "cc";
  13. import ShareM from "../../scripts/mgr/ShareM";
  14. import { Tips } from "../../scripts/mgr/Tips";
  15. const { ccclass, property } = _decorator;
  16. @ccclass("FamilyPageHas")
  17. export class FamilyPageHas extends BaseUI {
  18. async editFamilyNotice() {
  19. let notice = await InputNameLayer.show(100);
  20. if (notice == null) {
  21. return;
  22. }
  23. EV.ins.emit(EV_TYPE.FAMILY_STATUS_UPDATE);
  24. }
  25. onShow() {
  26. this.refresh();
  27. }
  28. async refresh() {
  29. this.setText("lbl_my_family_name", "mock family name");
  30. this.setText("lbl_my_family_owner_name", "mock family owner");
  31. let mo = `mock family notice
  32. Lazy to join
  33. Join now Visit xxx.com`;
  34. this.setText("lbl_my_family_notice", mo);
  35. let members_layout = this.FindNode("members_layout");
  36. let p = await AB.ins.loadPrefab("prefab/family/FamilyMemberItem");
  37. members_layout.removeAllChildren();
  38. for (let index = 0; index < 10; index++) {
  39. let item = instantiate(p);
  40. item.active = true;
  41. item.parent = members_layout;
  42. let playerData = {
  43. userName: "Player " + (index + 1),
  44. exp: 10000 * (999 - index),
  45. };
  46. item.getComponent(FamilyMemberItem).init(playerData);
  47. }
  48. }
  49. protected simpleOnBtnClick(name: string): void {
  50. let self = this;
  51. switch (name) {
  52. case "btn_edit_family_notice":
  53. this.editFamilyNotice();
  54. break;
  55. case "btn_approve":
  56. MemberManager.show();
  57. break;
  58. case "btn_share_family":
  59. this.shareFamily();
  60. break;
  61. }
  62. }
  63. shareFamily() {
  64. Tips.show("Sharing...");
  65. let familyName = this.FindAs("lbl_my_family_name", Label).string;
  66. let familyOwner = this.FindAs("lbl_my_family_owner_name", Label).string;
  67. ShareM.ins.shareFamily(familyName, familyOwner);
  68. }
  69. }