-- <* -- @Author: Saber -- @Description: 社团职位任命页签节点 -- *> GuildPositionAllotTabItem = GuildPositionAllotTabItem or BaseClass(BaseItem) local GuildPositionAllotTabItem = GuildPositionAllotTabItem function GuildPositionAllotTabItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "guild" self.layout_file = "GuildPositionAllotTabItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.is_selected = false self.model = GuildModel:getInstance() self:Load() end function GuildPositionAllotTabItem:Load_callback() local nodes = { "bg:obj:img", "pos_icon:img", "selected:obj", "num:tmp", } self:GetChildren(nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function GuildPositionAllotTabItem:AddEvents( ) local function click_event(target) if target == self.gameObject then if self.callback and self.index then self.callback(self.index) end end end AddClickEvent(self.gameObject, click_event, LuaSoundManager.SOUND_UI.SWITCH) local function update_tab_data() self:UpdateView() end self:BindEvent(self.model, GuildModel.RefreshMainViewMemberInfoEvt, update_tab_data) end function GuildPositionAllotTabItem:SetData( index, data, callback ) self.index = index self.data = data self.callback = callback if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildPositionAllotTabItem:UpdateView( ) local icon_index = self.data.pos if icon_index == GuildModel.GuildPosition.Leader then -- 团长和副团公用资源,这边要兼容 icon_index = GuildModel.GuildPosition.ViceLeader end lua_resM:setImageSprite(self, self.bg_img, "guild_asset", "guild_posallot_tab"..icon_index.."_pointfilter") lua_resM:setImageSprite(self, self.pos_icon_img, "guild_asset", "guild_posallot_pos"..self.data.pos, true) local cur_mem_num = self.model:GetMemberNum(self.data.pos) local mem_max_num = self.model:GetPositionNum(self.data.pos) self.num_tmp.text = string.format("%s/%s", cur_mem_num < mem_max_num and "#2cf86f" or "#ffffff", cur_mem_num, mem_max_num) self:SetSelected(self.is_selected) end function GuildPositionAllotTabItem:SetSelected(bool) self.is_selected = bool if self.is_loaded then if self.selected_obj.activeSelf ~= self.is_selected then self.selected_obj:SetActive(self.is_selected) end end end function GuildPositionAllotTabItem:__delete( ) end