--<* -- @Author: Saber -- @Description: 社团申请界面社团信息item --*> GuildApplyItem = GuildApplyItem or BaseClass(BaseItem) local GuildApplyItem = GuildApplyItem function GuildApplyItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "guild" self.layout_file = "GuildApplyItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.is_selected = false self.baged_item = {} -- 社团勋章list self.model = GuildModel:getInstance() self:Load() end function GuildApplyItem:Load_callback() self.nodes = { "bg:obj", "select:obj", "guild_icon:img", "guild_name:tmp", "guild_menber:tmp", "leader:tmp", "rank:tmp", "rank_val:img", "badge_con", } self:GetChildren(self.nodes) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function GuildApplyItem:AddEvents( ) local function click_event(target) if target == self.bg_obj then if self.callback and self.index then self.callback(self.index) end end end AddClickEvent(self.bg_obj, click_event, LuaSoundManager.SOUND_UI.SWITCH) end function GuildApplyItem:UpdateView( ) local asset_name = "guild_asset" lua_resM:setImageSprite(self, self.guild_icon_img, "guildIcon_asset", "guild_icon" .. self.data.guild_flag, true) local guild_lv_cfg = Config.Guildlv[self.data.guild_lv or 1] self.guild_name_tmp.text = self.data.guild_name self.guild_menber_tmp.text = string.format("人数:%s/%s", ColorUtil.GREEN_DARK, self.data.member_num, guild_lv_cfg.member_capacity + self.data.add_mem_num) self.leader_tmp.text = string.format("团长:%s", self.data.name) self.rank_tmp.text = "社团评价:" lua_resM:setImageSprite(self, self.rank_val_img, "guild_asset", "guild_rank" .. self.data.division, true) self:UpdateBadgeItems() self:SetSelected(self.is_selected) end -- 更新社团勋章 function GuildApplyItem:UpdateBadgeItems( ) -- 排序社团勋章 self.model:SortGuildBadge(self.data.badges) local item local function badge_click_callback(index, id) if self.badge_callback then self.badge_callback(self.transform.anchoredPosition.y, index, id) end end for k, v in ipairs(self.data.badges) do item = self.baged_item[k] if not item then item = GuildBadgeItem.New(self.badge_con) self.baged_item[k] = item end item:SetAnchoredPosition((k-1) * 84, -10) item:SetData(v, false, nil, k, badge_click_callback) item:SetVisible(true) end if #self.data.badges < #self.baged_item then for k = #self.data.badges + 1, #self.baged_item do self.baged_item[k]:SetVisible(false) end end end function GuildApplyItem:SetData( index, data, callback, badge_callback ) self.index = index self.data = data self.callback = callback self.badge_callback = badge_callback if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildApplyItem:SetSelected(bool) self.is_selected = bool if self.is_loaded then self.select_obj:SetActive(self.is_selected) end end function GuildApplyItem:__delete( ) for k, v in pairs(self.baged_item) do v:DeleteMe() v = nil end self.baged_item = nil end