--<*
-- @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