-- 禁止成员同桌 local ClubProhibitSameTable = class("ClubProhibitSameTable" , cc.UIView); function ClubProhibitSameTable:ctor(selectPlayerUid,jzPlayerUidList,gid, callback)--选中人的uid,已经禁止同桌玩家的UID列表 ClubProhibitSameTable.super.ctor(self) local ui = loadUI("res/ui/ui_club/ui_club_prohibit_sametable.ui") self.ui = ui; self:addChild(ui); self.gID = gid self.selectPlayerUid = selectPlayerUid self.jzPlayerUidList = jzPlayerUidList or {} --table.insert(self.jzPlayerUidList,self.selectPlayerUid) self.callback = callback; end function ClubProhibitSameTable:onEnter() ClubProhibitSameTable.super.onEnter(self) --关闭按钮 self.ui.Items.Button_Close:registerClick(handler(self , self.onClickClose)) --确认按钮 self.ui.Items.Button_Sure:registerClick(handler(self , self.onClickSure)) --左边搜索玩家 self.ui.Items.ImageView_fangdajing_1:registerClick(handler(self , self.onSearchPlayerL)) --右边搜索玩家 self.ui.Items.ImageView_fangdajing_2:registerClick(handler(self , self.onSearchPlayerR)) --绑定搜索框回调事件 --if self.ClubInfo then self:showPlayerInfo() self:showJZPlayerInfo() self:bindTextFildTouch(); --end end --设置管理员 function ClubProhibitSameTable:onClickButton(idx) if self.callback then self.callback(idx) end self:removeFromParent() end -- 关闭 function ClubProhibitSameTable:onClickClose() playBtnCloseEffect() self:removeFromParent() end -- 确认按钮 function ClubProhibitSameTable:onClickSure() playBtnEffect() --self:removeFromParent() app.club_php:requestSetNotDest(tonumber(self.gID), self.selectPlayerUid,self.jzPlayerUidList); self:removeFromParent() end function ClubProhibitSameTable:showPlayerInfo() local mListView = self.ui.Items.ScrollView_left; mListView:getInnerContainer():setAutoSize(true); mListView:removeAllChildren(); if not app.club_php.clubPlayerList or type(app.club_php.clubPlayerList) ~= "table" then --showTooltip("无玩家"); return; end self.itemT = {}; local tt = {}; local idx = 1; for k,v in pairsByKeys(app.club_php.clubPlayerList.list) do --操作者id --local operatorUid = app.user.loginInfo.uid local item if not self:checkIDISSelfOrSelectID(v.uid) and not self:checkIDISInJZPlayerIDList(v.uid) then--自己和设置过禁止同桌的ID不显示在左边 item = self.ui.Items.Layout_player:getCopied() self:initPlayerListItem(item,v,true) mListView:addChild(item); end tt[idx] = item; idx = idx + 1; end self.itemT = tt; mListView:jumpToTopOnSizeChanged(); end --通过uid在茶馆成员列表信息里面找成员信息 function ClubProhibitSameTable:getPlayerInfoByUid(uid) for k,v in pairsByKeys(app.club_php.clubPlayerList.list) do if tonumber(uid) == tonumber(v.uid) then return v end end end --显示禁止同桌玩家列表 function ClubProhibitSameTable:showJZPlayerInfo() local mListView = self.ui.Items.ScrollView_right; mListView:getInnerContainer():setAutoSize(true); mListView:removeAllChildren(); if not app.club_php.clubPlayerList or type(app.club_php.clubPlayerList) ~= "table" then --showTooltip("无玩家"); return; end --self.itemT = {}; --local tt = {}; --local idx = 1; for k,v in pairsByKeys(self.jzPlayerUidList) do local playerInfo = self:getPlayerInfoByUid(v) if playerInfo then local item = self.ui.Items.Layout_player:getCopied() self:initPlayerListItem(item,playerInfo) mListView:addChild(item); end --tt[idx] = item; --idx = idx + 1; end --self.itemT = tt; mListView:jumpToTopOnSizeChanged(); end function ClubProhibitSameTable:bindTextFildTouch() local searchBoxLeft = self.ui.Items.TextField_search_left; local searchBoxRight = self.ui.Items.TextField_search_right; local function onTouchEndedL(touch , event) local searchCont = searchBoxLeft:getText(); if searchCont == "" then self:showPlayerInfo(); return; end self:onSearchPlayerL(); end local function onTouchEndedR(touch , event) local searchCont = searchBoxRight:getText(); if searchCont == "" then self:showJZPlayerInfo(); return; end self:onSearchPlayerR(); end searchBoxLeft:addEventListener(onTouchEndedL) searchBoxRight:addEventListener(onTouchEndedR) end --搜索玩家 function ClubProhibitSameTable:onSearchPlayerL() --[[if not self.ClubInfo then return end--]] local searchCont = self.ui.Items.TextField_search_left:getText(); if searchCont == "" then showTooltip("请输入玩家昵称或ID!"); self:showPlayerInfo(); return; end local mListView = self.ui.Items.ScrollView_left; mListView:removeAllChildren(); self.itemT = {}; if app.club_php.clubPlayerList then local playerList = app.club_php.clubPlayerList.list; if playerList then local searchNameT = {}; local searchIdT = {}; --操作者id local operatorUid = app.user.loginInfo.uid for k,playerInfo in pairsByKeys(playerList) do if not self:checkIDISSelfOrSelectID(playerInfo.uid) and not self:checkIDISInJZPlayerIDList(playerInfo.uid) then--自己和设置过禁止同桌的ID不显示在左边 local findNameEnd = string.find(playerInfo.nick, searchCont); if findNameEnd then --昵称查找 local playerItem = self.ui.Items.Layout_player:getCopied() self:initPlayerListItem(playerItem,playerInfo,true) mListView:addChild(playerItem); table.insert(self.itemT, playerItem); else --id查找 local findIdEnd = string.find(playerInfo.uid, searchCont); if findIdEnd then local playerItem = self.ui.Items.Layout_player:getCopied() self:initPlayerListItem(playerItem,playerInfo,true) mListView:addChild(playerItem); table.insert(self.itemT, playerItem); end end end end local child = mListView:getChildren(); local childSize = table.nums(child); mListView:jumpToTopOnSizeChanged(); end end end --禁止同桌列表 function ClubProhibitSameTable:onSearchPlayerR() local searchCont = self.ui.Items.TextField_search_right:getText(); if searchCont == "" then showTooltip("请输入玩家昵称或ID!"); self:showJZPlayerInfo(); return; end local mListView = self.ui.Items.ScrollView_right; mListView:removeAllChildren(); for k,v in pairsByKeys(self.jzPlayerUidList) do local playerInfo = self:getPlayerInfoByUid(v) local findNameEnd = string.find(playerInfo.nick, searchCont); local findIdEnd = string.find(playerInfo.uid, searchCont); if findNameEnd or findNameEnd then local item = self.ui.Items.Layout_player:getCopied() self:initPlayerListItem(item,playerInfo) mListView:addChild(item); end end mListView:jumpToTopOnSizeChanged(); end --初始化玩家列表数据 function ClubProhibitSameTable:initPlayerListItem(player,playerInfo,isLeft)--ui,player信息,是否是左边 player.Items = getUIItems(player); --头像 local nodeHead = player.Items.ImageView_head; local headSize = nodeHead:getContentSize(); if playerInfo.icon and playerInfo.icon ~= "" then setPlayerHeadImage(playerInfo.uid, playerInfo.icon, nodeHead, false); else setDefaultHeadImg(playerInfo.sex, playerInfo.uid, nodeHead, headSize.width, false); end --昵称 playerInfo.nick = getSubStringNickname(playerInfo.nick, player.Items.Text_nickname) player.Items.Text_nickname:setText(playerInfo.nick); --id号 local strID = playerInfo.uid if playerInfo.agent == 1 then --是代理 strID = string.format("%d(代理)", playerInfo.uid) end player.Items.Text_id:setText("ID:"..strID); if isLeft and true == isLeft then player.Items.Button_queren:registerClick(handler(self , self.onClickSetJZPlayer)) player.Items.Button_quxiao:setVisible(false) player.Items.Button_queren.uid = playerInfo.uid else player.Items.Button_quxiao:registerClick(handler(self , self.onClickDelJZPlayer)) player.Items.Button_queren:setVisible(false) player.Items.Button_quxiao.uid = playerInfo.uid end end --点击箭头按钮事件 function ClubProhibitSameTable:onClickSetJZPlayer(event) playBtnEffect() table.insert(self.jzPlayerUidList,event.uid) self:showPlayerInfo() self:showJZPlayerInfo() end --取消禁止同桌列表玩家按钮事件 function ClubProhibitSameTable:onClickDelJZPlayer(event) playBtnEffect() table.removeItem(self.jzPlayerUidList,event.uid) self:showPlayerInfo() self:showJZPlayerInfo() --[[for i=#self.jzPlayerUidList ,1,-1 do if tonumber(event.uid) == tonumber(self.jzPlayerUidList[i]) then table.remove(self.jzPlayerUidList,i) end end--]] end --判断一个ID是否在禁止同桌ID列表里面 function ClubProhibitSameTable:checkIDISInJZPlayerIDList(uid) for i,v in ipairs(self.jzPlayerUidList) do if tonumber(uid) == tonumber(v) then return true end end return false end --判断ID是自己或选中的人(自己和选中的ID不显示在可选禁止列表里面) function ClubProhibitSameTable:checkIDISSelfOrSelectID(uid) if tonumber(uid) == tonumber(self.selectPlayerUid) or tonumber(uid) == tonumber(app.user.loginInfo.uid) then return true end return false end return ClubProhibitSameTable