源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 

86 lines
2.7 KiB

-- <*
-- @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("<color=%s>%s</color>/%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