UIActivityFortnightLoginView.lua 6.9 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225
  1. local UIActivityFortnightLoginView = require("UIActivity/UIActivityFortnightLoginView_Generate")
  2. local IconItemCtr = require("Common/IconItemCtr")
  3. local makeUpCost = 10
  4. function UIActivityFortnightLoginView:OnAwake(data)
  5. self.controller = require("UIActivity/UIActivityFortnightLoginCtr"):new()
  6. self.controller:Init(self)
  7. self.controller:SetData(data)
  8. end
  9. function UIActivityFortnightLoginView:AddEventListener()
  10. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.EID_Activity_Data_Change,self,self.OnRefreshActivity);
  11. end
  12. function UIActivityFortnightLoginView:FillContent(data, uiBase)
  13. self.uiBase = uiBase
  14. local gameObject = self.uiBase:GetRoot()
  15. if gameObject ~= nil then
  16. self.gameObject = gameObject
  17. self.transform = gameObject.transform
  18. end
  19. self:InitGenerate(self.transform, data)
  20. self.curRewardName.text.text =""
  21. self:Init()
  22. end
  23. function UIActivityFortnightLoginView:Init()
  24. makeUpCost = GlobalConfig.Instance:GetConfigIntValue(260)
  25. self.controller:InitActivityData(self.uiData.id)
  26. self.subActItemList = {}
  27. self.subActItemLuaList = {}
  28. self.templateItem:SetActive(false)
  29. self:InitUIComs()
  30. self:RefreshActData()
  31. end
  32. function UIActivityFortnightLoginView:InitUIComs()
  33. local activityItem = self.controller:GetActivityData()
  34. if activityItem ~= nil then
  35. local data = activityItem:GetActivityData()
  36. if data ~= nil then
  37. for i = 1, #data do
  38. self:CreateSubActItem(i,data[i])
  39. end
  40. end
  41. else
  42. self.templateItem:SetActive(false)
  43. end
  44. local pageBg = self.controller:GetBg()
  45. if pageBg ~= "" then
  46. CommonUtil.LoadIcon(self, pageBg, function (sprite)
  47. self.image.image.sprite = sprite
  48. end)
  49. end
  50. end
  51. function UIActivityFortnightLoginView:OnRefreshActivity(activityId)
  52. local actItem = self.controller:GetActivityData()
  53. if actItem == nil or actItem.actId ~= activityId then
  54. return
  55. end
  56. self:RefreshActData()
  57. end
  58. function UIActivityFortnightLoginView:RefreshActData()
  59. local activityItem = self.controller:GetActivityData()
  60. if activityItem ~= nil then
  61. self.curDayTxt.text.text = activityItem.curDay .. I18N.T("Day")
  62. local data = activityItem:GetActivityData()
  63. local maxDayData = 0
  64. local maxItemCfg = nil
  65. if data ~= nil then
  66. for i = 1, #data do
  67. local itemcfg = self:RefreshItemData(self.subActItemLuaList[i],data[i],activityItem.curDay)
  68. if data[i].day > maxDayData then
  69. maxDayData = data[i].day
  70. maxItemCfg = itemcfg
  71. end
  72. end
  73. end
  74. if activityItem.curDay > maxDayData and maxItemCfg then
  75. self.curRewardName.text.text = maxItemCfg.Name
  76. self.curDayTxt.text.text = maxDayData .. I18N.T("Day")
  77. end
  78. end
  79. end
  80. function UIActivityFortnightLoginView:CreateSubActItem(day,data)
  81. local itemGo = UnityEngine.GameObject.Instantiate(self.templateItem.gameObject)
  82. self.subActItemList[#self.subActItemList+1] = itemGo
  83. local rewardItemLua = CommonUtil.BindGridViewItem2Lua(self, "ActivityRewardItem", itemGo)
  84. rewardItemLua.prefabName = "ActivityRewardItem"
  85. itemGo.name = "d"..day
  86. rewardItemLua.name = "ActivityRewardItem"
  87. rewardItemLua.transform:SetParent(self.rewardsNode.transform)
  88. rewardItemLua.transform.localScale = Vector3(1,1,1)
  89. rewardItemLua.rectTransform.anchoredPosition3D = Vector3(0,0,0)
  90. rewardItemLua.dayTxt.text.text = "<color=" .. data.txtClr .. ">".. string.formatbykey("TitleFirstRechargeRewards",day) .. "</color>"
  91. rewardItemLua:SetActive(true)
  92. rewardItemLua.gotRewardNode:SetActive(false)
  93. rewardItemLua.missNode:SetActive(false)
  94. CommonUtil.LoadIcon(self, data.qualityIcon, function (sprite)
  95. rewardItemLua.image.sprite = sprite
  96. end)
  97. self.subActItemLuaList[#self.subActItemLuaList+1] = rewardItemLua
  98. end
  99. function UIActivityFortnightLoginView:RefreshItemData(rewardItemLua,itemData,curDay)
  100. local rewardData = {cfgId = itemData.rewards[1][1], num = itemData.rewards[1][2] }
  101. local itemCfg = nil
  102. if itemData.isGotReward then
  103. rewardItemLua.gotRewardNode:SetActive(true)
  104. rewardItemLua.MakeUpNode:SetActive(false)
  105. rewardItemLua.shad:SetActive(true)
  106. rewardItemLua.iconItem.bg.button.interactable = false
  107. itemCfg = IconItemCtr:SetData(self, rewardItemLua.iconItem, rewardData)
  108. if itemData.day == curDay then
  109. self.curRewardName.text.text = itemCfg.Name
  110. end
  111. elseif itemData.isOutdate then
  112. rewardItemLua.gotRewardNode:SetActive(false)
  113. --rewardItemLua.missNode:SetActive(true)
  114. rewardItemLua.MakeUpNode:SetActive(true)
  115. rewardItemLua.shad:SetActive(false)
  116. --rewardItemLua.iconItem.bg.button.interactable = false
  117. IconItemCtr:SetData(self, rewardItemLua.iconItem, rewardData, nil, self, self.OnClickMakeUp,itemData.day)
  118. else
  119. rewardItemLua.gotRewardNode:SetActive(false)
  120. rewardItemLua.MakeUpNode:SetActive(false)
  121. if itemData.day <= curDay then
  122. rewardItemLua.shad:SetActive(false)
  123. itemCfg = IconItemCtr:SetData(self, rewardItemLua.iconItem, rewardData, nil, self, self.OnClickGetReward,itemData.day)
  124. if itemData.day == curDay then
  125. self.curRewardName.text.text = itemCfg.Name
  126. end
  127. else
  128. IconItemCtr:SetData(self, rewardItemLua.iconItem, rewardData, nil, self, self.OnClickItem)
  129. rewardItemLua.shad:SetActive(true)
  130. end
  131. end
  132. rewardItemLua.iconItem.redPoint:SetActive(itemData.isFinished and (not itemData.isOutdate) and (not itemData.isGotReward))
  133. return itemCfg
  134. end
  135. function UIActivityFortnightLoginView:OnClickGetReward(btn,params)
  136. local day = params and params[2] or self.makeUpDay
  137. local activityItem = self.controller:GetActivityData()
  138. if activityItem ~= nil then
  139. activityItem:SendRewardReq(day)
  140. end
  141. self.makeUpDay = nil
  142. end
  143. function UIActivityFortnightLoginView:OnClickItem(btn,params)
  144. local logicData = params[0]
  145. ManagerContainer.LuaUIMgr:OpenTips(logicData)
  146. end
  147. function UIActivityFortnightLoginView:OnClickMakeUp(btn, params)
  148. self.makeUpDay = params[2]
  149. local data = {"LoginActivityTip", {makeUpCost}, nil, self, self.OnClickGetReward}
  150. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UINoticeTips, data)
  151. end
  152. function UIActivityFortnightLoginView:RemoveEventListener()
  153. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  154. end
  155. function UIActivityFortnightLoginView:AddUIEventListener()
  156. self.uiBase:AddButtonEventListener(self.AnyBtn.button,self, self.OnClickCloseBtn)
  157. self.uiBase:AddButtonEventListener(self.backBtn.button,self, self.OnClickCloseBtn)
  158. end
  159. function UIActivityFortnightLoginView:OnHide()
  160. end
  161. function UIActivityFortnightLoginView:OnShow(data)
  162. self.controller:SetData(data)
  163. end
  164. function UIActivityFortnightLoginView:OnClose()
  165. if self.subActItemList ~= nil then
  166. for i= 1, #self.subActItemList do
  167. CommonUtil.DestroyGO(self.subActItemList[i])
  168. end
  169. self.subActItemList = nil
  170. end
  171. CommonUtil.ClearGridViewItem(self,"ActivityRewardItem")
  172. self.subActItemLuaList = nil
  173. self.makeUpDay = nil
  174. end
  175. function UIActivityFortnightLoginView:OnDispose()
  176. self.controller:OnDispose()
  177. end
  178. function UIActivityFortnightLoginView:OnClickCloseBtn()
  179. ManagerContainer.LuaUIMgr:ClosePage(self.uiBase.PageId)
  180. if self.uiBase.MSourceUIID > 0 then
  181. ManagerContainer.LuaUIMgr:Open(self.uiBase.MSourceUIID)
  182. end
  183. end
  184. return UIActivityFortnightLoginView