KLUIArchangelWelfareItem.lua 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131
  1. ---@class KLUIArchangelWelfareItem:UIKmlLuaPanelBase
  2. ---@field view KLUIArchangelWelfareItemView
  3. local KLUIArchangelWelfareItem = class(UIKmlLuaPanelBase)
  4. local this = KLUIArchangelWelfareItem
  5. ---创建时调用一次
  6. function this:Init()
  7. self.remainCount = ""
  8. self.itemTemplateList = {}
  9. self.isCanReceive = false
  10. self.RewardItems = {}
  11. self.height = GUI:GetControlHeight(self.view.loopscrollview)
  12. self.oneItemWidth = 70
  13. self:InitRewardList()
  14. end
  15. function this:InitRewardList()
  16. GUI:DataListInitData(self.view.loopscrolldata, function()
  17. return self:RewardItemCountFunc()
  18. end, function(realIndex)
  19. return self:RewardItemGetFunc(realIndex)
  20. end, function(realIndex, kmlcontrol)
  21. return self:RewardItemInitFunc(realIndex, kmlcontrol)
  22. end, function(realIndex, kmlcontrol)
  23. return self:RewardItemUpdateFunc(realIndex, kmlcontrol)
  24. end)
  25. end
  26. function this:RewardItemCountFunc()
  27. return table.count(self.rewardInfo)
  28. end
  29. function this:RewardItemGetFunc(realIndex)
  30. end
  31. function this:RewardItemInitFunc(realIndex, kmlcontrol)
  32. end
  33. function this:RewardItemUpdateFunc(realIndex, kmlcontrol)
  34. local ctrlItem = GUI:GetChildControl(self.view.loopscrolldata, realIndex, 'ItemIcon', kmlcontrol)
  35. local luaIndex = realIndex + 1
  36. local dt = self.rewardInfo[luaIndex]
  37. GUI:Item_setItemId(ctrlItem, dt[1])
  38. GUI:Item_setItemCount(ctrlItem,tostring(dt[2]))
  39. GUI:AddOnClickEvent(ctrlItem, self, function()
  40. SL:OpenTips(nil, dt[1])
  41. end)
  42. end
  43. ---@param data {cfg:cfg_angleBenefitTask_column,info:OpenServiceArchangelWelfareProtos.TaskInfo}
  44. function this:InitData(data)
  45. self.cfgInfo = data.cfg
  46. self.taskID = data.cfg.taskTargetId[1]
  47. self.isCanReceive = false
  48. --self.view.UIArchangelWelfareTemplate.image.raycastTarget = false
  49. if data then
  50. local taskGoalRecord = data.info
  51. local goalCount = SL:GetConfig("cfg_task_target", self.taskID).goalCount
  52. if taskGoalRecord.status ~= "1" then
  53. self.remainCount = "<color=#5DE367>" .. "已完成" .. "</color>"
  54. GUI:Text_setString(self.view.Text, "领 取")
  55. self.isCanReceive = true
  56. GUI:setVisible(self.view.EffectHighlight, true)
  57. else
  58. self.remainCount = "<color=#FF5047>" .. data.info.nowCount .. "</color>" .. "/" .. goalCount
  59. GUI:Text_setString(self.view.Text, "前 往")
  60. GUI:setVisible(self.view.EffectHighlight, false)
  61. end
  62. end
  63. self.rewardInfo = data.cfg.rewardItem
  64. if #self.rewardInfo >= 3 then
  65. GUI:setContentSize(self.view.loopscrollview, self.oneItemWidth * 3 + 10, self.height)
  66. else
  67. GUI:setContentSize(self.view.loopscrollview, self.oneItemWidth * #self.rewardInfo + 10, self.height)
  68. end
  69. GUI:DataListUpdateData(self.view.loopscrolldata)
  70. end
  71. function this:BtnGetOnClick()
  72. local isshow = GUI:getVisible(self.view.EffectHighlight)
  73. if isshow then
  74. GUI:setVisible(self.view.EffectHighlight, false)
  75. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SUBMIT_ANGLE_BENEFIT_TASK, { type = self.cfgInfo.type })
  76. end
  77. end
  78. ---注册UI事件和服务器消息
  79. function this:RegistEvents()
  80. GUI:AddOnClickEvent(self.view.BtnGo, self, self.BtnGoOnClick)
  81. end
  82. function this:BtnGoOnClick()
  83. if self.isCanReceive then
  84. self:BtnGetOnClick()
  85. return
  86. end
  87. ---@type cfg_task_target_column
  88. local taskConfig = SL:GetConfig("cfg_task_target", self.taskID)
  89. if taskConfig then
  90. if self.cfgInfo.type == 2 then
  91. local monsterId = taskConfig.taskGoalParam
  92. local monsterType = SL:GetConfigMultiKeys('cfg_BOSS_challenge', monsterId, 'monsterid').monsterType
  93. GUI:UIPanel_Close("dev/outui/MainActivity/Panel/KLMainActivity/KLMainActivityPanel")
  94. GUI:UIPanel_Open("dev/outui/ChallengeBoss/Panel/KLChallengeBoss/KLChallengeBossPanel", nil,
  95. nil, { monsterId = monsterId, monsterType = monsterType })
  96. else
  97. GUI:UIPanel_Close("dev/outui/MainActivity/Panel/KLMainActivity/KLMainActivityPanel")
  98. shortcutOutMgr.DO(taskConfig.instruction[1])
  99. end
  100. end
  101. end
  102. ---界面显示时调用一次
  103. function this:Show()
  104. end
  105. ---创建或者刷新界面数据时调用
  106. function this:Refresh()
  107. end
  108. function this:RefreshUI()
  109. GUI:Text_setString(self.view.giftName, self.cfgInfo.taskTitle)
  110. GUI:Text_setString(self.view.giftDesc, self.cfgInfo.taskDesc)
  111. GUI:Text_setString(self.view.remainCount, self.remainCount)
  112. end
  113. function this:Close()
  114. end
  115. return this