源战役客户端
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.
 
 
 
 
 

103 lines
4.0 KiB

-- <*
-- @Author: Saber
-- @Description: 社团职位任命成员节点
-- *>
GuildPositionAllotItem = GuildPositionAllotItem or BaseClass(BaseItem)
local GuildPositionAllotItem = GuildPositionAllotItem
function GuildPositionAllotItem:__init(parent_wnd,prefab_asset,layer_name)
self.base_file = "guild"
self.layout_file = "GuildPositionAllotItem"
self.parent_wnd = parent_wnd
self.layer_name = layer_name
self.model = GuildModel:getInstance()
self:Load()
end
function GuildPositionAllotItem:Load_callback()
local nodes = {
"info_con/vip_con", "info_con/sex_flag:img", "info_con/name:tmp",
"pos_bg:img",
"power:txt", "active:tmp",
"apoint_btn:obj", "resign_btn:obj",
}
self:GetChildren(nodes)
-- 加载vip节点
self.vipItem = RoleVipItem.New(self.vip_con)
self:AddEvents()
if self.need_refreshData then
self:UpdateView()
end
end
function GuildPositionAllotItem:AddEvents( )
local function click_event(target)
if target == self.apoint_btn_obj then -- 任命按钮
self:OnBtnClick(1)
elseif target == self.resign_btn_obj then -- 卸任按钮
self:OnBtnClick(2)
end
end
AddClickEvent(self.apoint_btn_obj, click_event)
AddClickEvent(self.resign_btn_obj, click_event)
end
function GuildPositionAllotItem:SetData( data, index, tab_pos)
self.data = data
self.index = index
self.tab_pos = tab_pos
if self.is_loaded then
self.need_refreshData = false
self:UpdateView()
else
self.need_refreshData = true
end
end
function GuildPositionAllotItem:UpdateView( )
self.vipItem:SetData(self.data.vip_flag, self.data.sup_vip_type)
self.name_tmp.text = self.data.name
lua_resM:setImageSprite(self, self.sex_flag_img, "common_asset", self.data.sex == 1 and "com_boy" or "com_girl", true)
-- SetAnchoredPositionX(self.name, self.data.vip_flag == 0 and 5 or 46)
SetAnchoredPositionX(self.name, 46)
self.name_tmp.text = self.data.name
-- local sex_pos_x = (self.data.vip_flag == 0 and 10 or 51) + self.name_tmp.preferredWidth
local sex_pos_x = 51 + self.name_tmp.preferredWidth
SetAnchoredPositionX(self.sex_flag, sex_pos_x)
lua_resM:setImageSprite(self, self.pos_bg_img, "guild_asset", "g_pos_icon" .. self.data.position, true)
self.active_tmp.text = self.data.total_labor
self.power_txt.text = self.data.power
-- 会长不能上任和卸任,只能由会长转让
self.apoint_btn_obj:SetActive(self.data.position ~= self.tab_pos and self.data.position ~= GuildModel.GuildPosition.Leader)
self.resign_btn_obj:SetActive(self.data.position == self.tab_pos and self.data.position ~= GuildModel.GuildPosition.Leader)
end
function GuildPositionAllotItem:OnBtnClick(type)
if type == 1 then -- 任命
local cur_mem_num = self.model:GetMemberNum(self.tab_pos)
local mem_max_num = self.model:GetPositionNum(self.tab_pos)
if cur_mem_num < mem_max_num or self.tab_pos == GuildModel.GuildPosition.Leader then -- 团长需要特殊处理,因为团长一直都是满的
local function ok( ... )
GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT, 40013, self.data.role_id, self.tab_pos)
end
local ask_str = string.format("是否任命 %s 为 %s ?", self.data.name, Trim(Config.Guildpos[self.tab_pos].name))
Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
else
Message.show("该职位人数已满")
end
elseif type == 2 then -- 卸任
local function ok( ... )
GuildModel:getInstance():Fire(GuildModel.REQUEST_CCMD_EVENT, 40013, self.data.role_id, 5)
end
local ask_str = string.format("是否卸下 %s 的 %s 职位?", self.data.name, Trim(Config.Guildpos[self.tab_pos].name))
Alert.show(ask_str,Alert.Type.Two,ok,nil,"确定","取消")
end
end
function GuildPositionAllotItem:__delete( )
if self.vipItem then
self.vipItem:DeleteMe()
self.vipItem = nil
end
end