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