---@class KLUILifetimeGiftPanel:UIKmlLuaPanelBase ---@field view KLUILifetimeGiftPanelView local KLUILifetimeGiftPanel = class(UIKmlLuaPanelBase) local this =KLUILifetimeGiftPanel --终身礼包 ---创建时调用一次 function this:Init() --礼包列表 GUI:DataListInitData(self.view.RewardContent,function() return self:ItemRewardItemCountFunc() end,function(realIndex) return self:ItemRewardItemGetFunc(realIndex) end,function(realIndex, kmlcontrol) return self:ItemRewardItemInitFunc(realIndex, kmlcontrol) end, function(realIndex, kmlcontrol) return self:ItemRewardItemUpdateFunc(realIndex, kmlcontrol) end) self.Item_Reward_all_item = {} end --region 礼包列表 function this:ItemRewardItemCountFunc() return #self.allRewardData end function this:ItemRewardItemGetFunc(realIndex) local cfgData = self.allRewardData[realIndex + 1] local item = GUI:UIPanel_Open("dev/outui/LifetimeGift/Item/KLUILifetimeGiftPackage/KLUILifetimeGiftPackageItem",self.view.RewardContent,self,cfgData,true) self.Item_Reward_all_item[realIndex + 1] = item return item.view.root end function this:ItemRewardItemInitFunc(realIndex, kmlcontrol) end function this:ItemRewardItemUpdateFunc(realIndex, kmlcontrol) local cfgData = self.allRewardData[realIndex + 1] self.Item_Reward_all_item[realIndex + 1]:RefreshItem(cfgData) end function this:RefreshGiftList() self.allRewardData = {} for i,idStr in pairs(self.rechargeIds) do local id = tonumber(idStr) local cfg = SL:GetConfig("cfg_recharge",id,"id") if cfg then local subCfg = SL:GetConfig("cfg_Lifetimegiftbag",cfg.parameter,"id") if subCfg and ConditionManager.Check4D(subCfg.condition) then local data = {} data.rechargeCfg = cfg data.lifetimeCfg = subCfg table.insert(self.allRewardData,data) end end end table.sort(self.allRewardData,function(a, b) return a.lifetimeCfg.sortId < b.lifetimeCfg.sortId end) GUI:DataListUpdateData(self.view.RewardContent) end --endregion 礼包列表 ---注册UI事件和服务器消息 function this:RegistEvents() SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.ResRecharge,self) SL:RegisterLUAEvent(LUA_EVENT_LIFETIME_GIFT_COUNT_RECHARGE_CHANGE, self.LUA_EVENT_LIFETIME_GIFT_COUNT_RECHARGE_CHANGE, self) end function this:ResRecharge(id, message) if not message or not message.type or message.type ~= "7" then return end self.rechargeIds = message.data self:RefreshGiftList() end function this:LUA_EVENT_LIFETIME_GIFT_COUNT_RECHARGE_CHANGE() self:RefreshGiftList() end ---创建或者刷新界面数据时调用 function this:Refresh() SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECHARGE_ACTION,{type="7",action="panel"}) end function this:Close() SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.ResRecharge,self) self.rechargeIds = nil end return this