源战役客户端
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

95 lines
2.8 KiB

  1. -- <*
  2. -- @Author: Saber
  3. -- @Description: 社团红包界面
  4. -- *>
  5. GuildRedPacketView = GuildRedPacketView or BaseClass(BaseView)
  6. local GuildRedPacketView = GuildRedPacketView
  7. function GuildRedPacketView:__init()
  8. self.base_file = "redPacket"
  9. self.layout_file = "GuildRedPacketView"
  10. self.layer_name = "Activity"
  11. self.destroy_imm = true
  12. self.use_background = true
  13. self.blur_activity_bg = true
  14. self.use_show_anim = true
  15. self.use_hide_anim = true
  16. self.model = RedPacketModel:GetInstance()
  17. self.load_callback = function ()
  18. self:LoadSuccess()
  19. self:AddEvent()
  20. self.model:Fire(RedPacketModel.REQUEST_CCMD_EVENT,33901) -- 请求一次社团红包信息
  21. end
  22. self.open_callback = function ( )
  23. self:OpenSuccess()
  24. end
  25. self.destroy_callback = function ( )
  26. self:DestroySuccess()
  27. end
  28. end
  29. function GuildRedPacketView:Open( )
  30. --self.data = data
  31. BaseView.Open(self)
  32. end
  33. function GuildRedPacketView:LoadSuccess()
  34. local nodes = {
  35. "content",
  36. "content/red_scroll", "content/red_scroll/Viewport/red_con", "content/empty_bg:obj:raw",
  37. }
  38. self:GetChildren(nodes)
  39. lua_resM:setOutsideRawImage(self, self.empty_bg_raw, GameResPath.GetRoleBg("team_empty_bg_small"), false)
  40. local function close_callback()
  41. self:Close()
  42. end
  43. self.tabWindowComponent = UITabWindow.New(self.transform, {}, nil, close_callback, self.background_wnd, self.content, UITabWindow.SizeSmallNoTab, nil, nil, false)
  44. self.tabWindowComponent:SetTitleText("社团红包")
  45. self.tabWindowComponent:SetBackgroundRes("WindowNew2_bg")
  46. end
  47. function GuildRedPacketView:AddEvent()
  48. local function update_redpacket()
  49. self:UpdateView()
  50. end
  51. self:BindEvent(self.model, RedPacketModel.UPDATE_GUILD_RP_LIST, update_redpacket)
  52. end
  53. function GuildRedPacketView:OpenSuccess()
  54. self:UpdateView()
  55. end
  56. function GuildRedPacketView:UpdateView()
  57. local red_list = self.model:GetGuildRedpacketList()
  58. self.red_item_creator = self.red_item_creator or self:AddUIComponent(UI.ItemListCreator)
  59. local info = {
  60. data_list = red_list,
  61. item_con = self.red_con,
  62. scroll_view = self.red_scroll,
  63. item_class = GuildRedPacketItem,
  64. item_height = 307,
  65. item_width = 224,
  66. start_x = -6.5,
  67. start_y = 21,
  68. space_x = 4,
  69. space_y = -12,
  70. create_frequency = 0.01,
  71. alignment = UnityEngine.TextAnchor.UpperLeft,
  72. on_update_item = function(item, i, v)
  73. item:SetData(v)
  74. end,
  75. }
  76. self.red_item_creator:UpdateItems(info)
  77. self.empty_bg_obj:SetActive(#red_list <= 0)
  78. end
  79. function GuildRedPacketView:DestroySuccess( )
  80. if self.tabWindowComponent then
  81. self.tabWindowComponent:DeleteMe()
  82. self.tabWindowComponent = nil
  83. end
  84. end