-- <* -- @Author: Saber -- @Description: 社团红包item -- *> GuildRedPacketItem = GuildRedPacketItem or BaseClass(BaseItem) local GuildRedPacketItem = GuildRedPacketItem function GuildRedPacketItem:__init(parent_wnd,prefab_asset,layer_name) self.base_file = "redPacket" self.layout_file = "GuildRedPacketItem" self.parent_wnd = parent_wnd self.layer_name = layer_name self.redpacket_id = 0 -- 红包唯一id self.redpacket_cfg_id = 0 -- 红包配置id self.model = RedPacketModel:GetInstance() self:Load() end function GuildRedPacketItem:Load_callback() self.nodes = { "get_btn:obj:imgex", "get_btn/get_flag:imgex", "head_con", "desc1:tmp", "desc2:tmp", } self:GetChildren(self.nodes) self.role_head = HeadRoleItem.New(self.head_con) self.role_head:SetItemSize(70, 70) self.role_head:SetAnchoredPosition(0, 0) self:AddEvents() if self.need_refreshData then self:UpdateView() end end function GuildRedPacketItem:AddEvents( ) local function click_event(target) if target == self.get_btn_obj or target == self.gameObject then if self.data and self.data.id then if self.data.status == 0 then --发红包 self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33909,self.data.id) else --领红包、看红包 self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33902,self.data.id) -- if self.model:IsGuildRedPacketInLimit() then -- Message.show("当日领取红包次数已达上限") -- else -- end end end end end AddClickEvent(self.get_btn_obj, click_event) AddClickEvent(self.gameObject, click_event) end function GuildRedPacketItem:UpdateView( ) if self.data then -- 红包id相关 self.redpacket_id = self.data.id self.redpacket_cfg_id = self.data.packet_id -- 红包发起人头像级描述信息 local head_data = { vo = { id = self.data.role_id, -- server_id = self.data.ser_id or 0, career = self.data.career, sex = self.data.sex, turn = self.data.turn, picture_ver = self.data.picture_ver, picture = self.data.picture, profile_photo_id = self.data.profile_photo_id, dress_board_id = self.data.dress_id, level = self.data.lv, use_bg = 2 }, show_tip = false, } self.role_head:SetData(head_data) -- 红包描述 local red_packet_cfg = Config.Redpacket[self.redpacket_cfg_id] self.desc1_tmp.text = string.format("金主:%s", self.data.role_name) self.desc2_tmp.text = Trim(red_packet_cfg.greetings) -- 根据红包领取情况加载按钮状态 self.get_btn_imgex.gray = false local icon_res, btn_gray = "guild_red_open_pointfilter", false -- 按钮资源和灰化 -- if self.data.has_look == 0 then -- 被处理为未查看的红包(上线后的新红包) -- icon_res = "guild_red_open_pointfilter" -- btn_gray = false -- elseif self.data.has_look == 1 then -- 旧红包 if self.data.status == 0 then -- 还没发的红包,置顶 icon_res = "guild_red_send_pointfilter" btn_gray = false elseif self.data.status == 1 then -- 发出去的红包,收到协议时未领完 if self.data.receive_status == 3 then -- 已经领了的 icon_res = "guild_red_claimed_pointfilter" elseif self.data.receive_status == 2 then -- 领不到了 icon_res = "guild_red_missed_pointfilter" elseif self.data.receive_status == 1 then -- 还能领 icon_res = "guild_red_open_pointfilter" end btn_gray = self.data.receive_status ~= 1 elseif self.data.status == 2 then -- 已领完 if self.data.receive_status == 3 then -- 已经领了的 icon_res = "guild_red_claimed_pointfilter" btn_gray = true else icon_res = "guild_red_missed_pointfilter" btn_gray = true end end -- end lua_resM:setImageSprite(self, self.get_flag_imgex, "redPacket_asset", icon_res, true) self.get_flag_imgex.gray = btn_gray self.get_btn_imgex.gray = btn_gray end end function GuildRedPacketItem:SetData( data ) self.data = data if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GuildRedPacketItem:__delete( ) if self.role_head then self.role_head:DeleteMe() self.role_head = nil end end