| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131 |
- local UIMailBoxView = require("UIMailBox/UIMailBoxView_Generate")
- local BitUtil = require("BitUtil")
- local curMailItem
- local curMailLogicData
- local isOneKeyReward = false
- function UIMailBoxView:OnAwake(data)
- self.controller = require("UIMailBox/UIMailBoxCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIMailBoxView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REFRESH_MAILS, self, self.RefreshMails)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.READ_MAIL, self, self.ReadMail)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.REWARD_MAIL, self, self.RewardMail)
- end
- function UIMailBoxView:FillContent(data, uiBase)
- self.uiBase = uiBase
- local gameObject = self.uiBase:GetRoot()
- if gameObject ~= nil then
- self.gameObject = gameObject
- self.transform = gameObject.transform
- end
- self:InitGenerate(self.transform, data)
- self:Init()
- end
- function UIMailBoxView:Init()
- if self.controller:IsFirstOpen() then
- self.number.text.text = CommonUtil.StringConcat(0, "/100")
- self.controller:SendMailList()
- self.controller:SetFirstOpen()
- else
- self:RefreshMails(true)
- end
- end
- function UIMailBoxView:RefreshMails(refreshCount)
- if refreshCount then
- self:RefreshMailCount()
- end
- local count = ManagerContainer.DataMgr.MailData:GetMailTotalCount()
- self.empty:SetActive(count == 0)
- local mailDatas = ManagerContainer.DataMgr.MailData:GetMailDatas()
- CommonUtil.LoopGridViewEleCreateNew(self, self.mailList.loopVerticalScrollRect, self.content.verticalLayoutGroup, mailDatas, 0, nil, function (itemLua, idx)
- CommonUtil.UpdateItemPrefab(self, itemLua, clone(mailDatas[idx + 1]), self, self.OnMailSelected)
- end)
- end
- function UIMailBoxView:ReadMail()
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMail, curMailLogicData)
- --CommonUtil.UpdateItemPrefab(self, curMailItem, curMailLogicData, self, self.OnMailSelected)
- end
- function UIMailBoxView:RewardMail()
- if isOneKeyReward then
- isOneKeyReward = false
- self:RefreshMails()
- return
- end
- --CommonUtil.UpdateItemPrefab(self, curMailItem, curMailLogicData, self, self.OnMailSelected)
- end
- function UIMailBoxView:RefreshMailCount()
- local count = ManagerContainer.DataMgr.MailData:GetMailTotalCount()
- self.number.text.text = CommonUtil.StringConcat(count, "/150")
- end
- function UIMailBoxView:OnMailSelected(button, params)
- curMailItem = params[0]
- curMailLogicData = params[1]
- local readState = BitUtil.ParseMailReadState(curMailLogicData.state) == 1
- if not readState then
- self.controller:SendReadMail(curMailLogicData.id)
- else
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIMail, curMailLogicData)
- end
- end
- function UIMailBoxView:OnDeleteOpenedMails()
- self.controller:SendOneKeyDeleteMail()
- end
- function UIMailBoxView:OnOneKeyRewardMails()
- isOneKeyReward = true
- self.controller:SendOneKeyRewardMail()
- end
- function UIMailBoxView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIMailBoxView:AddUIEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
- self.uiBase:AddButtonEventListener(self.btnClose.button, function ()
- ManagerContainer.LuaUIMgr:OpenSourceUI(self)
- --self:UIClose()
- end)
- self.uiBase:AddButtonEventListener(self.btnDeleteRead.button, self, self.OnDeleteOpenedMails)
- self.uiBase:AddButtonEventListener(self.btnOnekeyReceive.button, self, self.OnOneKeyRewardMails)
- end
- function UIMailBoxView:OnHide()
- end
- function UIMailBoxView:OnShow(data)
- self.controller:SetData(data)
- self:Init()
- end
- function UIMailBoxView:OnClose()
- end
- function UIMailBoxView:OnDispose()
- curMailItem = nil
- curMailLogicData = nil
- end
- return UIMailBoxView
|