KLUnionTaskItem.lua 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116
  1. ---@class KLUnionTaskItem:UIKmlLuaPanelBase
  2. ---@field view KLUnionTaskItemView
  3. local KLUnionTaskItem = class(UIKmlLuaPanelBase)
  4. local this =KLUnionTaskItem
  5. ---创建时调用一次
  6. function this:Init()
  7. GUI:DataListInitData(self.view.getList, function()
  8. local taskId = self.args.info.taskid
  9. local taskCfg = SL:GetConfig('cfg_gard_task', taskId)
  10. return table.count(taskCfg.rewardItem) + table.count(taskCfg.rewardSpecial)
  11. end,function()
  12. end,function(realIndex)
  13. local taskId = self.args.info.taskid
  14. local taskCfg = SL:GetConfig('cfg_gard_task', taskId)
  15. local rewardItemCount = table.count(taskCfg.rewardItem)
  16. local itemControl = GUI:GetChildControl(self.view.getList,realIndex,'item12')
  17. local itemId
  18. local itemCount
  19. if realIndex+1<=rewardItemCount then
  20. itemId = taskCfg.rewardItem[realIndex+1][1]
  21. itemCount = taskCfg.rewardItem[realIndex+1][2]
  22. else
  23. itemId = taskCfg.rewardSpecial[realIndex+1-rewardItemCount][1]
  24. itemCount = taskCfg.rewardSpecial[realIndex+1-rewardItemCount][2]
  25. end
  26. GUI:Item_UpdataData(itemControl,{
  27. itemid = itemId,
  28. itemcount = itemCount,
  29. } )
  30. GUI:AddOnClickEvent(itemControl,self,function()
  31. SL:OpenTips(nil, itemId)
  32. end)
  33. end,function(realIndex)
  34. end)
  35. GUI:DataListUpdateData(self.view.getList)
  36. end
  37. ---注册UI事件和服务器消息
  38. function this:RegistEvents()
  39. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_SUBMIT_UNION_TASK, self.ResSubmitUnionTask, self)
  40. end
  41. function this:ResSubmitUnionTask(_, finishTaskId)
  42. if self.args.info.taskid == finishTaskId then
  43. GUI:setVisible(self.view.Img_Received_1, true)
  44. GUI:setVisible(self.view.taskButton, false)
  45. local taskCfg = SL:GetConfig('cfg_gard_task', finishTaskId)
  46. local reward = {}
  47. for _, v in pairs(taskCfg.rewardItem) do
  48. reward[tonumber(v[1])] = tonumber(v[2])
  49. end
  50. SL:OpenRewardTips(reward)
  51. end
  52. end
  53. ---创建或者刷新界面数据时调用
  54. function this:Refresh()
  55. local taskInfo = self.args.info
  56. local finish = self.args.finish
  57. if taskInfo then
  58. local taskId = taskInfo.taskid
  59. local taskCfg = SL:GetConfig('cfg_gard_task', taskId)
  60. GUI:Text_setString(self.view.taskTarget, taskCfg.taskName)
  61. GUI:setGrey(self.view.taskButton, false)
  62. local haveCount = taskInfo.taskcount
  63. local totalCount = taskCfg.taskContent[2] and taskCfg.taskContent[2] or taskCfg.taskContent[1]
  64. if haveCount < totalCount then
  65. GUI:Text_setString(self.view.TextProgress, string.format('<color="#ff0000">%d</color>/%d', haveCount, totalCount))
  66. GUI:Button_setTitleText(self.view.taskButton, "前往")
  67. if string.isNullOrEmpty(taskCfg.panel[1]) then
  68. GUI:setGrey(self.view.taskButton, true)
  69. GUI:Button_setBright(self.view.taskButton, false)
  70. else
  71. GUI:setGrey(self.view.taskButton, false)
  72. GUI:Button_setBright(self.view.taskButton, true)
  73. end
  74. GUI:AddOnClickEvent(self.view.taskButton, self, function()
  75. if taskCfg.panel[2] and string.contains( taskCfg.panel[2], 'KLUnionActivityPanel') then
  76. local panel = GUI:GetUI("dev/ui/Union/Panel/KLUnionToggleList/KLUnionToggleListPanel")
  77. if panel then
  78. GUI:SetTogDefaultThis(panel.view.activityToggle)
  79. end
  80. else
  81. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionToggleList/KLUnionToggleListPanel")
  82. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionTask/KLUnionTaskPanel")
  83. end
  84. shortcutOutMgr.DO(taskCfg.panel)
  85. end)
  86. else
  87. GUI:Text_setString(self.view.TextProgress, string.format('%d/%d', haveCount, totalCount))
  88. if finish then
  89. GUI:setVisible(self.view.taskButton, false)
  90. GUI:setVisible(self.view.Img_Received_1, true)
  91. else
  92. GUI:Button_setTitleText(self.view.taskButton, "领取")
  93. GUI:AddOnClickEvent(self.view.taskButton, self, function()
  94. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_SUBMIT_UNION_TASK, taskId)
  95. end)
  96. end
  97. end
  98. end
  99. end
  100. function this:Close()
  101. end
  102. return this