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