KLChangeAttrSchemePanel.lua 5.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155
  1. ---@class KLChangeAttrSchemePanel:UIKmlLuaPanelBase
  2. ---@field view KLChangeAttrSchemePanelView
  3. local KLChangeAttrSchemePanel = class(UIKmlLuaPanelBase)
  4. local this =KLChangeAttrSchemePanel
  5. ---创建时调用一次
  6. function this:Init()
  7. self.isShow = false
  8. end
  9. ---注册UI事件和服务器消息
  10. function this:RegistEvents()
  11. GUI:AddOnClickEvent(self.view.closeBtn, self, self.CloseSelf)
  12. GUI:AddOnClickEvent(self.view.edit_btn, self, self.edit_btn)
  13. GUI:AddOnClickEvent(self.view.btn_first_scheme, self, self.btn_first_scheme)
  14. GUI:AddOnClickEvent(self.view.btn_second_scheme, self, self.btn_second_scheme)
  15. GUI:AddOnClickEvent(self.view.btn_choice_scheme_show, self, self.btn_choice_scheme_show)
  16. GUI:AddOnClickEvent(self.view.btn_exchange_point, self, self.btn_exchange_point)
  17. GUI:AddOnClickEvent(self.view.edit_CloseBtn, self, self.edit_CloseBtn)
  18. GUI:AddOnClickEvent(self.view.edit_Cancel, self, self.edit_CloseBtn)
  19. GUI:AddOnClickEvent(self.view.edit_Enter, self, self.edit_Enter)
  20. end
  21. ---创建或者刷新界面数据时调用
  22. function this:Refresh()
  23. self.firstName = "加点方案1"
  24. self.secondName = "加点方案2"
  25. if PrivilegeCardManager.freeFirstSwitchInfo then
  26. if PrivilegeCardManager.freeFirstSwitchInfo.name then
  27. self.firstName = PrivilegeCardManager.freeFirstSwitchInfo.name
  28. end
  29. end
  30. if PrivilegeCardManager.freeSecondSwitchInfo then
  31. if PrivilegeCardManager.freeSecondSwitchInfo.name then
  32. self.secondName = PrivilegeCardManager.freeSecondSwitchInfo.name
  33. end
  34. end
  35. GUI:Button_setTitleText(self.view.btn_first_scheme, self.firstName)
  36. GUI:Button_setTitleText(self.view.btn_second_scheme, self.secondName)
  37. self.attrType = PrivilegeCardManager.currentAttrType
  38. if self.attrType == 1 then
  39. GUI:Text_setString(self.view.name_input, self.firstName)
  40. else
  41. GUI:Text_setString(self.view.name_input, self.secondName)
  42. end
  43. end
  44. function this:edit_btn()
  45. if self.isShow then
  46. self:btn_choice_scheme_show()
  47. end
  48. GUI:Text_setString(self.view.attr_Name_Input, "")
  49. GUI:setVisible(self.view.edit_panel, true)
  50. end
  51. function this:btn_choice_scheme_show()
  52. if self.isShow then
  53. GUI:setVisible(self.view.layout_scheme, false)
  54. else
  55. GUI:setVisible(self.view.layout_scheme, true)
  56. if self.attrType == 1 then
  57. GUI:Button_loadTextureNormal(self.view.btn_first_scheme,"bg_holidayDraw","Atlas/UITeamMainInfoPanel_Out.spriteatlas")
  58. GUI:Button_loadTextureNormal(self.view.btn_second_scheme,"img_mainRBbg","Atlas/UITeamMainInfoPanel_Out.spriteatlas")
  59. else
  60. GUI:Button_loadTextureNormal(self.view.btn_first_scheme,"img_mainRBbg","Atlas/UITeamMainInfoPanel_Out.spriteatlas")
  61. GUI:Button_loadTextureNormal(self.view.btn_second_scheme,"bg_holidayDraw","Atlas/UITeamMainInfoPanel_Out.spriteatlas")
  62. end
  63. end
  64. self.isShow = not self.isShow
  65. end
  66. function this:btn_first_scheme()
  67. GUI:Text_setString(self.view.name_input, self.firstName)
  68. self:btn_choice_scheme_show()
  69. self.attrType = 1
  70. end
  71. function this:btn_second_scheme()
  72. GUI:Text_setString(self.view.name_input, self.secondName)
  73. self:btn_choice_scheme_show()
  74. self.attrType = 2
  75. end
  76. function this:btn_exchange_point()
  77. if self.attrType ~= PrivilegeCardManager.currentAttrType then
  78. SL:SendLuaNetMsg(LuaMessageIdToSever.REQ_CHANGE_ROLE_ATTR_POINT_PROGRAMME, self.attrType)
  79. PrivilegeCardManager.attrNeedRefresh = true
  80. end
  81. self:CloseSelf()
  82. end
  83. function this:edit_Enter()
  84. local textName = GUI:GetInputText(self.view.attr_Name_Input)
  85. if string.isNullOrEmpty(textName) then
  86. SL:TipMessage( SL:GetConfig('cfg_string',275).text, 1, NoticeType.NoticeMid )--"名称不能为空",
  87. elseif string.find(textName, "%s") ~= nil then
  88. SL:TipMessage( SL:GetConfig('cfg_string',276).text,1, NoticeType.NoticeMid )--"名称中不能包含空格",
  89. elseif self:GetStrLen(textName) >= 10 then
  90. SL:TipMessage( SL:GetConfig('cfg_string',277).text,1, NoticeType.NoticeMid )--"名称过长",
  91. else
  92. GUI:SetActive(self.view.edit_panel, false)
  93. if self.attrType == 1 then
  94. self.firstName = textName
  95. GUI:Button_setTitleText(self.view.btn_first_scheme, self.firstName)
  96. else
  97. self.secondName = textName
  98. GUI:Button_setTitleText(self.view.btn_second_scheme, self.secondName)
  99. end
  100. GUI:Text_setString(self.view.name_input, textName)
  101. PrivilegeCardManager.SendMessageSetFreeAttrInfo(self.attrType, nil, textName)
  102. end
  103. end
  104. function this:edit_CloseBtn()
  105. GUI:setVisible(self.view.edit_panel, false)
  106. end
  107. function this:CloseSelf()
  108. GUI:UIPanel_Close(self.filePath)
  109. end
  110. function this:Close()
  111. end
  112. function this:GetStrLen(inputstr)
  113. if not inputstr or type(inputstr) ~= "string" or #inputstr <= 0 then
  114. return nil
  115. end
  116. local length = 0 -- 字符的个数
  117. local i = 1
  118. while true do
  119. local lengthCount = 1
  120. local curByte = string.byte(inputstr, i)
  121. local byteCount = 1
  122. if curByte > 239 then
  123. byteCount = 4 -- 4字节字符
  124. lengthCount = 2
  125. elseif curByte > 223 then
  126. lengthCount = 2
  127. byteCount = 3 -- 汉字
  128. elseif curByte > 128 then
  129. byteCount = 2 -- 双字节字符
  130. else
  131. byteCount = 1 -- 单字节字符
  132. end
  133. i = i + byteCount
  134. length = length + lengthCount
  135. if i > #inputstr then
  136. break
  137. end
  138. end
  139. return length
  140. end
  141. return this