-- <*
|
|
-- @Author: Saber
|
|
-- @Description: 本国团战对战信息界面
|
|
-- *>
|
|
GuildCSGRFightInfoView = GuildCSGRFightInfoView or BaseClass(BaseView)
|
|
local GuildCSGRFightInfoView = GuildCSGRFightInfoView
|
|
|
|
function GuildCSGRFightInfoView:__init()
|
|
self.base_file = "guildCSGR"
|
|
self.layout_file = "GuildCSGRFightInfoView"
|
|
self.layer_name = "Activity"
|
|
self.destroy_imm = true
|
|
self.use_background = true --全屏界面默认使用这个参数,非全屏界面自行设置
|
|
self.change_scene_close = true --是否切换场景时关闭(弹出界面使用)
|
|
self.fight_info_list = {} -- 对战数据列表
|
|
self.cur_page = 1
|
|
self.total_page = 1
|
|
self.sroll_end_req_evt = false -- 滑动到底时请求协议锁
|
|
self.model = GuildModel:getInstance()
|
|
|
|
self.load_callback = function ()
|
|
self:LoadSuccess()
|
|
self:AddEvent()
|
|
-- 打开界面时请求第一页的数据
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41001, GuildModel.CSGRRankType.All, GuildModel.FightInfoPageSize, self.cur_page)
|
|
end
|
|
self.open_callback = function ( )
|
|
self:UpdateView()
|
|
end
|
|
self.destroy_callback = function ( )
|
|
self:DestroySuccess()
|
|
end
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:Open( )
|
|
BaseView.Open(self)
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:LoadSuccess()
|
|
local nodes = {
|
|
"content",
|
|
"content/item_scroll", "content/item_scroll/Viewport/item_con",
|
|
"content/tips:tmp",
|
|
}
|
|
self:GetChildren(nodes)
|
|
local function close_callback()
|
|
self:Close()
|
|
end
|
|
self.tabWindowComponent = UITabWindow.New(self.transform, {}, nil, close_callback, self.background_wnd, self.content, UITabWindow.SizeSmallNoTab, nil, nil, false)
|
|
self.tabWindowComponent:SetTitleText("对战信息")
|
|
self.tabWindowComponent:SetBackgroundRes("rw_raward_bg_nosideline")
|
|
|
|
self.tips_tmp.text = "根据<color=#fdffc2>本服团战积分排行</color>依次划分战场"
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:AddEvent()
|
|
local function update_fightinfo_data(type, vo)
|
|
if type == GuildModel.CSGRRankType.All then
|
|
self:UpdateFightInfoData(vo)
|
|
end
|
|
end
|
|
self:BindEvent(self.model, GuildModel.UPDATE_CSGR_FIGHTINFO, update_fightinfo_data)
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:UpdateView()
|
|
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:UpdateFightInfoData(vo)
|
|
if not vo then return end
|
|
self.total_page = vo.total_page
|
|
self.cur_page = vo.page_num
|
|
if vo.arena_list and #vo.arena_list > 0 then
|
|
for k, data in pairs(vo.arena_list) do
|
|
self.fight_info_list[#self.fight_info_list+1] = data
|
|
end
|
|
self.sroll_end_req_evt = false
|
|
end
|
|
self:UpdateFightInfoItem()
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:UpdateFightInfoItem( )
|
|
self.guild_item_creator = self.guild_item_creator or self:AddUIComponent(UI.ItemListCreator)
|
|
local info = {
|
|
data_list = self.fight_info_list,
|
|
item_con = self.item_con,
|
|
scroll_view = self.item_scroll,
|
|
item_class = GuildCSGRFightInfoItem,
|
|
item_height = 196,
|
|
create_frequency = 0.01,
|
|
alignment = UnityEngine.TextAnchor.UpperLeft,
|
|
on_update_item = function(item, i, v)
|
|
if i == #self.fight_info_list - 1 and not self.sroll_end_req_evt and self.cur_page < self.total_page then
|
|
-- 调整标志量,请求协议
|
|
self.sroll_end_req_evt = true
|
|
self.model:Fire(GuildModel.REQUEST_CCMD_EVENT, 41001, GuildModel.CSGRRankType.All, GuildModel.FightInfoPageSize, self.cur_page+1)
|
|
end
|
|
item:SetData(v)
|
|
end,
|
|
}
|
|
self.guild_item_creator:UpdateItems(info)
|
|
end
|
|
|
|
function GuildCSGRFightInfoView:DestroySuccess( )
|
|
if self.tabWindowComponent then
|
|
self.tabWindowComponent:DeleteMe()
|
|
self.tabWindowComponent = nil
|
|
end
|
|
end
|