--<*
|
|
-- @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("人数:<color=#ffffff><color=%s>%s</color>/%s</color>",
|
|
ColorUtil.GREEN_DARK, self.data.member_num, guild_lv_cfg.member_capacity + self.data.add_mem_num)
|
|
self.leader_tmp.text = string.format("团长:<color=#ffffff>%s</color>", 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
|