| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217 |
- local UIHundredDojoGuildRankView = require("UIHundredDojo/UIHundredDojoGuildRankView_Generate")
- function UIHundredDojoGuildRankView:OnAwake(data)
- self.controller = require("UIHundredDojo/UIHundredDojoGuildRankCtr"):new()
- self.controller:Init(self)
- self.controller:SetData(data)
- end
- function UIHundredDojoGuildRankView:AddEventListener()
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_CP_RANK_LIST_CHANGED, self, self.OnGuildCPRankListChanged)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_ENTER_SUCCESS, self, self.OnGuildEnterSuccess)
- ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_CREATE_SUCCESS, self, self.OnGuildCreateSuccess)
- end
- function UIHundredDojoGuildRankView: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 UIHundredDojoGuildRankView:Init()
- self.scrollView.loopGridView:InitGridView(0, function(gridView, itemIndex, row, column)
- return self:GetItemByRowColumn(gridView, itemIndex, row, column)
- end, nil)
- self.scrollView.loopGridView.ScrollRect.enabled = false
- self:RefreshListView()
- self:RefreshSelfView()
- local errorCode = self.controller:SendGuildWarCPRankReq()
- if errorCode ~= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- end
- end
- function UIHundredDojoGuildRankView:RemoveEventListener()
- ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
- end
- function UIHundredDojoGuildRankView:AddUIEventListener()
- self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
- self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
- end
- function UIHundredDojoGuildRankView:OnHide()
- end
- function UIHundredDojoGuildRankView:OnShow(data)
- self.controller:SetData(data)
- end
- function UIHundredDojoGuildRankView:OnClose()
- end
- function UIHundredDojoGuildRankView:OnDispose()
- self.scrollView.loopGridView:Dispose()
- self.controller:OnDispose()
- end
- function UIHundredDojoGuildRankView:OnPageInEnd()
- UIHundredDojoGuildRankView.super.OnPageInEnd(self)
- self.scrollView.loopGridView.ScrollRect.enabled = true
- end
- function UIHundredDojoGuildRankView:OnGuildCPRankListChanged(data)
- self.controller:SetRankDatas(data)
- self:RefreshListView()
- self:RefreshSelfView()
- end
- function UIHundredDojoGuildRankView:OnGuildEnterSuccess()
- local errorCode = self.controller:SendGuildWarCPRankReq()
- if errorCode ~= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- end
- end
- function UIHundredDojoGuildRankView:OnGuildCreateSuccess()
- local errorCode = self.controller:SendGuildWarCPRankReq()
- if errorCode ~= 0 then
- ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
- end
- end
- function UIHundredDojoGuildRankView:OnClickCloseBtn()
- self:UIClose()
- end
- function UIHundredDojoGuildRankView:OnClickGuildItem(btn, param)
- local id = param[0]
- if not id then return end
- ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildInfo, id)
- end
- function UIHundredDojoGuildRankView:GetItemByRowColumn(gridView, itemIndex, row, column)
- local rankData = self.controller:GetRankDataByItemIdx(itemIndex)
- if not rankData then return nil end
- local item = gridView:NewListViewItem('HundredDojoGuildRankItem')
- local itemLua = CommonUtil.BindGridViewItem2Lua(self, 'HundredDojoGuildRankItem', item.gameObject)
- local brief = rankData.brief
- local guildCP = rankData.cp_num or 0
- local guildRank = rankData.rank or 0
- if brief then
- local badgeResPath = nil
- if brief.guild_badge then
- local badgeCfgData = ManagerContainer.CfgMgr:GetGuildBadgeCfgById(brief.guild_badge)
- if badgeCfgData then
- badgeResPath = badgeCfgData.Pic
- end
- end
- self:RefreshGuildInfoItem(itemLua, brief.guild_id, brief.guild_name, brief.guild_level, badgeResPath, guildCP, true)
- else
- self:RefreshGuildInfoItem(itemLua)
- end
- self:RefreshGuildRankInfoItem(itemLua, guildRank)
- return item
- end
- function UIHundredDojoGuildRankView:RefreshGuildInfoItem(itemLua, guildId, guildName, guildLv, badgeResPath, guildCP, isClick)
- if not itemLua then return end
- itemLua.badge.image.enabled = false
- itemLua.badge.image.sprite = nil
- if not guildId then
- itemLua.nameTxt.text.text = ''
- itemLua.lvTxt.text.text = ''
- itemLua.guildCPTxt.text.text = ''
- itemLua.button.onClick:RemoveAllListeners()
- return
- end
- CommonUtil.LoadIcon(self, badgeResPath, function(sprite)
- if sprite then
- itemLua.badge.image.enabled = true
- itemLua.badge.image.sprite = sprite
- end
- end, itemLua, 'BadgeIcon')
- itemLua.nameTxt.text.text = tostring(guildName)
- itemLua.lvTxt.text.text = string.formatbykey('Lv') .. tostring(guildLv)
- itemLua.guildCPTxt.text.text = tostring(guildCP)
- if isClick then
- self.uiBase:AddButtonUniqueEventListener(itemLua.button, self, self.OnClickGuildItem, guildId)
- end
- end
- function UIHundredDojoGuildRankView:RefreshGuildRankInfoItem(itemLua, rank)
- if not itemLua then return end
- if not rank or rank <= 0 then
- itemLua.rank1:SetActive(false)
- itemLua.rank2:SetActive(false)
- itemLua.rank3:SetActive(false)
- itemLua.rank4:SetActive(false)
- itemLua.rankTxt.text.text = string.formatbykey('NoRank')
- itemLua.rankTxt:SetActive(true)
- return
- end
- itemLua.rank1:SetActive(rank == 1)
- itemLua.rank2:SetActive(rank == 2)
- itemLua.rank3:SetActive(rank == 3)
- itemLua.rank4:SetActive(rank == 4)
- if rank > 4 then
- itemLua.rankTxt.text.text = tostring(rank)
- itemLua.rankTxt:SetActive(true)
- else
- itemLua.rankTxt:SetActive(false)
- end
- end
- function UIHundredDojoGuildRankView:RefreshListView()
- local length = self.controller:GetRankListLength()
- if length <= 0 then
- self.noGuildList:SetActive(true)
- self.scrollView:SetActive(false)
- return
- end
- self.noGuildList:SetActive(false)
- self.scrollView:SetActive(true)
- self.scrollView.loopGridView:RefreshListByIndex(length, 0)
- end
- function UIHundredDojoGuildRankView:RefreshSelfView()
- if not self.controller:HasGuild() then
- self.noGuild:SetActive(true)
- self.selfRank:SetActive(false)
- return
- end
- local guildData = self.controller:GetCurGuildData()
- if not guildData then
- self.noGuild:SetActive(true)
- self.selfRank:SetActive(false)
- return
- end
- self.noGuild:SetActive(false)
- self.selfRank:SetActive(true)
- local brief = guildData:GetBriefData()
- local guildCP, guildRank = self.controller:GetSelfGuildCPAndRank()
- if brief then
- self:RefreshGuildInfoItem(self.selfRank, brief.id, brief.name, brief.level, brief.badgeResPath, guildCP, false)
- else
- self:RefreshGuildInfoItem(self.selfRank)
- end
- self:RefreshGuildRankInfoItem(self.selfRank, guildRank)
- end
- return UIHundredDojoGuildRankView
|