UISignDailyView.lua 3.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138
  1. local UISignDailyView = require("UISign/UISignDailyView_Generate")
  2. function UISignDailyView:OnAwake(data)
  3. self.controller = require("UISign/UISignDailyCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UISignDailyView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.SIGN_UP_SUCCESS, self, self.Refresh)
  10. end
  11. function UISignDailyView: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 UISignDailyView:Init()
  22. self:InitGrid()
  23. self:Refresh()
  24. if ManagerContainer.DataMgr.SignData:CanTodaySign() then
  25. self.delayTimer = FrameTimer.New(function()
  26. self:AutoSignUp()
  27. end, 1)
  28. self.delayTimer:Start()
  29. end
  30. end
  31. function UISignDailyView:InitGrid()
  32. self.scrollView.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
  33. return self:GetItemByRowColumn(gridView, itemIndex, row, column)
  34. end, nil)
  35. end
  36. function UISignDailyView:Refresh(resetPos)
  37. self.controller:RefreshShowDatas()
  38. local loopGridView = self.scrollView.loopGridView
  39. local length = self.controller:GetShowDataLength()
  40. if resetPos then
  41. loopGridView:RefreshListByIndex(length, 0)
  42. else
  43. loopGridView:RefreshListByIndex(length)
  44. end
  45. end
  46. function UISignDailyView:GetItemByRowColumn(gridView, itemIndex, row, column)
  47. local length = self.controller:GetShowDataLength()
  48. if (itemIndex < 0 or itemIndex >= length) then
  49. return nil
  50. end
  51. local showData = self.controller:GetShowData(itemIndex)
  52. local canSignToday = self.controller:GetCanSignToday()
  53. local item = gridView:NewListViewItem("SignRewardItem")
  54. item.gameObject.name = itemIndex
  55. local itemlua = CommonUtil.BindGridViewItem2Lua(self, "SignRewardItem", item.gameObject)
  56. local data = {idx = itemIndex + 1, cfgData = showData, canSignToday = canSignToday}
  57. CommonUtil.UpdateItemPrefab(self, itemlua, data, Enum.ItemIEnterType.Bag, self, self.OnItemClick)
  58. return item
  59. end
  60. function UISignDailyView:OnItemClick(button, params)
  61. local cfgData = params[0]
  62. local canSignDay = ManagerContainer.DataMgr.SignData:GetCanSignDay()
  63. local canSignToday = self.controller:GetCanSignToday()
  64. if not canSignToday then
  65. --今日已经签到过
  66. --ManagerContainer.LuaUIMgr:ShowMinRewardTips(cfgData.SignInReward)
  67. local data = {cfgId = cfgData.SignInReward[1][1], num = cfgData.SignInReward[1][2]}
  68. ManagerContainer.LuaUIMgr:OpenTips(data)
  69. else
  70. if cfgData.ID == canSignDay then
  71. self.controller:SendSignUp()
  72. else
  73. --ManagerContainer.LuaUIMgr:ShowMinRewardTips(cfgData.SignInReward)
  74. local data = {cfgId = cfgData.SignInReward[1][1], num = cfgData.SignInReward[1][2]}
  75. ManagerContainer.LuaUIMgr:OpenTips(data)
  76. end
  77. end
  78. end
  79. function UISignDailyView:AutoSignUp()
  80. self.controller:SendSignUp()
  81. end
  82. function UISignDailyView:RemoveEventListener()
  83. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  84. end
  85. function UISignDailyView:OnClickPlayRuleBtn()
  86. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIPlayRule, {'PlayExplainTitle', "SignInQA"})
  87. end
  88. function UISignDailyView:OnCloseClick()
  89. self:UIClose()
  90. end
  91. function UISignDailyView:AddUIEventListener()
  92. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnCloseClick)
  93. --self.uiBase:AddButtonEventListener(self.btnPlayRule.button, self, self.OnClickPlayRuleBtn)
  94. end
  95. function UISignDailyView:OnHide()
  96. end
  97. function UISignDailyView:OnShow(data)
  98. self.controller:SetData(data)
  99. end
  100. function UISignDailyView:OnClose()
  101. if self.delayTimer then
  102. self.delayTimer:Stop()
  103. self.delayTimer = nil
  104. end
  105. self.scrollView.loopGridView:Dispose()
  106. end
  107. function UISignDailyView:OnDispose()
  108. self.controller:OnDispose()
  109. end
  110. return UISignDailyView