GodActivityRewardItem = GodActivityRewardItem or BaseClass(BaseItem) local GodActivityRewardItem = GodActivityRewardItem GodActivityRewardItem.Width = 84 GodActivityRewardItem.Height = 108 function GodActivityRewardItem:__init(parent_wnd,prefab_asset,layer_name,other_prefab) self.base_file = "godActivity" self.other_prefab = other_prefab self.layout_file = other_prefab or"GodActivityRewardItem" self.layer_name = layer_name self.model = GodModel:getInstance() self:Load() end function GodActivityRewardItem:Load_callback() self.nodes = { "lb_num:tmp", "con", "red_dot:obj" } self:GetChildren(self.nodes) self:AddEvents() self.award_item = self.award_item or UIObjPool:getInstance():PopItem(UIObjPool.UIType.AwardItem,self.con) if self.other_prefab then self.award_item:SetItemSize(62,62) else self.award_item:SetItemSize(62,62) end if self.need_refreshData then self:UpdateView() end end function GodActivityRewardItem:AddEvents( ) end function GodActivityRewardItem:UpdateView( ) if not self.is_loaded then return end if not self.data then return end self:UpdateInfo() end function GodActivityRewardItem:UpdateInfo( ) local conf_data = self.data local base_data = false if self.type_str == "limit" then base_data = self.model:GetActivityLimitInfo() else base_data = self.model:GetActivityCommonInfo() end if not base_data then return end local status = GodConst.ActivityRewardStatus.Doing for k,v in pairs(base_data.bless_award) do if v.stage == conf_data[1] then status = v.state break end end self.lb_num_tmp.text = conf_data[2] .. "抽" if status == GodConst.ActivityRewardStatus.Doing then self.award_item:SetGray(false,true) self.red_dot_obj:SetActive(false) self.award_item:SetNumLimitVisible(false) elseif status == GodConst.ActivityRewardStatus.CanGet then self.award_item:SetGray(false,true) self.red_dot_obj:SetActive(true) self.award_item:SetNumLimitVisible(false) elseif status == GodConst.ActivityRewardStatus.HaveGet then self.award_item:SetGray(true,true) self.red_dot_obj:SetActive(false) self.award_item:SetNumLimitVisible(true,9) end if self.status_callback then self.status_callback(self.index, status ~= GodConst.ActivityRewardStatus.Doing) end self.award_item:SetDataWithMapId(conf_data[3][1][2], conf_data[3][1][3], conf_data[3][1][1]) local function call_back( ) if self.type_str == "limit" then self.model:Fire(GodConst.REQ_ACTIVITY_GET_NUM_AWARD, tonumber(conf_data[1])) else -- self.model:Fire(GodConst.REQ_ACTIVITY_GET_NUM_AWARD, GodConst.ActivityType.Common, tonumber(conf_data[1])) end end self.award_item:SetCallBack(call_back) end function GodActivityRewardItem:SetData( type_str,data, status_callback, index ) self.type_str = type_str self.data = data self.status_callback = status_callback self.index = index if self.is_loaded then self.need_refreshData = false self:UpdateView() else self.need_refreshData = true end end function GodActivityRewardItem:__delete( ) if self.award_item then UIObjPool:getInstance():PushItem(UIObjPool.UIType.AwardItem, self.award_item) self.award_item = nil end end