KLRankItem.lua 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112
  1. ---@class KLRankItem:UIKmlLuaPanelBase
  2. ---@field view KLRankItemView
  3. local KLRankItem = class(UIKmlLuaPanelBase)
  4. local this = KLRankItem
  5. ---创建时调用一次
  6. function this:Init()
  7. GUI:DataListInitData(self.view.reward_data_list, function()
  8. return self:RewardDataListItemCountFunc()
  9. end, function(realIndex)
  10. return self:RewardDataListItemGetFunc(realIndex)
  11. end, function(realIndex, kmlcontrol)
  12. return self:RewardDataListItemInitFunc(realIndex, kmlcontrol)
  13. end, function(realIndex, kmlcontrol)
  14. return self:RewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  15. end)
  16. self.all_item = {}
  17. self.all_reward_data = {}
  18. end
  19. ---创建或者刷新界面数据时调用
  20. function this:Refresh()
  21. end
  22. function this:RefreshItem(data,select_gold_level,rank_panel)
  23. self.data = data
  24. local currentGroup = InfoManager.mainOperateActivityInfo.NowOperateActivityMainGroup
  25. if not currentGroup or currentGroup <= 0 then
  26. currentGroup = 1
  27. end
  28. local tab = SL:GetConfigTwoKeys("cfg_Activity_costRank",self.data.rank,currentGroup,"ranking","mainGroup")
  29. self.all_reward_data = {}
  30. self.select_gold_level = select_gold_level
  31. self.rank_panel = rank_panel
  32. local rankValue = self.data.rank
  33. local rank_str = "第"..rankValue .. "名"
  34. local name_str = nil
  35. if string.isNullOrEmpty(self.data.name) then
  36. name_str = tab.text
  37. else
  38. name_str = self.data.name
  39. end
  40. GUI:Text_setString(self.view.PlayerItem_Name,name_str)
  41. GUI:Text_setString(self.view.PlayerItem_RankText,rank_str)
  42. local all_gift = tab.gift
  43. local baseCareer = SL:GetMetaValue(EMetaVarGetKey.JOB)
  44. for i, gift in ipairs(all_gift) do
  45. local cfg_id = gift[1]
  46. local _count = 0
  47. local job_id = nil
  48. if #gift > 1 then
  49. _count = gift[2]
  50. end
  51. if #gift > 2 then
  52. job_id = gift[3]
  53. end
  54. if job_id then
  55. if job_id == baseCareer then
  56. table.insert(self.all_reward_data,{cfgId =cfg_id,count= _count})
  57. end
  58. else
  59. table.insert(self.all_reward_data,{cfgId =cfg_id,count= _count})
  60. end
  61. end
  62. --SL:LogTable(tab,true)
  63. GUI:DataListUpdateData(self.view.reward_data_list)
  64. end
  65. ---注册UI事件和服务器消息
  66. function this:RegistEvents()
  67. GUI:AddOnClickEvent(self.view.PlayerItem_Button,self,self.OnClickPlayer)
  68. -- SL:RegisterLuaNetMsg(LuaMessageIdToClient.MONSTER_COUNT_RESULT_BY_ID,self.MonserCount,self)
  69. end
  70. function this:OnClickPlayer()
  71. if not self.data or string.isNullOrEmpty(self.data.rid) then
  72. return
  73. end
  74. self.rank_panel:OnClickPlayer(self.data)
  75. end
  76. function this:RewardDataListItemCountFunc()
  77. return #self.all_reward_data
  78. end
  79. function this:RewardDataListItemGetFunc(realIndex)
  80. local item = GUI:UIPanel_Open("dev/outui/ChallengeBoss/Item/KLUIChallengeBossRewardItem/KLUIChallengeBossRewardItem", self.view.reward_data_list, self, {}, true)
  81. self.all_item[realIndex+1] = item
  82. return item.view.root
  83. end
  84. function this:RewardDataListItemInitFunc(realIndex, kmlcontrol)
  85. end
  86. function this:RewardDataListItemUpdateFunc(realIndex, kmlcontrol)
  87. local data = self.all_reward_data[realIndex + 1]
  88. self.all_item[realIndex+1]:RefreshItem(data)
  89. end
  90. function this:Close()
  91. end
  92. return this