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