NoticeLayer.ts 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. import { _decorator, Component, Node } from "cc";
  2. import BaseUI from "../../scripts/base/BaseUI";
  3. import { RichText } from "cc";
  4. import UserM, { AnnouncementInfo } from "../../scripts/api/UserM";
  5. import { Hall } from "../hall/Hall";
  6. import ConfigM from "../../scripts/api/ConfigM";
  7. const { ccclass, property } = _decorator;
  8. @ccclass("NoticeLayer")
  9. export class NoticeLayer extends BaseUI {
  10. static async show(announcement: AnnouncementInfo) {
  11. if (
  12. !announcement ||
  13. announcement.message == null ||
  14. announcement.message == ""
  15. ) {
  16. return;
  17. }
  18. let layer = await Hall.ins.showLayer("prefab/layer/NoticeLayer");
  19. layer.getComponent(NoticeLayer).init(announcement);
  20. }
  21. private announcement: AnnouncementInfo;
  22. init(announcement: AnnouncementInfo) {
  23. this.announcement = announcement;
  24. this.FindAs("text_content", RichText).string = announcement.message;
  25. }
  26. protected onLoad(): void {
  27. super.onLoad();
  28. }
  29. protected simpleOnBtnClick(name: string): void {
  30. switch (name) {
  31. case "btn_chat":
  32. if (this.announcement.chatLink) {
  33. ConfigM.ins.openLink(this.announcement.chatLink);
  34. }
  35. break;
  36. case "btn_notice":
  37. if (this.announcement.noticeLink) {
  38. ConfigM.ins.openLink(this.announcement.noticeLink);
  39. }
  40. break;
  41. }
  42. }
  43. }