源战役客户端
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.

214 lines
7.4 KiB

преди 4 седмици
  1. SocialityAddFriendView = SocialityAddFriendView or BaseClass(BaseItem)
  2. local SocialityAddFriendView = SocialityAddFriendView
  3. function SocialityAddFriendView:__init()
  4. self.base_file = "sociality"
  5. self.layout_file = "SocialityAddFriendView"
  6. self.model = SocialityModel:getInstance()
  7. self.item_list = {}
  8. self.item_list2 = {}
  9. self:Load()
  10. end
  11. function SocialityAddFriendView:Load_callback()
  12. self.RecommendFriendScrollView = self:GetChild("RecommendFriendScrollView")
  13. self.ScrollViewViewport = self:GetChild("RecommendFriendScrollView/Viewport")
  14. self.ScrollViewCon = self:GetChild("RecommendFriendScrollView/Viewport/Content")
  15. self.applyFriendScrollView = self:GetChild("applyFriendScrollView")
  16. self.applyFriendScrollViewViewport = self:GetChild("applyFriendScrollView/Viewport")
  17. self.applyFriendScrollViewCon = self:GetChild("applyFriendScrollView/Viewport/Content")
  18. self.input_con = self:GetChild("TextInput").gameObject
  19. self.input_text = self:GetChild("TextInput"):GetComponent("TMP_InputField")
  20. self.recommendFriendText = self:GetChild("recommendFriendText"):GetComponent("TextMeshProUGUI")
  21. self.searchBtn = self:GetChild("searchBtn").gameObject
  22. self.changeBtn = self:GetChild("changeBtn").gameObject
  23. self.onekeyRefuse = self:GetChild("onekeyRefuse").gameObject
  24. self.onekeyApply = self:GetChild("onekeyApply").gameObject
  25. self.bg_img = self:GetChild("bg"):GetComponent("Image")
  26. self.empty_apply = self:GetChild("empty_apply").gameObject
  27. self.empty_add = self:GetChild("empty_add").gameObject
  28. self.empty_girl = self:GetChild("empty_apply/empty/girl"):GetComponent("RawImage")
  29. self.empty_talk_bg_1 = self:GetChild("empty_apply/empty/image"):GetComponent("RawImage")
  30. self.empty_talk_bg_2 = self:GetChild("empty_add/image"):GetComponent("RawImage")
  31. self.empty_apply:SetActive(false)
  32. self.empty_add:SetActive(false)
  33. self.scroll_view_rect = self.RecommendFriendScrollView:GetComponent("ScrollRect")
  34. self.scroll_view_rect.horizontal = false
  35. self.scroll_view_rect.vertical = true
  36. self.input_text.characterLimit = 20
  37. --加载成功后就会自动刷新一遍
  38. lua_resM:setOutsideImageSprite(self, self.bg_img, GameResPath.GetSocialityImage("sociality_add_bg"))
  39. lua_resM:setOutsideRawImage(self, self.empty_girl, GameResPath.GetRoleBg("team_empty_bg_267_589"))
  40. lua_resM:setOutsideRawImage(self, self.empty_talk_bg_1, GameResPath.GetViewBigBg("com_empty_bg1"))
  41. lua_resM:setOutsideRawImage(self, self.empty_talk_bg_2, GameResPath.GetViewBigBg("com_empty_bg1"))
  42. self:AddEvents()
  43. if self.need_refreshData then
  44. self:UpdateView()
  45. end
  46. self.recommendFriendText.text = "推荐好友"
  47. --请求好友推荐
  48. self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14001, 0)
  49. --请求好友申请列表
  50. self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14006)
  51. end
  52. function SocialityAddFriendView:AddEvents( )
  53. local function onClickBtnHandler(target)
  54. if target == self.searchBtn then
  55. --查找好友
  56. local str = self.input_text.text
  57. if str == "" then
  58. Message.show("请输入玩家昵称")
  59. else
  60. self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14002, str)
  61. self.input_text.text = ""
  62. end
  63. elseif target == self.changeBtn then
  64. --请求好友推荐
  65. self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14001, 1)
  66. self.recommendFriendText.text = "推荐好友"
  67. elseif target == self.onekeyApply then
  68. --一键通过申请
  69. if self.len==0 then
  70. Message.show("暂无好友申请")
  71. else
  72. self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14004, 1)
  73. end
  74. elseif target == self.onekeyRefuse then
  75. --一键拒绝申请
  76. if self.len==0 then
  77. Message.show("暂无好友申请")
  78. else
  79. self.model:Fire(SocialityModel.REQUEST_CCMD_EVENT, 14004, 0)
  80. end
  81. end
  82. end
  83. AddClickEvent(self.searchBtn,onClickBtnHandler)
  84. AddClickEvent(self.changeBtn,onClickBtnHandler)
  85. AddClickEvent(self.onekeyApply,onClickBtnHandler)
  86. AddClickEvent(self.onekeyRefuse,onClickBtnHandler)
  87. local function onUpdate( list )
  88. self:UpdateAddFriendView(list)
  89. end
  90. self.event_id = self.model:Bind(SocialityModel.UPDATE_ADD_FRIEND_VIEW, onUpdate)
  91. local function onUpdate2( )
  92. self:UpdateApplyFriendView()
  93. end
  94. self.event_id2 = self.model:Bind(SocialityModel.UPDATE_APPLY_FRIEND_VIEW, onUpdate2)
  95. local function onUpdateRecommendText()
  96. self.recommendFriendText.text = "查找结果"
  97. end
  98. self:BindEvent(self.model,SocialityModel.UPDATE_RECOMMEND_TEXT,onUpdateRecommendText)
  99. end
  100. function SocialityAddFriendView:UpdateView( )
  101. end
  102. function SocialityAddFriendView:SetData( data )
  103. self.data = data
  104. if self.is_loaded then
  105. self.need_refreshData = false
  106. self:UpdateView()
  107. else
  108. self.need_refreshData = true
  109. end
  110. end
  111. function SocialityAddFriendView:__delete( )
  112. if self.event_id then
  113. self.model:UnBind(self.event_id)
  114. self.event_id = nil
  115. end
  116. if self.event_id2 then
  117. self.model:UnBind(self.event_id2)
  118. self.event_id2 = nil
  119. end
  120. for k,v in pairs(self.item_list) do
  121. v:DeleteMe()
  122. end
  123. self.item_list = {}
  124. for k,v in pairs(self.item_list2) do
  125. v:DeleteMe()
  126. end
  127. self.item_list2 = {}
  128. end
  129. --这个是更新推荐好友页面
  130. function SocialityAddFriendView:UpdateAddFriendView( list )
  131. self.list = list
  132. self.empty_add:SetActive(false)
  133. for i,v in ipairs(self.item_list) do
  134. v:SetVisible(false)
  135. end
  136. if not list or #list == 0 then
  137. self.empty_add:SetActive(true)
  138. return
  139. end
  140. for i,v in ipairs(list) do
  141. local item = self.item_list[i]
  142. if not item then
  143. item = SocialityAddFriendItem.New(self.ScrollViewCon)
  144. self.item_list[i] = item
  145. end
  146. item:SetVisible(true)
  147. item:SetData(v)
  148. item:SetPosition(3,-106*(i-1)-4)
  149. end
  150. SetSizeDeltaY(self.ScrollViewCon.transform, 110 * #list)
  151. for i=#list+1, #self.item_list do
  152. self.item_list[i]:SetVisible(false)
  153. end
  154. end
  155. --这个是更新申请好友的方法
  156. function SocialityAddFriendView:UpdateApplyFriendView( ... )
  157. local info = self.model:GetApplyInfo()
  158. self.empty_apply:SetActive(false)
  159. self.onekeyRefuse:SetActive(true)
  160. self.onekeyApply:SetActive(true)
  161. for i,v in ipairs(self.item_list2) do
  162. v:SetVisible(false)
  163. end
  164. if not info or not info.ask_list or #info.ask_list == 0 then
  165. self.empty_apply:SetActive(true)
  166. self.onekeyRefuse:SetActive(false)
  167. self.onekeyApply:SetActive(false)
  168. return
  169. end
  170. self.len = #info.ask_list
  171. for i,v in ipairs(info.ask_list) do
  172. local item = self.item_list2[i]
  173. if not item then
  174. item = SocialityApplyItem.New(self.applyFriendScrollViewCon)
  175. self.item_list2[i] = item
  176. end
  177. item:SetVisible(true)
  178. item:SetData(v)
  179. item:SetPosition(3.5,-108*(i-1)-4.5)
  180. end
  181. for i=self.len+1, #self.item_list2 do
  182. self.item_list2[i]:SetVisible(false)
  183. end
  184. SetSizeDeltaY(self.applyFriendScrollViewCon.transform, 110 * #info.ask_list)
  185. end