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.

201 lines
6.0 KiB

  1. -- 主界面
  2. local ClubPlayerMatchAdjustAllHongHua = class("ClubPlayerMatchAdjustAllHongHua", cc.UIView)
  3. local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
  4. --一页30个
  5. local PAGE_COUNT = 30
  6. function ClubPlayerMatchAdjustAllHongHua:ctor(clubId)
  7. ClubPlayerMatchAdjustAllHongHua.super.ctor(self);
  8. local ui = loadUI("res/ui/ui_club/ui_club_player_match_adjust_honghua.ui");
  9. self.ui = ui;
  10. self:addChild(ui);
  11. self.clubId = clubId
  12. self.clubInfo = app.club_php.clubList[clubId]
  13. self.operatorId = app.user.loginInfo.uid
  14. self.curPage = 1
  15. self.totolPage = 1
  16. self.selectPlayer = {}
  17. --加一下这个数组,提高效率
  18. self.bSelectPlayer = {}
  19. end
  20. function ClubPlayerMatchAdjustAllHongHua:onEnter()
  21. ClubPlayerMatchAdjustAllHongHua.super.onEnter(self)
  22. self.ui.Items.Button_Sure:registerClick(handler(self , self.onClickConfirm))
  23. -- 关闭
  24. self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose))
  25. self.ui.Items.CheckBox_select:addEventListener(handler(self , self.onClickSelect))
  26. --翻页
  27. self.ui.Items.Button_page_up:registerClick(handler(self , self.onClickUpPage))
  28. self.ui.Items.Button_page_next:registerClick(handler(self , self.onClickNextPage))
  29. self:initBindEvent()
  30. self:onUpdatePlayerListEvent({type = ClubDefine.PlayListType.MATCH_MEMBER})
  31. end
  32. -- 关闭
  33. function ClubPlayerMatchAdjustAllHongHua:onClickClose()
  34. playBtnCloseEffect()
  35. self:removeFromParent()
  36. end
  37. --下一页
  38. function ClubPlayerMatchAdjustAllHongHua:onClickNextPage()
  39. playBtnEffect()
  40. if self.totolPage == 0 then
  41. return
  42. end
  43. self.curPage = self.curPage + 1
  44. if self.curPage>self.totolPage then
  45. self.curPage = self.totolPage
  46. end
  47. self:updatePlayerList()
  48. end
  49. --上一页
  50. function ClubPlayerMatchAdjustAllHongHua:onClickUpPage()
  51. playBtnEffect()
  52. if self.totolPage == 0 then
  53. return
  54. end
  55. self.curPage = self.curPage - 1
  56. if self.curPage<1 then
  57. self.curPage = 1
  58. end
  59. self:updatePlayerList()
  60. end
  61. function ClubPlayerMatchAdjustAllHongHua:onUpdatePlayerListEvent(data)
  62. if not data or not data.type then
  63. return
  64. end
  65. local mType = data.type
  66. if mType == ClubDefine.PlayListType.MATCH_MEMBER or mType == ClubDefine.PlayListType.MATCH_RECORD then
  67. local players = {}
  68. for k,v in pairs(self.clubInfo.playersMatch) do
  69. if v and v.role ~= self.clubInfo.role then
  70. table.insert(players,v)
  71. end
  72. end
  73. local function sortFunc(a, b)
  74. local aRole = tonumber(a.role)
  75. local bRole = tonumber(b.role)
  76. if aRole ~= bRole and (aRole == ClubDefine.Job.Copartner or bRole == ClubDefine.Job.Copartner
  77. or aRole == ClubDefine.Job.LevelOneCopartner or aRole == ClubDefine.Job.LevelTwoCopartner
  78. or bRole == ClubDefine.Job.LevelOneCopartner or bRole == ClubDefine.Job.LevelTwoCopartner) then
  79. if (aRole == ClubDefine.Job.LevelTwoCopartner and bRole == ClubDefine.Job.LevelOneCopartner) or (bRole == ClubDefine.Job.LevelTwoCopartner and aRole == ClubDefine.Job.LevelOneCopartner)then
  80. return aRole < bRole
  81. elseif aRole == ClubDefine.Job.Copartner or aRole == ClubDefine.Job.LevelOneCopartner or aRole == ClubDefine.Job.LevelTwoCopartner then
  82. return bRole ~= ClubDefine.Job.Manager and bRole ~= ClubDefine.Job.Creator
  83. else
  84. return aRole == ClubDefine.Job.Manager or aRole == ClubDefine.Job.Creator
  85. end
  86. end
  87. return aRole > bRole
  88. end
  89. table.sort(players,sortFunc)
  90. self:updatePlayerList(players)
  91. end
  92. end
  93. function ClubPlayerMatchAdjustAllHongHua:updatePlayerList(data)
  94. local mListView = self.ui.Items.ScrollView
  95. mListView:getInnerContainer():setAutoSize(true)
  96. mListView:removeAllChildren()
  97. mListView:hideAllBar()
  98. local players = {}
  99. if data then
  100. players = data
  101. --记录上一次排序后的players数组,点上一页下一页时用
  102. self.lastSortPlayer = players
  103. else
  104. if self.lastSortPlayer and #self.lastSortPlayer >0 then
  105. players = self.lastSortPlayer
  106. else
  107. for k,v in pairs(self.clubInfo.playersMatch) do
  108. if v and v.role ~= self.clubInfo.role then
  109. table.insert(players,v)
  110. end
  111. end
  112. end
  113. end
  114. self.totolPage = math.ceil(table.nums(players)/PAGE_COUNT)
  115. local startIndex = (self.curPage-1) * PAGE_COUNT + 1
  116. local endIndex = startIndex + PAGE_COUNT - 1
  117. self.curPageItems = {}
  118. for i=startIndex,endIndex do
  119. local v = players[i]
  120. if v then
  121. local isSel = self.bSelectPlayer[v.uid] or false
  122. item = import("luaScript.Views.Club.ClubPlayerMatchAdjustItem"):new(v,self.clubInfo.clubId,isSel,handler(self,self.onSelectCallBack))
  123. mListView:addChild(item.ui)
  124. table.insert(self.curPageItems,item)
  125. end
  126. end
  127. mListView:jumpToTopOnSizeChanged()
  128. self.ui.Items.Text_Cur_page:setString(self.curPage)
  129. self.ui.Items.Text_Total_page:setString("/"..self.totolPage)
  130. if self.totolPage == 0 then
  131. self.ui.Items.Text_Total_page:setString("/1")
  132. end
  133. end
  134. function ClubPlayerMatchAdjustAllHongHua:onSelectCallBack(player,isDel)
  135. if isDel then
  136. table.removeItem(self.selectPlayer,player.uid)
  137. self.bSelectPlayer[player.uid] = false
  138. else
  139. table.insert(self.selectPlayer,player.uid)
  140. self.bSelectPlayer[player.uid] = true
  141. end
  142. end
  143. function ClubPlayerMatchAdjustAllHongHua:initBindEvent()
  144. --绑定请求成员列表成功回调事件
  145. self:bindEvent(app.club_php , GAME_EVENT.CLUB_PLAYER_LIST , handler(self , self.onUpdatePlayerListEvent))
  146. end
  147. function ClubPlayerMatchAdjustAllHongHua:onClickSelect()
  148. playBtnEffect()
  149. local isDel = not self.ui.Items.CheckBox_select:getSelectedState()
  150. for _,v in ipairs(self.curPageItems) do
  151. v:getSelectBox():setSelectedState(self.ui.Items.CheckBox_select:getSelectedState())
  152. end
  153. --清空数据
  154. self.selectPlayer = {}
  155. self.bSelectPlayer = {}
  156. for k,v in pairs(self.lastSortPlayer) do
  157. if v.role ~= self.clubInfo.role then
  158. self:onSelectCallBack(v,isDel)
  159. end
  160. end
  161. end
  162. function ClubPlayerMatchAdjustAllHongHua:onClickConfirm()
  163. local function callback()
  164. self:removeFromParent()
  165. end
  166. local view = import("luaScript.Views.Club.ClubPlayerMatchAdjustHongHua"):new(self.clubId,self.selectPlayer,callback)
  167. view:setAnchorPoint(cc.p(0.5, 0.5))
  168. app:showWaitDialog(view);
  169. end
  170. return ClubPlayerMatchAdjustAllHongHua;