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.

320 lines
9.0 KiB

  1. -- 禁止成员同桌
  2. local ClubProhibitSameTable = class("ClubProhibitSameTable" , cc.UIView);
  3. function ClubProhibitSameTable:ctor(selectPlayerUid,jzPlayerUidList,gid, callback)--选中人的uid,已经禁止同桌玩家的UID列表
  4. ClubProhibitSameTable.super.ctor(self)
  5. local ui = loadUI("res/ui/ui_club/ui_club_prohibit_sametable.ui")
  6. self.ui = ui;
  7. self:addChild(ui);
  8. self.gID = gid
  9. self.selectPlayerUid = selectPlayerUid
  10. self.jzPlayerUidList = jzPlayerUidList or {}
  11. --table.insert(self.jzPlayerUidList,self.selectPlayerUid)
  12. self.callback = callback;
  13. end
  14. function ClubProhibitSameTable:onEnter()
  15. ClubProhibitSameTable.super.onEnter(self)
  16. --关闭按钮
  17. self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose))
  18. --确认按钮
  19. self.ui.Items.Button_Sure:registerClick(handler(self , self.onClickSure))
  20. --左边搜索玩家
  21. self.ui.Items.ImageView_fangdajing_1:registerClick(handler(self , self.onSearchPlayerL))
  22. --右边搜索玩家
  23. self.ui.Items.ImageView_fangdajing_2:registerClick(handler(self , self.onSearchPlayerR))
  24. --绑定搜索框回调事件
  25. --if self.ClubInfo then
  26. self:showPlayerInfo()
  27. self:showJZPlayerInfo()
  28. self:bindTextFildTouch();
  29. --end
  30. end
  31. --设置管理员
  32. function ClubProhibitSameTable:onClickButton(idx)
  33. if self.callback then
  34. self.callback(idx)
  35. end
  36. self:removeFromParent()
  37. end
  38. -- 关闭
  39. function ClubProhibitSameTable:onClickClose()
  40. playBtnCloseEffect()
  41. self:removeFromParent()
  42. end
  43. -- 确认按钮
  44. function ClubProhibitSameTable:onClickSure()
  45. playBtnEffect()
  46. --self:removeFromParent()
  47. app.club_php:requestSetNotDest(tonumber(self.gID), self.selectPlayerUid,self.jzPlayerUidList);
  48. self:removeFromParent()
  49. end
  50. function ClubProhibitSameTable:showPlayerInfo()
  51. local mListView = self.ui.Items.ScrollView_left;
  52. mListView:getInnerContainer():setAutoSize(true);
  53. mListView:removeAllChildren();
  54. if not app.club_php.clubPlayerList or type(app.club_php.clubPlayerList) ~= "table" then
  55. --showTooltip("无玩家");
  56. return;
  57. end
  58. self.itemT = {};
  59. local tt = {};
  60. local idx = 1;
  61. for k,v in pairsByKeys(app.club_php.clubPlayerList.list) do
  62. --操作者id
  63. --local operatorUid = app.user.loginInfo.uid
  64. local item
  65. if not self:checkIDISSelfOrSelectID(v.uid) and not self:checkIDISInJZPlayerIDList(v.uid) then--自己和设置过禁止同桌的ID不显示在左边
  66. item = self.ui.Items.Layout_player:getCopied()
  67. self:initPlayerListItem(item,v,true)
  68. mListView:addChild(item);
  69. end
  70. tt[idx] = item;
  71. idx = idx + 1;
  72. end
  73. self.itemT = tt;
  74. mListView:jumpToTopOnSizeChanged();
  75. end
  76. --通过uid在茶馆成员列表信息里面找成员信息
  77. function ClubProhibitSameTable:getPlayerInfoByUid(uid)
  78. for k,v in pairsByKeys(app.club_php.clubPlayerList.list) do
  79. if tonumber(uid) == tonumber(v.uid) then
  80. return v
  81. end
  82. end
  83. end
  84. --显示禁止同桌玩家列表
  85. function ClubProhibitSameTable:showJZPlayerInfo()
  86. local mListView = self.ui.Items.ScrollView_right;
  87. mListView:getInnerContainer():setAutoSize(true);
  88. mListView:removeAllChildren();
  89. if not app.club_php.clubPlayerList or type(app.club_php.clubPlayerList) ~= "table" then
  90. --showTooltip("无玩家");
  91. return;
  92. end
  93. --self.itemT = {};
  94. --local tt = {};
  95. --local idx = 1;
  96. for k,v in pairsByKeys(self.jzPlayerUidList) do
  97. local playerInfo = self:getPlayerInfoByUid(v)
  98. if playerInfo then
  99. local item = self.ui.Items.Layout_player:getCopied()
  100. self:initPlayerListItem(item,playerInfo)
  101. mListView:addChild(item);
  102. end
  103. --tt[idx] = item;
  104. --idx = idx + 1;
  105. end
  106. --self.itemT = tt;
  107. mListView:jumpToTopOnSizeChanged();
  108. end
  109. function ClubProhibitSameTable:bindTextFildTouch()
  110. local searchBoxLeft = self.ui.Items.TextField_search_left;
  111. local searchBoxRight = self.ui.Items.TextField_search_right;
  112. local function onTouchEndedL(touch , event)
  113. local searchCont = searchBoxLeft:getText();
  114. if searchCont == "" then
  115. self:showPlayerInfo();
  116. return;
  117. end
  118. self:onSearchPlayerL();
  119. end
  120. local function onTouchEndedR(touch , event)
  121. local searchCont = searchBoxRight:getText();
  122. if searchCont == "" then
  123. self:showJZPlayerInfo();
  124. return;
  125. end
  126. self:onSearchPlayerR();
  127. end
  128. searchBoxLeft:addEventListener(onTouchEndedL)
  129. searchBoxRight:addEventListener(onTouchEndedR)
  130. end
  131. --搜索玩家
  132. function ClubProhibitSameTable:onSearchPlayerL()
  133. --[[if not self.ClubInfo then
  134. return
  135. end--]]
  136. local searchCont = self.ui.Items.TextField_search_left:getText();
  137. if searchCont == "" then
  138. showTooltip("请输入玩家昵称或ID!");
  139. self:showPlayerInfo();
  140. return;
  141. end
  142. local mListView = self.ui.Items.ScrollView_left;
  143. mListView:removeAllChildren();
  144. self.itemT = {};
  145. if app.club_php.clubPlayerList then
  146. local playerList = app.club_php.clubPlayerList.list;
  147. if playerList then
  148. local searchNameT = {};
  149. local searchIdT = {};
  150. --操作者id
  151. local operatorUid = app.user.loginInfo.uid
  152. for k,playerInfo in pairsByKeys(playerList) do
  153. if not self:checkIDISSelfOrSelectID(playerInfo.uid) and not self:checkIDISInJZPlayerIDList(playerInfo.uid) then--自己和设置过禁止同桌的ID不显示在左边
  154. local findNameEnd = string.find(playerInfo.nick, searchCont);
  155. if findNameEnd then
  156. --昵称查找
  157. local playerItem = self.ui.Items.Layout_player:getCopied()
  158. self:initPlayerListItem(playerItem,playerInfo,true)
  159. mListView:addChild(playerItem);
  160. table.insert(self.itemT, playerItem);
  161. else
  162. --id查找
  163. local findIdEnd = string.find(playerInfo.uid, searchCont);
  164. if findIdEnd then
  165. local playerItem = self.ui.Items.Layout_player:getCopied()
  166. self:initPlayerListItem(playerItem,playerInfo,true)
  167. mListView:addChild(playerItem);
  168. table.insert(self.itemT, playerItem);
  169. end
  170. end
  171. end
  172. end
  173. local child = mListView:getChildren();
  174. local childSize = table.nums(child);
  175. mListView:jumpToTopOnSizeChanged();
  176. end
  177. end
  178. end
  179. --禁止同桌列表
  180. function ClubProhibitSameTable:onSearchPlayerR()
  181. local searchCont = self.ui.Items.TextField_search_right:getText();
  182. if searchCont == "" then
  183. showTooltip("请输入玩家昵称或ID!");
  184. self:showJZPlayerInfo();
  185. return;
  186. end
  187. local mListView = self.ui.Items.ScrollView_right;
  188. mListView:removeAllChildren();
  189. for k,v in pairsByKeys(self.jzPlayerUidList) do
  190. local playerInfo = self:getPlayerInfoByUid(v)
  191. local findNameEnd = string.find(playerInfo.nick, searchCont);
  192. local findIdEnd = string.find(playerInfo.uid, searchCont);
  193. if findNameEnd or findNameEnd then
  194. local item = self.ui.Items.Layout_player:getCopied()
  195. self:initPlayerListItem(item,playerInfo)
  196. mListView:addChild(item);
  197. end
  198. end
  199. mListView:jumpToTopOnSizeChanged();
  200. end
  201. --初始化玩家列表数据
  202. function ClubProhibitSameTable:initPlayerListItem(player,playerInfo,isLeft)--ui,player信息,是否是左边
  203. player.Items = getUIItems(player);
  204. --头像
  205. local nodeHead = player.Items.ImageView_head;
  206. local headSize = nodeHead:getContentSize();
  207. if playerInfo.icon and playerInfo.icon ~= "" then
  208. setPlayerHeadImage(playerInfo.uid, playerInfo.icon, nodeHead, false);
  209. else
  210. setDefaultHeadImg(playerInfo.sex, playerInfo.uid, nodeHead, headSize.width, false);
  211. end
  212. --昵称
  213. playerInfo.nick = getSubStringNickname(playerInfo.nick, player.Items.Text_nickname)
  214. player.Items.Text_nickname:setText(playerInfo.nick);
  215. --id号
  216. local strID = playerInfo.uid
  217. if playerInfo.agent == 1 then
  218. --是代理
  219. strID = string.format("%d(代理)", playerInfo.uid)
  220. end
  221. player.Items.Text_id:setText("ID:"..strID);
  222. if isLeft and true == isLeft then
  223. player.Items.Button_queren:registerClick(handler(self , self.onClickSetJZPlayer))
  224. player.Items.Button_quxiao:setVisible(false)
  225. player.Items.Button_queren.uid = playerInfo.uid
  226. else
  227. player.Items.Button_quxiao:registerClick(handler(self , self.onClickDelJZPlayer))
  228. player.Items.Button_queren:setVisible(false)
  229. player.Items.Button_quxiao.uid = playerInfo.uid
  230. end
  231. end
  232. --点击箭头按钮事件
  233. function ClubProhibitSameTable:onClickSetJZPlayer(event)
  234. playBtnEffect()
  235. table.insert(self.jzPlayerUidList,event.uid)
  236. self:showPlayerInfo()
  237. self:showJZPlayerInfo()
  238. end
  239. --取消禁止同桌列表玩家按钮事件
  240. function ClubProhibitSameTable:onClickDelJZPlayer(event)
  241. playBtnEffect()
  242. table.removeItem(self.jzPlayerUidList,event.uid)
  243. self:showPlayerInfo()
  244. self:showJZPlayerInfo()
  245. --[[for i=#self.jzPlayerUidList ,1,-1 do
  246. if tonumber(event.uid) == tonumber(self.jzPlayerUidList[i]) then
  247. table.remove(self.jzPlayerUidList,i)
  248. end
  249. end--]]
  250. end
  251. --判断一个ID是否在禁止同桌ID列表里面
  252. function ClubProhibitSameTable:checkIDISInJZPlayerIDList(uid)
  253. for i,v in ipairs(self.jzPlayerUidList) do
  254. if tonumber(uid) == tonumber(v) then
  255. return true
  256. end
  257. end
  258. return false
  259. end
  260. --判断ID是自己或选中的人(自己和选中的ID不显示在可选禁止列表里面)
  261. function ClubProhibitSameTable:checkIDISSelfOrSelectID(uid)
  262. if tonumber(uid) == tonumber(self.selectPlayerUid) or tonumber(uid) == tonumber(app.user.loginInfo.uid) then
  263. return true
  264. end
  265. return false
  266. end
  267. return ClubProhibitSameTable