DaoYouPanel.cs 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. using System.Collections.Generic;
  2. using Excel2Json;
  3. using Fort23.Core;
  4. using Fort23.UTool;
  5. namespace Fort23.Mono
  6. {
  7. [UIBinding(prefab = "DaoYouPanel")]
  8. public partial class DaoYouPanel : UIPanel
  9. {
  10. List<DaoYouWidget> daoYouWidgets = new List<DaoYouWidget>();
  11. private void Init()
  12. {
  13. isAddStack = true;
  14. IsShowAppBar = true;
  15. }
  16. protected override void AddEvent()
  17. {
  18. }
  19. protected override void DelEvent()
  20. {
  21. }
  22. public override void AddButtonEvent()
  23. {
  24. }
  25. public override CTask GetFocus()
  26. {
  27. TitlePanel.ClosePanel();
  28. AppBarPanel.OpenPanel(this);
  29. CustomInit();
  30. return base.GetFocus();
  31. }
  32. public async override CTask<bool> AsyncInit(object[] uiData)
  33. {
  34. await CustomInit();
  35. return await base.AsyncInit(uiData);
  36. }
  37. public async CTask CustomInit()
  38. {
  39. foreach (var daoYouWidget in daoYouWidgets)
  40. {
  41. UIManager.Instance.DormancyGComponent(daoYouWidget);
  42. }
  43. daoYouWidgets.Clear();
  44. DaoyouModelConfig[] daoyouModelConfigs = ConfigComponent.Instance.GetAll<DaoyouModelConfig>();
  45. using (CTaskAwaitBuffer<DaoYouWidget> cts = new CTaskAwaitBuffer<DaoYouWidget>())
  46. {
  47. foreach (var daoyouModelConfig in daoyouModelConfigs)
  48. {
  49. cts.AddTask(UIManager.Instance.CreateGComponent<DaoYouWidget>(null, Content));
  50. }
  51. daoYouWidgets = await cts.WaitAll();
  52. }
  53. for (var i = 0; i < daoyouModelConfigs.Length; i++)
  54. {
  55. daoYouWidgets[i].CustomInit(daoyouModelConfigs[i].ID);
  56. daoYouWidgets[i].OnClick = OnClick;
  57. }
  58. }
  59. private void OnClick(ItemWidgetBasic obj)
  60. {
  61. DaoYouWidget daoYouWidget = obj as DaoYouWidget;
  62. if (daoYouWidget._daoYouData == null)
  63. {
  64. TipMessagePanel.OpenTipMessagePanel(10437);
  65. return;
  66. }
  67. DaoYouInfoPanel.OpenPanel(daoYouWidget._daoYouData);
  68. }
  69. public static async CTask OpenPanel()
  70. {
  71. await UIManager.Instance.LoadAndOpenPanel<DaoYouPanel>(null);
  72. }
  73. public async override CTask Close()
  74. {
  75. foreach (var daoYouWidget in daoYouWidgets)
  76. {
  77. UIManager.Instance.DormancyGComponent(daoYouWidget);
  78. }
  79. daoYouWidgets.Clear();
  80. await base.Close();
  81. }
  82. }
  83. }