KLUnionTaskPanel.lua 2.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192
  1. ---@class KLUnionTaskPanel:UIKmlLuaPanelBase
  2. ---@field view KLUnionTaskPanelView
  3. local KLUnionTaskPanel = class(UIKmlLuaPanelBase)
  4. local this = KLUnionTaskPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. self.unionTaskIdToInfo = {}
  8. self.unionTaskList = {}
  9. self.unionFinishList = {}
  10. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_UNION_TASK_DATA)
  11. end
  12. ---创建或者刷新界面数据时调用
  13. function this:Refresh()
  14. --self:ShowTaskList()
  15. -- SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_UNION_TASK_DATA)
  16. SL.HideMainPanel()
  17. end
  18. ---注册UI事件和服务器消息
  19. function this:RegistEvents()
  20. SL:RegisterLuaNetMsg(LuaMessageIdToClient.RES_UNION_TASK_DATA,self.ResUnionTaskData, self)
  21. GUI:AddOnClickEvent(self.view.btnClose, self, self.btnClose)
  22. end
  23. function this:btnClose()
  24. GUI:UIPanel_Close("dev/outui/Union/Panel/KLUnionTask/KLUnionTaskPanel")
  25. GUI:UIPanel_Close("dev/ui/Union/Panel/KLUnionToggleList/KLUnionToggleListPanel")
  26. SL.ShowMainPanel()
  27. end
  28. function this:Close()
  29. end
  30. function this:ResUnionTaskData(_, message)
  31. self.unionFinishList = message.memberrecord or {}
  32. self:SetUnionTaskList(message)
  33. self:ShowTaskList(message)
  34. GUI:SetControl_time(self.view.timeCounter, (self:GetNextRefreshTime(message.createtime//1000,SL:GetConfig('cfg_gard_task',1).taskRefreshes)*1000-SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME))//1000)
  35. end
  36. function this:ShowTaskList(message)
  37. for _, unionTaskInfo in pairs(self.unionTaskList) do
  38. local taskId = unionTaskInfo.taskid
  39. self.unionTaskIdToInfo[taskId] = GUI:UIPanel_Open("dev/outui/Union/Item/KLUnionTask/KLUnionTaskItem", self.view.layout2, self, {info=unionTaskInfo, finish=table.contains(self.unionFinishList, taskId)}, true)
  40. end
  41. end
  42. function this:SetUnionTaskList(message)
  43. self.unionTaskList = {}
  44. local taskRecord = message.taskrecord
  45. for _, unionTaskInfo in pairs(taskRecord) do
  46. table.insert(self.unionTaskList, unionTaskInfo)
  47. end
  48. table.sort(self.unionTaskList, function(a, b)
  49. return a.taskid < b.taskid
  50. end)
  51. end
  52. function this:GetNextRefreshTime(creationTimestamp, day)
  53. if day == 0 then
  54. day = 1
  55. end
  56. local currentTime = SL:GetMetaValue(EMetaVarGetKey.SERVER_TIME)//1000
  57. local creationTime = os.date("*t", creationTimestamp)
  58. -- 将创建时间转换为时间戳
  59. creationTime.hour = 0
  60. creationTime.min = 0
  61. creationTime.sec = 0
  62. -- 计算下一个任务刷新时间
  63. local nextRefreshTimestamp = os.time(creationTime)
  64. --while nextRefreshTimestamp <= currentTime do
  65. -- nextRefreshTimestamp = nextRefreshTimestamp + day * 24 * 3600
  66. --end
  67. nextRefreshTimestamp = nextRefreshTimestamp + day * 24 * 3600
  68. return nextRefreshTimestamp
  69. end
  70. return this