UIGuildCreateView.lua 4.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162
  1. local UIGuildCreateView = require("UIGuild/UIGuildCreateView_Generate")
  2. function UIGuildCreateView:OnAwake(data)
  3. self.controller = require("UIGuild/UIGuildCreateCtr"):new()
  4. self.controller:Init(self)
  5. self.controller:SetData(data)
  6. end
  7. function UIGuildCreateView:AddEventListener()
  8. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_ENTER_SUCCESS, self, self.OnGuildEnterSuccess)
  9. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name, UIEventNames.GUILD_CREATE_SUCCESS, self, self.OnGuildCreateSuccess)
  10. end
  11. function UIGuildCreateView:FillContent(data, uiBase)
  12. self.uiBase = uiBase
  13. local gameObject = self.uiBase:GetRoot()
  14. if gameObject ~= nil then
  15. self.gameObject = gameObject
  16. self.transform = gameObject.transform
  17. end
  18. self:InitGenerate(self.transform, data)
  19. self:Init()
  20. end
  21. function UIGuildCreateView:Init()
  22. self.input.inputField.text = ''
  23. self:RefreshBadge()
  24. self:RefreshCost()
  25. end
  26. function UIGuildCreateView:RemoveEventListener()
  27. ManagerContainer.LuaEventMgr:Unregister(self.uiData.name)
  28. self.input.inputField.onValidateInput = nil
  29. self.input.inputField.onEndEdit:RemoveAllListeners()
  30. end
  31. function UIGuildCreateView:AddUIEventListener()
  32. ManagerContainer.LuaEventMgr:RegisterUIEvent(self.uiData.name)
  33. self.uiBase:AddButtonUniqueEventListener(self.AnyBtn.button, self, self.OnClickCloseBtn)
  34. self.uiBase:AddButtonUniqueEventListener(self.btnClose.button, self, self.OnClickCloseBtn)
  35. self.uiBase:AddButtonUniqueEventListener(self.changeBtn.button, self, self.OnClickChangeBtn)
  36. self.uiBase:AddButtonUniqueEventListener(self.createBtn.button, self, self.OnClickCreateBtn)
  37. self.input.inputField.onValidateInput = self.input.inputField.OnValidateInput(self.OnValidateInput, self)
  38. self.input.inputField.onEndEdit:RemoveAllListeners()
  39. self.input.inputField.onEndEdit:AddListener(function(text)
  40. self:OnEndEditInput(text)
  41. end)
  42. end
  43. function UIGuildCreateView:OnHide()
  44. end
  45. function UIGuildCreateView:OnShow(data)
  46. self.controller:SetData(data)
  47. end
  48. function UIGuildCreateView:OnClose()
  49. end
  50. function UIGuildCreateView:OnDispose()
  51. self.controller:OnDispose()
  52. end
  53. function UIGuildCreateView:OnGuildEnterSuccess()
  54. self:UIClose()
  55. end
  56. function UIGuildCreateView:OnGuildCreateSuccess()
  57. self:UIClose()
  58. end
  59. function UIGuildCreateView:OnSelectGuildBadgeChange(badgeId, isChanged)
  60. if isChanged then
  61. if self.controller:SetBadgeId(badgeId) then
  62. self:RefreshBadge()
  63. end
  64. end
  65. end
  66. function UIGuildCreateView:OnClickCloseBtn()
  67. self:UIClose()
  68. end
  69. function UIGuildCreateView:OnClickChangeBtn()
  70. ManagerContainer.LuaUIMgr:Open(Enum.UIPageName.UIGuildChangeBadge, {self.controller:GetBadgeId(), self, self.OnSelectGuildBadgeChange})
  71. end
  72. function UIGuildCreateView:OnClickCreateBtn()
  73. local errorCode = self.controller:SendCreateGuildReq()
  74. if errorCode ~= 0 then
  75. ManagerContainer.LuaUIMgr:ErrorNoticeDisplay(errorCode)
  76. end
  77. end
  78. function UIGuildCreateView:OnValidateInput(text, charIndex, addedChar)
  79. local curLen = 0
  80. if addedChar >= 48 and addedChar <= 57 then -- 0-9
  81. curLen = 1
  82. elseif addedChar >= 65 and addedChar <= 90 then -- A-Z
  83. curLen = 1
  84. elseif addedChar >= 97 and addedChar <= 122 then -- a-z
  85. curLen = 1
  86. elseif addedChar >= 0x4E00 and addedChar <= 0x9FA5 then -- 中文字
  87. curLen = 1
  88. end
  89. if curLen <= 0 then return 0 end
  90. local len = GetActualStringLength(text) + curLen
  91. local max = self.controller:GetNameLengthMax()
  92. if len > max then return 0 end
  93. return addedChar
  94. end
  95. function UIGuildCreateView:OnEndEditInput(text)
  96. self.controller:SetGuildName(text)
  97. end
  98. function UIGuildCreateView:RefreshBadge()
  99. local itemLua = self.guildBadgeItem
  100. if not itemLua then return end
  101. itemLua.badge.image.sprite = nil
  102. itemLua.badge.image.enabled = false
  103. local badgeId = self.controller:GetBadgeId()
  104. local badgeCfg = ManagerContainer.CfgMgr:GetGuildBadgeCfgById(badgeId)
  105. if badgeCfg and badgeCfg.Pic and badgeCfg.Pic ~= '' then
  106. CommonUtil.LoadIcon(self, badgeCfg.Pic, function (sprite)
  107. itemLua.badge.image.sprite = sprite
  108. itemLua.badge.image.enabled = true
  109. end, 'BadgeIcon')
  110. end
  111. end
  112. function UIGuildCreateView:RefreshCost()
  113. self.icon.image.sprite = nil
  114. self.icon.image.enabled = false
  115. local itemCfgId, costNum = self.controller:GetCostInfo()
  116. local itemCfg = ManagerContainer.CfgMgr:GetItemById(itemCfgId)
  117. if itemCfg then
  118. local ownNum = self.controller:GetOwnResCountByItemId(itemCfgId)
  119. if itemCfg.Icon and itemCfg.Icon ~= '' then
  120. CommonUtil.LoadIcon(self, itemCfg.Icon, function (sprite)
  121. self.icon.image.sprite = sprite
  122. self.icon.image.enabled = true
  123. end, 'ItemIcon')
  124. end
  125. if ownNum < costNum then
  126. self.desTxt.text.text = string.format(Constant.PinkColorText, tostring(costNum))
  127. else
  128. self.desTxt.text.text = tostring(costNum)
  129. end
  130. else
  131. self.desTxt.text.text = ''
  132. end
  133. end
  134. return UIGuildCreateView