UIIdolGiftTipsView.lua 7.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213
  1. local UIIdolGiftTipsView = require("UISeason/UIIdolGiftTipsView_Generate")
  2. local RankList = {}
  3. local LoadStatusLoopListCtr = require('Common/LoadStatusLoopListCtr')
  4. function UIIdolGiftTipsView:OnAwake(data)
  5. self.controller = require("UISeason/UIIdolGiftTipsCtr"):new()
  6. self.controller:Init(self)
  7. self.controller:SetData(data)
  8. end
  9. function UIIdolGiftTipsView:InitGrid()
  10. if self.loadStatusLoopListCtr then
  11. self.loadStatusLoopListCtr:Dispose()
  12. self.loadStatusLoopListCtr = nil
  13. end
  14. self.loadStatusLoopListCtr = LoadStatusLoopListCtr:new(self, self.rankScroll.loopListView, 0, 50,
  15. false, nil, nil,
  16. true, 'LoadingItem', Enum.ListLoadingStatus.WaitLoad,
  17. self.GetItemByIndex, nil, self.OnBeginLoad)
  18. self.rankScroll.scrollRect.enabled = false
  19. end
  20. function UIIdolGiftTipsView:OnPageInEnd()
  21. self.super.OnPageInEnd(self)
  22. self.rankScroll.scrollRect.enabled = true
  23. end
  24. function UIIdolGiftTipsView:OnBeginLoad(isLeft)
  25. ManagerContainer.DataMgr.IdolData:SendGetGiftRankInfoReq()
  26. end
  27. function UIIdolGiftTipsView:GetItemByIndex(gridView, idx, itemIndex)
  28. local item = nil
  29. local itemLua = nil
  30. local showData = RankList[itemIndex + 1]
  31. item = gridView:NewListViewItem('UIIdolGiftItem')
  32. itemLua = CommonUtil.BindGridViewItem2Lua(self, 'UIIdolGiftItem', item.gameObject)
  33. CommonUtil.UpdateItemPrefab(self, itemLua, showData,nil,self, self.OnClickSupportBtn)
  34. return item
  35. end
  36. function UIIdolGiftTipsView:RefreshPlayerInfo()
  37. RankList = ManagerContainer.DataMgr.IdolData:GetIdolGiftInfos()
  38. local maxLength = ManagerContainer.DataMgr.IdolData:GetGiftInfoLimit()
  39. local dataLength = ManagerContainer.DataMgr.IdolData:GetGiftInfosLength()
  40. -- self.noRankList:SetActive(RankList and #RankList == 0)
  41. self.loadStatusLoopListCtr:OnAllLoaded()
  42. self.loadStatusLoopListCtr:RefreshMaxDataLength(maxLength)
  43. self.loadStatusLoopListCtr:RefreshDataLength(dataLength)
  44. end
  45. function UIIdolGiftTipsView:AddEventListener()
  46. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  47. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_IDOL_FANS_PLAYER_RANK_INFO, self, self.RefreshPlayerInfo)
  48. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_FASN_REWARD_INFO, self, self.RefreshPlayerInfo)
  49. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_VOTE_VIEW_INFO, self, self.RefreshPlayerInfo)
  50. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_SUPPORTTIPSVIEW, self, self.OnOpenSupportTips)
  51. end
  52. function UIIdolGiftTipsView:FillContent(data, uiBase)
  53. self.uiBase = uiBase
  54. local gameObject = self.uiBase:GetRoot()
  55. if gameObject ~= nil then
  56. self.gameObject = gameObject
  57. self.transform = gameObject.transform
  58. end
  59. self:InitGenerate(self.transform, data)
  60. self:Init()
  61. end
  62. function UIIdolGiftTipsView:Init()
  63. self:InitGrid()
  64. ManagerContainer.DataMgr.IdolData:ClearVoteInfoUid()
  65. ManagerContainer.DataMgr.IdolData:SendGetGiftRankInfoReq()
  66. end
  67. function UIIdolGiftTipsView:OnOpenSupportTips(data)
  68. local voteInfoUid = ManagerContainer.DataMgr.IdolData:GetVoteInfoUid()
  69. if not voteInfoUid then
  70. return
  71. end
  72. ManagerContainer.DataMgr.IdolData:ClearVoteInfoUid()
  73. local cfgId = 238
  74. local maxNum = CommonUtil.GetOwnResCountByItemId(cfgId)
  75. local logicData = {rank = data.rank,score = data.score, uid = data.uid,enterType = 2}
  76. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIIdolSupportTips,{cfgId,self,self.OnSureSupport,logicData,maxNum})
  77. end
  78. function UIIdolGiftTipsView:OnClickSupportBtn(btn,param)
  79. if not ManagerContainer.DataMgr.CompetitionData:CanOpenSeasonUI() then
  80. return
  81. end
  82. local logicData = param[0]
  83. local uid = logicData.uid
  84. local cfgId = 238 --荧光棒
  85. local selfId = ManagerContainer.DataMgr.UserData:GetUserId()
  86. local maxNum = CommonUtil.GetOwnResCountByItemId(238)
  87. if uid == selfId then
  88. local selfTicket = ManagerContainer.DataMgr.CompetitionData:GetScore()
  89. local selfRank = ManagerContainer.DataMgr.CompetitionData:GetRank()
  90. local data = {rank = selfRank,score = selfTicket, uid = ManagerContainer.DataMgr.UserData:GetUserId(),enterType = 1}
  91. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIIdolSupportTips,{cfgId,self,self.OnSureSupport,data,maxNum})
  92. else
  93. ManagerContainer.DataMgr.IdolData:SendGetPlayerVoteRankReq(uid)
  94. end
  95. end
  96. function UIIdolGiftTipsView:OnSureSupport(logicData) --确认投票
  97. if not ManagerContainer.DataMgr.CompetitionData:CanOpenSeasonUI() then
  98. return
  99. end
  100. local IsOver = ManagerContainer.DataMgr.CompetitionData:IsOveerCurSeason()
  101. if IsOver then
  102. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("LabelOver")
  103. return
  104. end
  105. local num = logicData[1]
  106. local uid = logicData[2]
  107. ManagerContainer.NetManager:SendMessage(ProtoMsgId.CS_COMPETITION_ON_VOTE_REQ, { ticket_count = num,uid = uid})
  108. end
  109. function UIIdolGiftTipsView:OnClickOtherHeadBtn(button,params)
  110. local uid = params[0]
  111. local selfUid = ManagerContainer.DataMgr.UserData:GetUserId()
  112. if selfUid == uid then
  113. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("ChatError1")
  114. return
  115. end
  116. ManagerContainer.LuaUIMgr:OpenRoleMessagePanel(uid)
  117. end
  118. function UIIdolGiftTipsView:RemoveEventListener()
  119. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  120. end
  121. function UIIdolGiftTipsView:OnClickBoxItem(btn,param)
  122. if not ManagerContainer.DataMgr.CompetitionData:CanOpenSeasonUI() then
  123. return
  124. end
  125. local IsOver = ManagerContainer.DataMgr.CompetitionData:IsOveerCurSeason()
  126. if IsOver then
  127. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("LabelOver")
  128. return
  129. end
  130. local logicData = param[0]
  131. local boxId = logicData.boxId
  132. local loveVal = logicData.loveVal
  133. -- local loveGiftItem = logicData.obj
  134. local uid = logicData.uid
  135. local rewardState = logicData.rewardState
  136. local rewards = {}
  137. local BoxData = ManagerContainer.CfgMgr:GetAidouluCfg()
  138. local tab = BoxData[boxId].Rewards
  139. for i = 1, #tab do
  140. table.insert(rewards,{tab[i][1],tab[i][2]})
  141. end
  142. if logicData.boxNum >= boxId then
  143. if logicData.ticket < loveVal then
  144. local selfUid = ManagerContainer.DataMgr.UserData:GetUserId()
  145. if selfUid == uid then
  146. ManagerContainer.DataMgr.IdolData:SendFansGetRewardReq(uid)
  147. else
  148. ManagerContainer.LuaUIMgr:ShowMinRewardTips(rewards)
  149. end
  150. else
  151. if rewardState[boxId] then
  152. return
  153. else
  154. ManagerContainer.DataMgr.IdolData:SendFansGetRewardReq(uid)
  155. end
  156. end
  157. else
  158. -- loveGiftItem.btnBox.box2:SetActive(true)
  159. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay("IdolGiftUnlockTips")
  160. ManagerContainer.LuaUIMgr:ShowMinRewardTips(rewards)
  161. end
  162. end
  163. function UIIdolGiftTipsView:AddUIEventListener()
  164. self.uiBase:AddButtonEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
  165. self.uiBase:AddButtonEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
  166. end
  167. function UIIdolGiftTipsView:OnClickCloseBtn()
  168. self:UIClose()
  169. end
  170. function UIIdolGiftTipsView:OnHide()
  171. end
  172. function UIIdolGiftTipsView:OnShow(data)
  173. ManagerContainer.DataMgr.IdolData:ClearVoteInfoUid()
  174. self.controller:SetData(data)
  175. end
  176. function UIIdolGiftTipsView:OnClose()
  177. ManagerContainer.DataMgr.IdolData:ClearVoteInfoUid()
  178. end
  179. function UIIdolGiftTipsView:OnDispose()
  180. self.controller:OnDispose()
  181. if self.loadStatusLoopListCtr then
  182. self.loadStatusLoopListCtr:Dispose()
  183. self.loadStatusLoopListCtr = nil
  184. end
  185. ManagerContainer.DataMgr.IdolData:ClearIdolFansRankInfos()
  186. end
  187. return UIIdolGiftTipsView