UIGuildChangeBadgeCtr.lua 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103
  1. local UIGuildChangeBadgeCtr = class("UIGuildChangeBadgeCtr", require("UICtrBase"))
  2. function UIGuildChangeBadgeCtr:Init(view)
  3. self.view = view
  4. end
  5. ---@param data table 数据结构为{badgeId, owner, ownerCB}
  6. function UIGuildChangeBadgeCtr:SetData(data)
  7. self.asyncIdx = 0
  8. self.data = data
  9. self:InitData()
  10. end
  11. function UIGuildChangeBadgeCtr:GetAsyncIdx()
  12. self.asyncIdx = self.asyncIdx + 1
  13. return self.asyncIdx
  14. end
  15. function UIGuildChangeBadgeCtr:GetData()
  16. return self.data
  17. end
  18. function UIGuildChangeBadgeCtr:OnDispose()
  19. self.data = nil
  20. self.view = nil
  21. self.defaultBadgeId = nil
  22. self.curBadgeId = nil
  23. self.badgeCfgs = nil
  24. end
  25. function UIGuildChangeBadgeCtr:InitData()
  26. local curBadgeId = nil
  27. local badgeId = nil
  28. if self.data then
  29. badgeId = self.data[1]
  30. end
  31. local badgeCfgs = ManagerContainer.CfgMgr:GetGuildBadgeCfg()
  32. local ls = {}
  33. for id, cfg in pairs(badgeCfgs) do
  34. ls[#ls + 1] = cfg
  35. if badgeId == id then
  36. curBadgeId = badgeId
  37. end
  38. end
  39. table.sort(ls, function(a, b)
  40. return a.Id < b.Id
  41. end)
  42. self.badgeCfgs = ls
  43. if not curBadgeId then
  44. curBadgeId = ls[1].Id
  45. end
  46. self.defaultBadgeId = badgeId
  47. self.curBadgeId = curBadgeId
  48. end
  49. function UIGuildChangeBadgeCtr:GetDefaultBadgeId()
  50. return self.defaultBadgeId
  51. end
  52. function UIGuildChangeBadgeCtr:GetCurBadgeId()
  53. return self.curBadgeId
  54. end
  55. function UIGuildChangeBadgeCtr:SetCurBadgeId(badgeId)
  56. if self.curBadgeId == badgeId then
  57. return false
  58. end
  59. self.curBadgeId = badgeId
  60. return true
  61. end
  62. function UIGuildChangeBadgeCtr:GetBadgeCfgs()
  63. return self.badgeCfgs
  64. end
  65. function UIGuildChangeBadgeCtr:OnExitGuildBadge(save)
  66. if save then
  67. local isChanged = (self.defaultBadgeId ~= self.curBadgeId)
  68. self:TriggerCallback(self.curBadgeId, isChanged)
  69. else
  70. self:TriggerCallback(self.defaultBadgeId, false)
  71. end
  72. end
  73. function UIGuildChangeBadgeCtr:TriggerCallback(badgeId, isChanged)
  74. local owner = nil
  75. local ownerCB = nil
  76. if self.data then
  77. owner = self.data[2]
  78. ownerCB = self.data[3]
  79. end
  80. if ownerCB then
  81. if owner then
  82. ownerCB(owner, badgeId, isChanged)
  83. else
  84. ownerCB(badgeId, isChanged)
  85. end
  86. end
  87. end
  88. return UIGuildChangeBadgeCtr