-- <* -- @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 = "根据本服团战积分排行依次划分战场" 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