UIHundredDojoRewardView.lua 4.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. local UIHundredDojoRewardView = require("UIHundredDojo/UIHundredDojoRewardView_Generate")
  2. function UIHundredDojoRewardView:OnAwake(data)
  3. self.controller = require("UIHundredDojo/UIHundredDojoRewardCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIHundredDojoRewardView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  9. end
  10. function UIHundredDojoRewardView:FillContent(data, uiBase)
  11. self.uiBase = uiBase
  12. local gameObject = self.uiBase:GetRoot()
  13. if gameObject ~= nil then
  14. self.gameObject = gameObject
  15. self.transform = gameObject.transform
  16. end
  17. self:InitGenerate(self.transform, data)
  18. self:Init()
  19. end
  20. function UIHundredDojoRewardView:Init()
  21. self.controller:InitData()
  22. self:RefreshView()
  23. end
  24. function UIHundredDojoRewardView:RemoveEventListener()
  25. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  26. end
  27. function UIHundredDojoRewardView:AddUIEventListener()
  28. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button,self, self.OnClickCloseBtn)
  29. end
  30. function UIHundredDojoRewardView:OnHide()
  31. end
  32. function UIHundredDojoRewardView:OnShow(data)
  33. self.controller:SetData(data)
  34. end
  35. function UIHundredDojoRewardView:OnClose()
  36. end
  37. function UIHundredDojoRewardView:OnDispose()
  38. self.controller:OnDispose()
  39. end
  40. function UIHundredDojoRewardView:OnClickCloseBtn()
  41. self:UIClose()
  42. end
  43. function UIHundredDojoRewardView:RefreshView()
  44. local rewards = self.controller:GetRewards()
  45. local rewardRate = self.controller:GetRewardRate()
  46. if rewards then
  47. self:RefreshCurrencyItem(self.currency1, rewards[1], rewardRate)
  48. self:RefreshCurrencyItem(self.currency2, rewards[2], rewardRate)
  49. self:RefreshCurrencyItem(self.currency3, rewards[3], rewardRate)
  50. else
  51. self:RefreshCurrencyItem(self.currency1, nil, rewardRate)
  52. self:RefreshCurrencyItem(self.currency2, nil, rewardRate)
  53. self:RefreshCurrencyItem(self.currency3, nil, rewardRate)
  54. end
  55. local rewardTime = self.controller:GetRewardTime()
  56. self.rewardTimeTxt.text.text = DateTimeUtil.convertSeconds2TimeStr1(rewardTime, true, true, false)
  57. local currencys = self.controller:GetCurrencys()
  58. if currencys then
  59. self:RefreshReceiveResItem(self.receiveRes1, Enum.ItemIds.WalletNum, currencys[Enum.ItemIds.WalletNum])
  60. self:RefreshReceiveResItem(self.receiveRes2, Enum.ItemIds.HundredDojoStone, currencys[Enum.ItemIds.HundredDojoStone])
  61. self:RefreshReceiveResItem(self.receiveRes3, Enum.ItemIds.GuildCP, currencys[Enum.ItemIds.GuildCP])
  62. else
  63. self:RefreshReceiveResItem(self.receiveRes1, Enum.ItemIds.WalletNum, 0)
  64. self:RefreshReceiveResItem(self.receiveRes2, Enum.ItemIds.HundredDojoStone, 0)
  65. self:RefreshReceiveResItem(self.receiveRes3, Enum.ItemIds.GuildCP, 0)
  66. end
  67. local items = self.controller:GetItems()
  68. if items == 0 then
  69. self.nothing:SetActive(true)
  70. self.itemScrollView:SetActive(false)
  71. else
  72. self.nothing:SetActive(false)
  73. self.itemScrollView:SetActive(true)
  74. end
  75. CommonUtil.LoopGridViewEleCreateNew(self,
  76. self.itemScrollView.loopVerticalScrollRect,
  77. nil, items,0, self, self.OnUpdateItemData)
  78. end
  79. function UIHundredDojoRewardView:OnUpdateItemData(itemLua, idx, itemData)
  80. if not itemLua then return end
  81. CommonUtil.UpdateItemPrefab(self, itemLua, itemData, nil, self, self.OnClickItem)
  82. end
  83. function UIHundredDojoRewardView:RefreshCurrencyItem(currency, reward, rewardRate)
  84. if not currency then return end
  85. currency.icon.image.enabled = false
  86. currency.icon.image.sprite = nil
  87. if reward then
  88. local cfgId = reward[1] or 0
  89. local num = reward[2] or 0
  90. local cfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
  91. if cfgData then
  92. CommonUtil.LoadIcon(self, cfgData.MiniIcon, function(sprite)
  93. if sprite then
  94. currency.icon.image.sprite = sprite
  95. currency.icon.image.enabled = true
  96. end
  97. end)
  98. end
  99. if rewardRate and rewardRate > 0 then
  100. currency.text.text.text = tostring(Mathf.Floor(num * rewardRate))
  101. else
  102. currency.text.text.text = '-'
  103. end
  104. currency:SetActive(true)
  105. else
  106. currency:SetActive(false)
  107. end
  108. end
  109. function UIHundredDojoRewardView:RefreshReceiveResItem(currency, cfgId, num)
  110. if not currency then return end
  111. currency.icon.image.enabled = false
  112. currency.icon.image.sprite = nil
  113. if cfgId then
  114. local cfgData = ManagerContainer.CfgMgr:GetItemById(cfgId)
  115. if cfgData then
  116. CommonUtil.LoadIcon(self, cfgData.MiniIcon, function(sprite)
  117. if sprite then
  118. currency.icon.image.sprite = sprite
  119. currency.icon.image.enabled = true
  120. end
  121. end)
  122. end
  123. currency.text.text.text = tostring(num or 0)
  124. currency:SetActive(true)
  125. else
  126. currency:SetActive(false)
  127. end
  128. end
  129. function UIHundredDojoRewardView:OnClickItem(btn,params)
  130. --local logicData = params[0]
  131. --ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIItemTips, item)
  132. local data = params[0]
  133. local itemData = ManagerContainer.DataMgr.BagData:GetItemDataByCfgId(data.cfgId)
  134. data.timeStamp = itemData and itemData.timeStamp or nil
  135. ManagerContainer.LuaUIMgr:OpenTips(data)
  136. end
  137. return UIHundredDojoRewardView