local XUiGuildViewVistorInformation = XClass(nil, "XUiGuildViewVistorInformation") local XUiGuildVistorInfo = require("XUi/XUiGuild/XUiChildView/XUiGuildVistorInfo") local XUiGridChannelVistorItem = require("XUi/XUiGuild/XUiChildItem/XUiGridChannelVistorItem") function XUiGuildViewVistorInformation:Ctor(ui, uiRoot) self.GameObject = ui.gameObject self.Transform = ui.transform self.UiRoot = uiRoot XTool.InitUiObject(self) self:InitChildView() end function XUiGuildViewVistorInformation:OnEnable() self.GameObject:SetActiveEx(true) self.UiGuildVistorInfo:OnEnable() self:UpdateGuildNews() self:OnRefresh() end function XUiGuildViewVistorInformation:OnDisable() self.GameObject:SetActiveEx(false) end function XUiGuildViewVistorInformation:InitChildView() self.UiGuildVistorInfo = XUiGuildVistorInfo.New(self.PanelInformation, self.UiRoot) self:InitChannelView() end -- 公会礼包 function XUiGuildViewVistorInformation:UpdateGuildGift() self.CurguildId = XDataCenter.GuildManager.GetGuildId() local info = XDataCenter.GuildManager.GetVistorGuildDetailsById(self.CurguildId) if info then local giftLevelGot = info.GiftGuildGot local giftContribute = info.GiftContribute local giftGuildLevel = info.GiftGuildLevel local giftLevel = giftLevelGot + 1 local giftData = XGuildConfig.GetGuildGiftByGuildLevelAndGiftLevel(giftGuildLevel, giftLevel) if not giftData then self.ImgProgress.fillAmount = 1 giftLevel = giftLevel - 1 giftData = XGuildConfig.GetGuildGiftByGuildLevelAndGiftLevel(giftGuildLevel, giftLevel) self.TextProgressValue.text = string.format("%d/%d", giftData.GiftContribute, giftData.GiftContribute) else self.ImgProgress.fillAmount = giftContribute / giftData.GiftContribute self.TextProgressValue.text = string.format("%d/%d", giftContribute, giftData.GiftContribute) end self.TextNumber.text = giftLevel self.RImgActiveBox:SetRawImage(giftData.GiftIcon) end end function XUiGuildViewVistorInformation:InitChannelView() if not self.DynamicChannelTable then self.DynamicChannelTable = XDynamicTableIrregular.New(self.ScrollChannel) self.DynamicChannelTable:SetProxy("XUiGridChannelVistorItem", XUiGridChannelVistorItem, self.GridChannelItem.gameObject) self.DynamicChannelTable:SetDelegate(self) end end function XUiGuildViewVistorInformation:OnRefresh() self.CurguildId = XDataCenter.GuildManager.GetGuildId() local flag = XDataCenter.GuildManager.IsHaveVistorGuildDetailsById(self.CurguildId) if flag then self.UiGuildVistorInfo:OnRefresh() self:UpdateGuildGift() else XDataCenter.GuildManager.GetVistorGuildDetailsReq(self.CurguildId,function() self.UiGuildVistorInfo:OnRefresh() self:UpdateGuildGift() end) end end -- 公会频道 function XUiGuildViewVistorInformation:UpdateGuildNews() local chatList = XDataCenter.ChatManager.GetGuildChatList() self.GuildNewsList = {} for i = 1, XGuildConfig.GuildNewsMaxCount do if chatList[i] then table.insert(self.GuildNewsList, 1, chatList[i]) end end self.DynamicChannelTable:SetDataSource(self.GuildNewsList) self.DynamicChannelTable:ReloadDataASync() self.ScrollChannel.verticalNormalizedPosition = 0 end function XUiGuildViewVistorInformation:OnDynamicTableEvent(event, index, grid) if event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_INIT then grid:Init(self.UiRoot) elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_ATINDEX then local data = self.GuildNewsList[index] if not data then return end grid:OnRefresh(data) -- elseif event == DYNAMIC_DELEGATE_EVENT.DYNAMIC_GRID_TOUCHED then end end function XUiGuildViewVistorInformation:GetProxyType() return "XUiGridChannelVistorItem" end return XUiGuildViewVistorInformation