143 lines
4.2 KiB
Lua
143 lines
4.2 KiB
Lua
|
local XUiPanelHall = XClass(nil, "XUiPanelHall")
|
|||
|
|
|||
|
local XUiGridArenaTeam = require("XUi/XUiArenaTeam/XUiArenaTeamCommon/XUiGridArenaTeam")
|
|||
|
local XUiGridArenaTeamSingle = require("XUi/XUiArenaTeam/XUiArenaTeamCommon/XUiGridArenaTeamSingle")
|
|||
|
|
|||
|
local ARENA_HALL_TAB = {
|
|||
|
TEAM = 1,
|
|||
|
SINGLE = 2,
|
|||
|
}
|
|||
|
|
|||
|
function XUiPanelHall:Ctor(ui, rootUi)
|
|||
|
self.GameObject = ui.gameObject
|
|||
|
self.Transform = ui.transform
|
|||
|
XTool.InitUiObject(self)
|
|||
|
self:AutoAddListener()
|
|||
|
|
|||
|
self.GridTeam.gameObject:SetActive(false)
|
|||
|
self.GridTeamSingle.gameObject:SetActive(false)
|
|||
|
|
|||
|
self.RootUi = rootUi
|
|||
|
self.IsShow = false
|
|||
|
self.GameObject:SetActive(false)
|
|||
|
|
|||
|
self.DynamicTeamTable = XDynamicTableNormal.New(self.SViewTeam.transform)
|
|||
|
self.DynamicTeamTable:SetProxy(XUiGridArenaTeam)
|
|||
|
self.DynamicTeamTable:SetDelegate(self)
|
|||
|
|
|||
|
self.DynamicSingleTable = XDynamicTableNormal.New(self.SViewSingle.transform)
|
|||
|
self.DynamicSingleTable:SetProxy(XUiGridArenaTeamSingle)
|
|||
|
self.DynamicSingleTable:SetDelegate(self)
|
|||
|
|
|||
|
self.BtnList = {}
|
|||
|
table.insert(self.BtnList, self.BtnTabTeam)
|
|||
|
table.insert(self.BtnList, self.BtnTabSingle)
|
|||
|
|
|||
|
self.TypeTabGroup:Init(self.BtnList, function(index)
|
|||
|
self:RefreshSelectedPanel(index)
|
|||
|
end)
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:RegisterClickEvent(uiNode, func)
|
|||
|
if func == nil then
|
|||
|
XLog.Error("XUiPanelHall:RegisterClickEvent函数参数错误:参数func不能为空")
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
if type(func) ~= "function" then
|
|||
|
XLog.Error("XUiPanelHall:RegisterClickEvent函数错误, 参数func需要是function类型, func的类型是" .. type(func))
|
|||
|
end
|
|||
|
|
|||
|
local listener = function(...)
|
|||
|
func(self, ...)
|
|||
|
end
|
|||
|
|
|||
|
CsXUiHelper.RegisterClickEvent(uiNode, listener)
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:AutoAddListener()
|
|||
|
self:RegisterClickEvent(self.BtnRefresh, self.OnBtnRefreshClick)
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:OnBtnRefreshClick()
|
|||
|
self:Refresh()
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:Show()
|
|||
|
if self.IsShow then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
self.IsShow = true
|
|||
|
self.GameObject:SetActive(true)
|
|||
|
self.RootUi:PlayAnimation("HallQieHuan")
|
|||
|
self.TypeTabGroup:SelectIndex(ARENA_HALL_TAB.TEAM)
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:Hide()
|
|||
|
if not self.IsShow then
|
|||
|
return
|
|||
|
end
|
|||
|
|
|||
|
self.IsShow = false
|
|||
|
self.GameObject:SetActive(false)
|
|||
|
end
|
|||
|
|
|||
|
--动态列表事件
|
|||
|
function XUiPanelHall:OnDynamicTableEvent(event, index, grid)
|
|||
|
if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then
|
|||
|
local data = self.DataList[index]
|
|||
|
grid:ResetData(data, self.RootUi)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:Refresh()
|
|||
|
local func = function()
|
|||
|
self.TxtNoPlayer.gameObject:SetActive(false)
|
|||
|
self.TxtNoTeam.gameObject:SetActive(false)
|
|||
|
|
|||
|
if self.SelectedIndex == ARENA_HALL_TAB.TEAM then
|
|||
|
self.DataList = XDataCenter.ArenaManager.GetHallTeamList()
|
|||
|
|
|||
|
self.DynamicTeamTable:SetTotalCount(#self.DataList)
|
|||
|
if #self.DataList > 0 then
|
|||
|
self.TxtNoTeam.gameObject:SetActive(false)
|
|||
|
self.DynamicTeamTable:ReloadDataASync(1)
|
|||
|
else
|
|||
|
self.TxtNoTeam.gameObject:SetActive(true)
|
|||
|
self.DynamicTeamTable:ReloadDataASync()
|
|||
|
end
|
|||
|
else
|
|||
|
self.DataList = XDataCenter.ArenaManager.GetHallPlayerList()
|
|||
|
|
|||
|
self.DynamicSingleTable:SetTotalCount(#self.DataList)
|
|||
|
if #self.DataList > 0 then
|
|||
|
self.TxtNoPlayer.gameObject:SetActive(false)
|
|||
|
self.DynamicSingleTable:ReloadDataASync(1)
|
|||
|
else
|
|||
|
self.TxtNoPlayer.gameObject:SetActive(true)
|
|||
|
self.DynamicSingleTable:ReloadDataASync()
|
|||
|
end
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
if self.SelectedIndex == ARENA_HALL_TAB.TEAM then
|
|||
|
XDataCenter.ArenaManager.RequestHallTeamList(func)
|
|||
|
else
|
|||
|
XDataCenter.ArenaManager.RequestHallPlayerList(func)
|
|||
|
end
|
|||
|
end
|
|||
|
|
|||
|
function XUiPanelHall:RefreshSelectedPanel(index)
|
|||
|
self.SelectedIndex = index
|
|||
|
if index == ARENA_HALL_TAB.TEAM then
|
|||
|
self.SViewTeam.gameObject:SetActive(true)
|
|||
|
self.SViewSingle.gameObject:SetActive(false)
|
|||
|
else
|
|||
|
self.SViewTeam.gameObject:SetActive(false)
|
|||
|
self.SViewSingle.gameObject:SetActive(true)
|
|||
|
end
|
|||
|
self:Refresh()
|
|||
|
end
|
|||
|
|
|||
|
return XUiPanelHall
|