GuildEventTabItem = GuildEventTabItem or BaseClass(BaseItem) local GuildEventTabItem = GuildEventTabItem function GuildEventTabItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "guild" self.layout_file = "GuildEventTabItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.is_selected = false self.model = GuildModel:getInstance() self:Load() end function GuildEventTabItem:Load_callback() self.nodes = { "bg:obj:img", "selected:obj", "reddot:obj", "time:tmp", "closed_flag:obj", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function GuildEventTabItem:AddEvents( ) local function click_event(target) if target == self.bg_obj then if self.call_back and self.data then self.call_back(self.data, self.index) end end end AddClickEvent(self.bg_obj, click_event, LuaSoundManager.SOUND_UI.SWITCH) local function update_tab_red() self:UpdateTabRed() end self:BindEvent(self.model, GuildModel.UPDATE_RED_DOT_BY_TYPE, update_tab_red) end function GuildEventTabItem:UpdateView( ) --加载背景图 local tab_res = GuildModel.EventTabRes[self.data.module_id .. "@" .. self.data.module_sub] if self.data.module_id == 406 then tab_res = GuildModel.EventTabRes[self.data.module_id .. "@" .. self.data.ac_sub] end lua_resM:setImageSprite(self,self.bg_img,"guildExtra1_asset",tab_res) -- -- 活动名称 -- self.event_name_txt.text = self.data.name -- -- 拆分活动时间字串,获得活动开始时间 -- local time_info = Split(self.data.time_str, "~") -- self.time_tmp.text = time_info[1].."进行" self.is_selected = self.model.select_tab_index == self.index self:SetSelected(self.is_selected) self:UpdateTabRed() self:SetGray(self.index < self.activity_index) end function GuildEventTabItem:UpdateTabRed( ) if not self.data then return end local key = self.data.module_id .. "@" .. self.data.module_sub if self.data.module_id == 406 then key = self.data.module_id .. "@" .. self.data.ac_sub end if self.data.module_id == 408 then--采集活动 local s_h = Split((Split(self.data.time_str, "~")[1]),":")[1] local s_m = Split((Split(self.data.time_str, "~")[1]),":")[2] local round = self.model:GetActivityRound(s_h,s_m) key = self.data.module_id .. "@" .. round end local red_bool = self.model:GetGuildEventTabRed(key) -- self.reddot_obj:SetActive(red_bool) -- 2021.3.23 优化需求:社团活动页签不再给红点 self.reddot_obj:SetActive(false) -- 拆分活动时间字串,获得活动开始时间 if red_bool then self.time_tmp.text = "<#2CF86F>进行中" else local time_info = Split(self.data.time_str, "~") self.time_tmp.text = time_info[1].."进行" end end --当前或接下来将要进行的活动,小于这个活动index的tabItem都要置灰处理 function GuildEventTabItem:SetData( data, index, call_back,activity_index) self.data = data self.index = index self.call_back = call_back self.activity_index = activity_index or nil if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildEventTabItem:SetSelected(bool) self.is_selected = bool if self.is_loaded then self.selected_obj:SetActive(self.is_selected) end end function GuildEventTabItem:SetGray(bool) SetImageGray(self.bg_img,bool) self.closed_flag_obj:SetActive(bool) end function GuildEventTabItem:__delete( ) end