UIDojoRewardView.lua 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. local UIDojoRewardView = require("UIDojo/UIDojoRewardView_Generate")
  2. function UIDojoRewardView:OnAwake(data)
  3. self.controller = require("UIDojo/UIDojoRewardCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIDojoRewardView:AddEventListener()
  8. end
  9. function UIDojoRewardView:FillContent(data, uiBase)
  10. self.uiBase = uiBase
  11. local gameObject = self.uiBase:GetRoot()
  12. if gameObject ~= nil then
  13. self.gameObject = gameObject
  14. self.transform = gameObject.transform
  15. end
  16. self:InitGenerate(self.transform, data)
  17. self:Init()
  18. self:SetToggleBtnStatus()
  19. end
  20. function UIDojoRewardView:Init()
  21. self.danRewardToggle.toggle.interactable = true;
  22. self.rankRewardToggle.toggle.interactable = true;
  23. end
  24. function UIDojoRewardView:SetToggleBtnStatus()
  25. self.toggles = {}
  26. self.toggles[1] = self.danRewardToggle;
  27. self.toggles[2] = self.rankRewardToggle;
  28. self.curToggleIdx = 1
  29. self.toggles[self.curToggleIdx].toggle.isOn = true
  30. self.toggles[self.curToggleIdx].toggle.interactable = false
  31. self:ShowDanReward()
  32. end
  33. function UIDojoRewardView:RemoveEventListener()
  34. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  35. end
  36. function UIDojoRewardView:AddUIEventListener()
  37. self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickCloseBtn)
  38. self.uiBase:AddButtonEventListener(self.closeBtn.button,self, self.OnClickCloseBtn)
  39. self.uiBase:AddToggleEventListener(self.danRewardToggle.toggle,self,self.OnClickTab,1)
  40. self.uiBase:AddToggleEventListener(self.rankRewardToggle.toggle,self,self.OnClickTab,2)
  41. end
  42. function UIDojoRewardView:OnHide()
  43. end
  44. function UIDojoRewardView:OnShow(data)
  45. self.controller:SetData(data)
  46. self:Init()
  47. end
  48. function UIDojoRewardView:OnClose()
  49. end
  50. function UIDojoRewardView:OnDispose()
  51. self.toggles = nil
  52. self.rewardItemScroll.loopVerticalScrollRect:ClearCells()
  53. self.curDanItemScroll.loopHorizontalScrollRect:ClearCells()
  54. self.nextDanItemScroll.loopHorizontalScrollRect:ClearCells()
  55. end
  56. function UIDojoRewardView:OnClickCloseBtn()
  57. ManagerContainer.LuaUIMgr:ClosePage(self.uiBase.PageId)
  58. end
  59. function UIDojoRewardView:OnClickTab(selectedTog,toggleIdx, result)
  60. if self.curToggleIdx == toggleIdx then
  61. return
  62. end
  63. self.curToggleIdx = toggleIdx
  64. for i =1, #self.toggles do
  65. if i ~= (toggleIdx) then
  66. self.toggles[i].toggle.isOn = false
  67. self.toggles[i].toggle.interactable = true
  68. end
  69. end
  70. selectedTog.interactable = false
  71. if self.curToggleIdx == 2 then
  72. self:ShowRankReward()
  73. elseif self.curToggleIdx == 1 then
  74. self:ShowDanReward()
  75. end
  76. end
  77. function UIDojoRewardView:ShowDanReward()
  78. self.danRewardNode:SetActive(true)
  79. self.rewardItemScroll:SetActive(false)
  80. local arenaData = ManagerContainer.DataMgr.ArenaData
  81. -- 设置当前赛季数据
  82. self.curNode:SetActive(true);
  83. self.curDanName.text.text = I18N.T(arenaData.danName)
  84. CommonUtil.LoadIcon(self, arenaData.danIcon, function (sprite)
  85. self.curDanIcon.image.sprite = sprite
  86. end)
  87. CommonUtil.LoopGridViewEleCreateNew(self,
  88. self.curDanItemScroll.loopHorizontalScrollRect,
  89. self.curDanItemContent.gridLayoutGroup,arenaData.danReward,0,self,self.OnUpdateItemData)
  90. -- 设置下一赛季的数据
  91. if arenaData.nextDanScore == nil or arenaData.nextDanScore == 0 then
  92. self.nextNode:SetActive(false)
  93. else
  94. self.nextNode:SetActive(true)
  95. self.nextDanName.text.text = I18N.T(arenaData.nextDanName)
  96. CommonUtil.LoadIcon(self, arenaData.nextDanIcon, function (sprite)
  97. self.nextDanIcon.image.sprite = sprite
  98. end)
  99. CommonUtil.LoopGridViewEleCreateNew(self,
  100. self.nextDanItemScroll.loopHorizontalScrollRect,
  101. self.nextDanItemContent.gridLayoutGroup,arenaData.nextDanReward,0,self,self.OnUpdateItemData)
  102. end
  103. end
  104. function UIDojoRewardView:ShowRankReward()
  105. self.danRewardNode:SetActive(false)
  106. self.rewardItemScroll:SetActive(true)
  107. if self.controller.rankRewardList~= nil then
  108. CommonUtil.LoopGridViewEleCreateNew(self,
  109. self.rewardItemScroll.loopVerticalScrollRect,
  110. nil,self.controller.rankRewardList,0,self,self.OnUpdateRankRewardData)
  111. end
  112. end
  113. function UIDojoRewardView:OnUpdateRankRewardData(rankItemLua,idx)
  114. if rankItemLua == nil then
  115. return
  116. end
  117. local rewardItem = self.controller.rankRewardList[idx+1]
  118. if rewardItem == nil then
  119. return
  120. end
  121. rankItemLua.rank1:SetActive(false)
  122. rankItemLua.rank2:SetActive(false)
  123. rankItemLua.rank3:SetActive(false)
  124. if rewardItem.minLevel == rewardItem.maxLevel then
  125. rankItemLua.rankVal.text.text = tostring(rewardItem.minLevel)
  126. if rewardItem.minLevel == 1 then
  127. rankItemLua.rank1:SetActive(true)
  128. elseif rewardItem.minLevel == 2 then
  129. rankItemLua.rank2:SetActive(true)
  130. elseif rewardItem.minLevel == 3 then
  131. rankItemLua.rank3:SetActive(true)
  132. end
  133. else
  134. rankItemLua.rankVal.text.text = rewardItem.minLevel .. "-" .. rewardItem.maxLevel
  135. end
  136. rankItemLua.bg:SetActive(rewardItem.minLevel<=3)
  137. rankItemLua.danName.text.text = I18N.T('ZhzWz')
  138. CommonUtil.LoopGridViewEleCreateNew(self,
  139. rankItemLua.itemScroll.loopHorizontalScrollRect,
  140. rankItemLua.itemContent.gridLayoutGroup,rewardItem.itemList,0,self,self.OnUpdateItemData)
  141. end
  142. function UIDojoRewardView:OnUpdateItemData(itemLua,idx,item)
  143. if itemLua~=nil and item~= nil then
  144. CommonUtil.SetRewardItemData(self,item[1],itemLua,item[2], self.OnClickItem)
  145. end
  146. end
  147. function UIDojoRewardView:OnClickItem(btn,params)
  148. local logicData = params[0]
  149. --ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIItemTips, item)
  150. ManagerContainer.LuaUIMgr:OpenTips(logicData)
  151. end
  152. function UIDojoRewardView:OnClickClose()
  153. ManagerContainer.LuaUIMgr:ClosePage(Enum.UIPageName.UIBattleReward)
  154. end
  155. return UIDojoRewardView