KLUILifetimeGiftPanel.lua 3.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990
  1. ---@class KLUILifetimeGiftPanel:UIKmlLuaPanelBase
  2. ---@field view KLUILifetimeGiftPanelView
  3. local KLUILifetimeGiftPanel = class(UIKmlLuaPanelBase)
  4. local this =KLUILifetimeGiftPanel
  5. --终身礼包
  6. ---创建时调用一次
  7. function this:Init()
  8. --礼包列表
  9. GUI:DataListInitData(self.view.RewardContent,function()
  10. return self:ItemRewardItemCountFunc()
  11. end,function(realIndex)
  12. return self:ItemRewardItemGetFunc(realIndex)
  13. end,function(realIndex, kmlcontrol)
  14. return self:ItemRewardItemInitFunc(realIndex, kmlcontrol)
  15. end, function(realIndex, kmlcontrol)
  16. return self:ItemRewardItemUpdateFunc(realIndex, kmlcontrol)
  17. end)
  18. self.Item_Reward_all_item = {}
  19. end
  20. --region 礼包列表
  21. function this:ItemRewardItemCountFunc()
  22. return #self.allRewardData
  23. end
  24. function this:ItemRewardItemGetFunc(realIndex)
  25. local cfgData = self.allRewardData[realIndex + 1]
  26. local item = GUI:UIPanel_Open("dev/outui/LifetimeGift/Item/KLUILifetimeGiftPackage/KLUILifetimeGiftPackageItem",self.view.RewardContent,self,cfgData,true)
  27. self.Item_Reward_all_item[realIndex + 1] = item
  28. return item.view.root
  29. end
  30. function this:ItemRewardItemInitFunc(realIndex, kmlcontrol)
  31. end
  32. function this:ItemRewardItemUpdateFunc(realIndex, kmlcontrol)
  33. local cfgData = self.allRewardData[realIndex + 1]
  34. self.Item_Reward_all_item[realIndex + 1]:RefreshItem(cfgData)
  35. end
  36. function this:RefreshGiftList()
  37. self.allRewardData = {}
  38. for i,idStr in pairs(self.rechargeIds) do
  39. local id = tonumber(idStr)
  40. local cfg = SL:GetConfig("cfg_recharge",id,"id")
  41. if cfg then
  42. local subCfg = SL:GetConfig("cfg_Lifetimegiftbag",cfg.parameter,"id")
  43. if subCfg and ConditionManager.Check4D(subCfg.condition) then
  44. local data = {}
  45. data.rechargeCfg = cfg
  46. data.lifetimeCfg = subCfg
  47. table.insert(self.allRewardData,data)
  48. end
  49. end
  50. end
  51. table.sort(self.allRewardData,function(a, b)
  52. return a.lifetimeCfg.sortId < b.lifetimeCfg.sortId
  53. end)
  54. GUI:DataListUpdateData(self.view.RewardContent)
  55. end
  56. --endregion 礼包列表
  57. ---注册UI事件和服务器消息
  58. function this:RegistEvents()
  59. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.ResRecharge,self)
  60. SL:RegisterLUAEvent(LUA_EVENT_LIFETIME_GIFT_COUNT_RECHARGE_CHANGE, self.LUA_EVENT_LIFETIME_GIFT_COUNT_RECHARGE_CHANGE, self)
  61. end
  62. function this:ResRecharge(id, message)
  63. if not message or not message.type or message.type ~= "7" then
  64. return
  65. end
  66. self.rechargeIds = message.data
  67. self:RefreshGiftList()
  68. end
  69. function this:LUA_EVENT_LIFETIME_GIFT_COUNT_RECHARGE_CHANGE()
  70. self:RefreshGiftList()
  71. end
  72. ---创建或者刷新界面数据时调用
  73. function this:Refresh()
  74. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_RECHARGE_ACTION,{type="7",action="panel"})
  75. end
  76. function this:Close()
  77. SL:UnRegisterLuaNetMsg(LuaMessageIdToClient.RES_RECHARGE_ACTION,self.ResRecharge,self)
  78. self.rechargeIds = nil
  79. end
  80. return this