KLAppearGroupPanel.lua 3.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119
  1. ---@class KLAppearGroupPanel:UIKmlLuaPanelBase
  2. ---@field view KLAppearGroupPanelView
  3. local KLAppearGroupPanel = class(UIKmlLuaPanelBase)
  4. local this = KLAppearGroupPanel
  5. ---@type table<E_FashionType,UIKmlLuaControl>
  6. local togs = {}
  7. ---创建时调用一次
  8. function this:Init()
  9. togs[E_FashionType.Appear] = self.view.TogAppear
  10. togs[E_FashionType.Title] = self.view.TogTitle
  11. togs[E_FashionType.TransferRing] = self.view.TogBox
  12. togs[E_FashionType.Change] = self.view.TogChange
  13. togs[E_FashionType.Render] = self.view.TogRender
  14. end
  15. ---创建或者刷新界面数据时调用
  16. function this:Refresh()
  17. local page = self.args or E_FashionType.Appear
  18. local togItem = togs[page]
  19. if togItem then
  20. GUI:SetTogDefaultThis(togItem)
  21. else
  22. GUI:SetTogDefaultThis(self.view.TogAppear)
  23. end
  24. end
  25. ---注册UI事件和服务器消息
  26. function this:RegistEvents()
  27. GUI:SetToggleOnValueChange(self.view.TogAppear, self, self.TogAppearOnClick)
  28. GUI:SetToggleOnValueChange(self.view.TogTitle, self, self.TogTitleOnClick)
  29. GUI:SetToggleOnValueChange(self.view.TogBox, self, self.TogBoxOnClick)
  30. GUI:SetToggleOnValueChange(self.view.TogChange, self, self.TogChangeOnClick)
  31. GUI:SetToggleOnValueChange(self.view.TogRender, self, self.TogRenderOnClick)
  32. end
  33. function this:TogAppearOnClick(kmlCtrl, eventData, args)
  34. if args[1] then
  35. if self.curPage == E_FashionType.Appear then
  36. return
  37. end
  38. self.curPage = E_FashionType.Appear
  39. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearPreview/KLAppearPreviewPanel")
  40. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppear/KLAppearPanel")
  41. else
  42. GUI:UIPanel_Close("dev/outui/AppearGroup/Panel/KLAppear/KLAppearPanel")
  43. end
  44. end
  45. function this:TogTitleOnClick(kmlCtrl, eventData, args)
  46. if args[1] then
  47. if self.curPage == E_FashionType.Title then
  48. return
  49. end
  50. self.curPage = E_FashionType.Title
  51. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearPreview/KLAppearPreviewPanel")
  52. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLTitle/KLTitlePanel")
  53. else
  54. GUI:UIPanel_Close("dev/outui/AppearGroup/Panel/KLTitle/KLTitlePanel")
  55. end
  56. end
  57. function this:TogBoxOnClick(kmlCtrl, eventData, args)
  58. if args[1] then
  59. if self.curPage == E_FashionType.TransferRing then
  60. return
  61. end
  62. self.curPage = E_FashionType.TransferRing
  63. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearPreview/KLAppearPreviewPanel")
  64. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLTransferRing/KLTransferRingPanel")
  65. else
  66. GUI:UIPanel_Close("dev/outui/AppearGroup/Panel/KLTransferRing/KLTransferRingPanel")
  67. end
  68. end
  69. function this:TogChangeOnClick(kmlCtrl, eventData, args)
  70. if args[1] then
  71. if self.curPage == E_FashionType.Change then
  72. return
  73. end
  74. self.curPage = E_FashionType.Change
  75. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearPreview/KLAppearPreviewPanel")
  76. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLSuit/KLSuitPanel")
  77. else
  78. GUI:UIPanel_Close("dev/outui/AppearGroup/Panel/KLSuit/KLSuitPanel")
  79. end
  80. end
  81. function this:TogRenderOnClick(kmlCtrl, eventData, args)
  82. if args[1] then
  83. if self.curPage == E_FashionType.Render then
  84. return
  85. end
  86. self.curPage = E_FashionType.Render
  87. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLAppearPreview/KLAppearPreviewPanel")
  88. GUI:UIPanel_Open("dev/outui/AppearGroup/Panel/KLRender/KLRenderPanel")
  89. else
  90. GUI:UIPanel_Close("dev/outui/AppearGroup/Panel/KLRender/KLRenderPanel")
  91. end
  92. end
  93. function this:Close()
  94. self.curPage = nil
  95. end
  96. return this