KLUINearTeamPanel.lua 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899
  1. ---@class KLUINearTeamPanel:UIKmlLuaPanelBase
  2. ---@field view KLUINearTeamPanelView
  3. local KLUINearTeamPanel = class(UIKmlLuaPanelBase)
  4. local this =KLUINearTeamPanel
  5. ---创建时调用一次
  6. function this:Init()
  7. GUI:DataListInitData( self.view.near_team_datalist,function()
  8. return self:ListItemCountFunc()
  9. end,function(realIndex)
  10. return self:ListItemGetFunc(realIndex)
  11. end,function(realIndex, kmlcontrol)
  12. return self:ListItemInitFunc(realIndex, kmlcontrol)
  13. end, function(realIndex, kmlcontrol)
  14. return self:ListItemUpdateFunc(realIndex, kmlcontrol)
  15. end)
  16. end
  17. function this:ListItemCountFunc()
  18. return #self.teamList
  19. end
  20. function this:ListItemGetFunc(realIndex)
  21. end
  22. function this:ListItemInitFunc(realIndex, kmlcontrol)
  23. end
  24. function this:ListItemUpdateFunc(realIndex, kmlcontrol)
  25. local team_info = self.teamList[realIndex + 1]
  26. local team_name = GUI:GetChildControl(self.view.near_team_datalist,realIndex,'team_name')
  27. local team_num = GUI:GetChildControl(self.view.near_team_datalist,realIndex,'team_num')
  28. local apply_btn = GUI:GetChildControl(self.view.near_team_datalist,realIndex,'apply_btn')
  29. local had_apply_btn = GUI:GetChildControl(self.view.near_team_datalist,realIndex,'had_apply_btn')
  30. local in_team_btn = GUI:GetChildControl(self.view.near_team_datalist,realIndex,'in_team_btn')
  31. GUI:Text_setString(team_name, team_info.roleInfo.name)
  32. GUI:Text_setString(team_num, tostring(team_info.count))
  33. local teamId = SL:TeamInfo_GetTeamId()
  34. if teamId == team_info.teamId then
  35. GUI:SetActive(apply_btn, false)
  36. GUI:SetActive(had_apply_btn, false)
  37. GUI:SetActive(in_team_btn, true)
  38. else
  39. if team_info.applyState == 0 then
  40. GUI:SetActive(apply_btn, true)
  41. GUI:SetActive(had_apply_btn, false)
  42. GUI:SetActive(in_team_btn, false)
  43. GUI:AddOnClickEvent(apply_btn, self, self.ApplyTeam, {teamId = team_info.teamId})
  44. else
  45. GUI:SetActive(apply_btn, false)
  46. GUI:SetActive(had_apply_btn, true)
  47. GUI:SetActive(in_team_btn, false)
  48. GUI:AddOnClickEvent(apply_btn, self, self.HadApplyTeam)
  49. end
  50. end
  51. end
  52. ---创建或者刷新界面数据时调用
  53. function this:Refresh()
  54. SL:RequestNearTeam()
  55. end
  56. function this:ApplyTeam(_, eventData)
  57. local teamId = SL:TeamInfo_GetTeamId()
  58. if teamId and teamId > 0 then
  59. if teamId == eventData.teamId then
  60. SL:CommonTipsMessage({stringTblID=236,showTips = "您已在队伍中,无需申请"})
  61. else
  62. SL:CommonTipsMessage({stringTblID=237,showTips = "您已加入其他队伍,无法申请该队伍"})
  63. end
  64. else
  65. SL:RequestApplyAgree(eventData.teamId)
  66. end
  67. end
  68. function this:HadApplyTeam()
  69. SL:CommonTipsMessage({ stringTblID=238,showTips = "请勿重复申请" })
  70. end
  71. ---注册UI事件和服务器消息
  72. function this:RegistEvents()
  73. SL:RegisterLuaNetMsg(MessageDef.ResNearbyTeamListMessage, self.ResNearbyTeamListMessage, self)
  74. end
  75. ---@param message TeamProto.NearbyTeamList
  76. function this:ResNearbyTeamListMessage(_, message)
  77. if message then
  78. self.teamList = message.nearbyTeam
  79. end
  80. GUI:DataListUpdateData(self.view.near_team_datalist)
  81. end
  82. function this:Close()
  83. end
  84. return this