UIActivitySignDailyView.lua 4.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136
  1. local UIActivitySignDailyView = require("UIActivity/UIActivitySignDailyView_Generate")
  2. function UIActivitySignDailyView:OnAwake(data)
  3. self.controller = require("UIActivity/UIActivitySignDailyCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIActivitySignDailyView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.ACTIVITY_SIGN_SUCCESS, self, self.Refresh)
  10. end
  11. function UIActivitySignDailyView:FillContent(data, uiBase)
  12. self.uiBase = uiBase
  13. local gameObject = self.uiBase:GetRoot()
  14. if gameObject ~= nil then
  15. self.gameObject = gameObject
  16. self.transform = gameObject.transform
  17. end
  18. self:InitGenerate(self.transform, data)
  19. self:Init()
  20. end
  21. function UIActivitySignDailyView:Init()
  22. self:InitGrid()
  23. self:Refresh()
  24. end
  25. function UIActivitySignDailyView:OnPageInEnd()
  26. self.super.OnPageInEnd(self)
  27. local actId = self.controller:GetActId()
  28. local cfgData = ManagerContainer.CfgMgr:GetActivityCfg(actId)
  29. if cfgData and cfgData.Name then
  30. self.titleTxt.text.text = cfgData.Name
  31. end
  32. self.dscTxt.text.text = I18N.SetLanguageValue(self.controller:GetRuleKey())
  33. end
  34. function UIActivitySignDailyView:InitGrid()
  35. self.scrollView.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
  36. return self:GetItemByRowColumn(gridView, itemIndex, row, column)
  37. end, nil)
  38. end
  39. function UIActivitySignDailyView:Refresh(resetPos)
  40. self.controller:RefreshShowDatas()
  41. local loopGridView = self.scrollView.loopGridView
  42. local length = self.controller:GetShowDataLength()
  43. if resetPos then
  44. loopGridView:RefreshListByIndex(length, 0)
  45. else
  46. loopGridView:RefreshListByIndex(length)
  47. end
  48. end
  49. function UIActivitySignDailyView:GetItemByRowColumn(gridView, itemIndex, row, column)
  50. local length = self.controller:GetShowDataLength()
  51. if (itemIndex < 0 or itemIndex >= length) then
  52. return nil
  53. end
  54. local showData = self.controller:GetShowData(itemIndex)
  55. local canSignToday = self.controller:GetCanSignToday()
  56. local item = gridView:NewListViewItem("SignRewardItem")
  57. item.gameObject.name = itemIndex
  58. local itemlua = CommonUtil.BindGridViewItem2Lua(self, "SignRewardItem", item.gameObject)
  59. local data = {idx = itemIndex + 1, cfgData = showData, canSignToday = canSignToday,enterType = 1,signDays = self.controller:GetSignDays()}
  60. CommonUtil.UpdateItemPrefab(self, itemlua, data, Enum.ItemIEnterType.Bag, self, self.OnItemClick)
  61. return item
  62. end
  63. function UIActivitySignDailyView:OnItemClick(button, params)
  64. local cfgData = params[0]
  65. local canSignDay =self.controller:GetSignDays()
  66. local canSignToday = self.controller:GetCanSignToday()
  67. if not canSignToday then
  68. --今日已经签到过
  69. --ManagerContainer.LuaUIMgr:ShowMinRewardTips(cfgData.SignInReward)
  70. local data = {cfgId = cfgData.SignInReward[1][1], num = cfgData.SignInReward[1][2]}
  71. ManagerContainer.LuaUIMgr:OpenTips(data)
  72. else
  73. if cfgData.ID == canSignDay + 1 then
  74. self.controller:SendSignUp()
  75. else
  76. --ManagerContainer.LuaUIMgr:ShowMinRewardTips(cfgData.SignInReward)
  77. local data = {cfgId = cfgData.SignInReward[1][1], num = cfgData.SignInReward[1][2]}
  78. ManagerContainer.LuaUIMgr:OpenTips(data)
  79. end
  80. end
  81. end
  82. function UIActivitySignDailyView:RemoveEventListener()
  83. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  84. end
  85. function UIActivitySignDailyView:OnClickPlayRuleBtn()
  86. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayRule, {'PlayExplainTitle', "SignInQA"})
  87. end
  88. function UIActivitySignDailyView:OnCloseClick()
  89. ManagerContainer.LuaUIMgr:ClosePage(self.uiBase.PageId)
  90. if self.uiBase.MSourceUIID > 0 then
  91. ManagerContainer.LuaUIMgr:Open(self.uiBase.MSourceUIID)
  92. end
  93. end
  94. function UIActivitySignDailyView:AddUIEventListener()
  95. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseClick)
  96. --self.uiBase:AddButtonEventListener(self.btnPlayRule.button, self, self.OnClickPlayRuleBtn)
  97. end
  98. function UIActivitySignDailyView:OnHide()
  99. end
  100. function UIActivitySignDailyView:OnShow(data)
  101. self.controller:SetData(data)
  102. end
  103. function UIActivitySignDailyView:OnClose()
  104. self.scrollView.loopGridView:Dispose()
  105. end
  106. function UIActivitySignDailyView:OnDispose()
  107. self.controller:OnDispose()
  108. end
  109. return UIActivitySignDailyView