UIActivityFortnightLoginView.lua 7.4 KB

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