源战役客户端
您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

160 行
5.4 KiB

  1. SocialityFriendSelectView = SocialityFriendSelectView or BaseClass(BaseView)
  2. function SocialityFriendSelectView:__init()
  3. self.base_file = "sociality"
  4. self.layout_file = "SocialityFriendSelectView"
  5. self.layer_name = "Top"
  6. self.destroy_imm = true
  7. self.use_background = true
  8. self.change_scene_close = true
  9. self.is_set_zdepth = true
  10. self.click_bg_toClose = true
  11. self.model = SocialityModel:getInstance()
  12. self.item_list = {}
  13. --预加载的Item
  14. self:AddPreLoadList("sociality", {"SocialityFriendSelectItem"})
  15. --回调方法
  16. self.load_callback = function()
  17. self:LoadSuccess()
  18. self:InitEvent()
  19. end
  20. self.open_callback = function()
  21. self:UpdateView()
  22. end
  23. self.close_callback = function()
  24. self.model.select_info = nil
  25. self.model.is_open_give_view = false
  26. end
  27. self.destroy_callback = function()
  28. self:Clear()
  29. end
  30. end
  31. function SocialityFriendSelectView:Open( show_data_list,op_type )
  32. self.show_data_list = show_data_list
  33. self.op_type = op_type or 1--点击类型,1为显示右侧按钮,2为不显示按钮,整个区域做点击热区
  34. BaseView.Open(self)
  35. end
  36. function SocialityFriendSelectView:LoadSuccess()
  37. self.ScrollView,
  38. self.ScrollViewViewport,
  39. self.ScrollViewCon
  40. = GetChildTransforms(self.transform,
  41. {
  42. "ScrollView",
  43. "ScrollView/Viewport",
  44. "ScrollView/Viewport/Content",
  45. })
  46. -- self.confirmBtn = self:GetChild("confirmBtn").gameObject
  47. self.con_empty_obj = self:GetChild("con_empty").gameObject
  48. self.empty_des = self:GetChild("con_empty/lb_empty"):GetComponent("TextMeshProUGUI")
  49. self.get_friend_btn = self:GetChild("con_empty/get_friend_btn").gameObject
  50. self.get_friend_lb = self:GetChild("con_empty/get_friend_lb"):GetComponent("TextMeshProUGUI")
  51. self.get_friend_btn2 = self:GetChild("con_empty/get_friend_text").gameObject
  52. end
  53. function SocialityFriendSelectView:InitEvent( )
  54. -- local on_click = function ( click_obj )
  55. -- if self.confirmBtn == click_obj then
  56. -- if not self.model.select_info then
  57. -- Message.show("请选中一个好友")
  58. -- return
  59. -- end
  60. -- self.model.need_show_operation = "none"--收回14010协议后既不打开互动面板,也不对送礼界面进行开闭
  61. -- self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14010, self.model.select_info.role_id)
  62. -- self.model:Fire(SocialityModel.SELECT_FIREND, self.model.select_info)
  63. -- GlobalEventSystem:Fire(EventName.OPEN_SOCIAL_FRIEND_SEL_VIEW, false)
  64. -- self.model.select_info = nil
  65. -- end
  66. -- end
  67. -- AddClickEvent(self.confirmBtn, on_click)
  68. local on_click = function ( click_obj )
  69. if self.get_friend_btn == click_obj then
  70. GlobalEventSystem:Fire(EventName.OPEN_SOCIALITY_VIEW,2)
  71. MateModel:GetInstance():Fire(MateConst.CLOSE_ASK_MATE_VIEW)
  72. self:Close()
  73. elseif self.get_friend_btn2 == click_obj then
  74. GlobalEventSystem:Fire(EventName.OPEN_SOCIALITY_VIEW,2)
  75. GlobalEventSystem:Fire(EventName.CLOSE_SOCIAL_FLOWER_VIEW)
  76. self:Close()
  77. end
  78. end
  79. AddClickEvent(self.get_friend_btn, on_click)
  80. AddClickEvent(self.get_friend_btn2, on_click)
  81. end
  82. function SocialityFriendSelectView:Clear( )
  83. for k,v in pairs(self.item_list) do
  84. v:DeleteMe()
  85. end
  86. self.item_list = {}
  87. end
  88. function SocialityFriendSelectView:UpdateView()
  89. local list = {}
  90. if not self.show_data_list then
  91. local all_friend_list = self.model:GetGiveList(self.model:GetSearchInfo())
  92. for k,v in pairs(all_friend_list) do
  93. if v.role_id~=1 then
  94. table.insert(list,v)
  95. end
  96. end
  97. else
  98. list = self.show_data_list
  99. end
  100. if #list > 0 then
  101. for i,v in ipairs(list) do
  102. local item = self.item_list[i]
  103. if not item then
  104. item = SocialityFriendSelectItem.New(self.ScrollViewCon)
  105. self.item_list[i] = item
  106. end
  107. item:SetVisible(true)
  108. item:SetData(v,i,self.op_type)
  109. -- --给selectItem添加按键绑定
  110. -- local function onBtnClickHandler()
  111. -- self:SetSelectIndex(i)
  112. -- end
  113. -- if item.gameObject then
  114. -- AddClickEvent(self.item_list[i].gameObject, onBtnClickHandler,2)
  115. -- end
  116. end
  117. self.con_empty_obj:SetActive(false)
  118. else
  119. self.con_empty_obj:SetActive(true)
  120. if self.op_type == 2 then
  121. self.empty_des.text = "<size=16> 您 暂无好友 或 好友都不在线哦!"
  122. self.get_friend_lb.text = "前往添加新的好友"
  123. self.get_friend_btn:SetActive(true)
  124. self.get_friend_btn2:SetActive(false)
  125. else
  126. self.empty_des.text = "暂无符合条件的好友~\n\n"
  127. self.get_friend_lb.text = ""
  128. self.get_friend_btn:SetActive(false)
  129. self.get_friend_btn2:SetActive(true)
  130. end
  131. end
  132. for i=#list+1, #self.item_list do
  133. self.item_list[i]:SetVisible(false)
  134. end
  135. end
  136. --设置selectItem的选中状态
  137. -- function SocialityFriendSelectView:SetSelectIndex(index)
  138. -- for i,v in ipairs(self.item_list) do
  139. -- if v.index == index then
  140. -- v:SetSelected(true)
  141. -- else
  142. -- v:SetSelected(false)
  143. -- end
  144. -- end
  145. -- end