-- 主界面 local ClubPlayerMatchAdjustAllHongHua = class("ClubPlayerMatchAdjustAllHongHua", cc.UIView) local ClubDefine = require("luaScript.Protocol.Club.ClubDefine") --一页30个 local PAGE_COUNT = 30 function ClubPlayerMatchAdjustAllHongHua:ctor(clubId) ClubPlayerMatchAdjustAllHongHua.super.ctor(self); local ui = loadUI("res/ui/ui_club/ui_club_player_match_adjust_honghua.ui"); self.ui = ui; self:addChild(ui); self.clubId = clubId self.clubInfo = app.club_php.clubList[clubId] self.operatorId = app.user.loginInfo.uid self.curPage = 1 self.totolPage = 1 self.selectPlayer = {} --加一下这个数组,提高效率 self.bSelectPlayer = {} end function ClubPlayerMatchAdjustAllHongHua:onEnter() ClubPlayerMatchAdjustAllHongHua.super.onEnter(self) self.ui.Items.Button_Sure:registerClick(handler(self , self.onClickConfirm)) -- 关闭 self.ui.Items.Button_guanbi:registerClick(handler(self , self.onClickClose)) self.ui.Items.CheckBox_select:addEventListener(handler(self , self.onClickSelect)) --翻页 self.ui.Items.Button_page_up:registerClick(handler(self , self.onClickUpPage)) self.ui.Items.Button_page_next:registerClick(handler(self , self.onClickNextPage)) self:initBindEvent() self:onUpdatePlayerListEvent({type = ClubDefine.PlayListType.MATCH_MEMBER}) end -- 关闭 function ClubPlayerMatchAdjustAllHongHua:onClickClose() playBtnCloseEffect() self:removeFromParent() end --下一页 function ClubPlayerMatchAdjustAllHongHua:onClickNextPage() playBtnEffect() if self.totolPage == 0 then return end self.curPage = self.curPage + 1 if self.curPage>self.totolPage then self.curPage = self.totolPage end self:updatePlayerList() end --上一页 function ClubPlayerMatchAdjustAllHongHua:onClickUpPage() playBtnEffect() if self.totolPage == 0 then return end self.curPage = self.curPage - 1 if self.curPage<1 then self.curPage = 1 end self:updatePlayerList() end function ClubPlayerMatchAdjustAllHongHua:onUpdatePlayerListEvent(data) if not data or not data.type then return end local mType = data.type if mType == ClubDefine.PlayListType.MATCH_MEMBER or mType == ClubDefine.PlayListType.MATCH_RECORD then local players = {} for k,v in pairs(self.clubInfo.playersMatch) do if v and v.role ~= self.clubInfo.role then table.insert(players,v) end end local function sortFunc(a, b) local aRole = tonumber(a.role) local bRole = tonumber(b.role) if aRole ~= bRole and (aRole == ClubDefine.Job.Copartner or bRole == ClubDefine.Job.Copartner or aRole == ClubDefine.Job.LevelOneCopartner or aRole == ClubDefine.Job.LevelTwoCopartner or bRole == ClubDefine.Job.LevelOneCopartner or bRole == ClubDefine.Job.LevelTwoCopartner) then if (aRole == ClubDefine.Job.LevelTwoCopartner and bRole == ClubDefine.Job.LevelOneCopartner) or (bRole == ClubDefine.Job.LevelTwoCopartner and aRole == ClubDefine.Job.LevelOneCopartner)then return aRole < bRole elseif aRole == ClubDefine.Job.Copartner or aRole == ClubDefine.Job.LevelOneCopartner or aRole == ClubDefine.Job.LevelTwoCopartner then return bRole ~= ClubDefine.Job.Manager and bRole ~= ClubDefine.Job.Creator else return aRole == ClubDefine.Job.Manager or aRole == ClubDefine.Job.Creator end end return aRole > bRole end table.sort(players,sortFunc) self:updatePlayerList(players) end end function ClubPlayerMatchAdjustAllHongHua:updatePlayerList(data) local mListView = self.ui.Items.ScrollView mListView:getInnerContainer():setAutoSize(true) mListView:removeAllChildren() mListView:hideAllBar() local players = {} if data then players = data --记录上一次排序后的players数组,点上一页下一页时用 self.lastSortPlayer = players else if self.lastSortPlayer and #self.lastSortPlayer >0 then players = self.lastSortPlayer else for k,v in pairs(self.clubInfo.playersMatch) do if v and v.role ~= self.clubInfo.role then table.insert(players,v) end end end end self.totolPage = math.ceil(table.nums(players)/PAGE_COUNT) local startIndex = (self.curPage-1) * PAGE_COUNT + 1 local endIndex = startIndex + PAGE_COUNT - 1 self.curPageItems = {} for i=startIndex,endIndex do local v = players[i] if v then local isSel = self.bSelectPlayer[v.uid] or false item = import("luaScript.Views.Club.ClubPlayerMatchAdjustItem"):new(v,self.clubInfo.clubId,isSel,handler(self,self.onSelectCallBack)) mListView:addChild(item.ui) table.insert(self.curPageItems,item) end end mListView:jumpToTopOnSizeChanged() self.ui.Items.Text_Cur_page:setString(self.curPage) self.ui.Items.Text_Total_page:setString("/"..self.totolPage) if self.totolPage == 0 then self.ui.Items.Text_Total_page:setString("/1") end end function ClubPlayerMatchAdjustAllHongHua:onSelectCallBack(player,isDel) if isDel then table.removeItem(self.selectPlayer,player.uid) self.bSelectPlayer[player.uid] = false else table.insert(self.selectPlayer,player.uid) self.bSelectPlayer[player.uid] = true end end function ClubPlayerMatchAdjustAllHongHua:initBindEvent() --绑定请求成员列表成功回调事件 self:bindEvent(app.club_php , GAME_EVENT.CLUB_PLAYER_LIST , handler(self , self.onUpdatePlayerListEvent)) end function ClubPlayerMatchAdjustAllHongHua:onClickSelect() playBtnEffect() local isDel = not self.ui.Items.CheckBox_select:getSelectedState() for _,v in ipairs(self.curPageItems) do v:getSelectBox():setSelectedState(self.ui.Items.CheckBox_select:getSelectedState()) end --清空数据 self.selectPlayer = {} self.bSelectPlayer = {} for k,v in pairs(self.lastSortPlayer) do if v.role ~= self.clubInfo.role then self:onSelectCallBack(v,isDel) end end end function ClubPlayerMatchAdjustAllHongHua:onClickConfirm() local function callback() self:removeFromParent() end local view = import("luaScript.Views.Club.ClubPlayerMatchAdjustHongHua"):new(self.clubId,self.selectPlayer,callback) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view); end return ClubPlayerMatchAdjustAllHongHua;