UIActivityFortnightLoginView.lua 6.5 KB

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