|
- -- 成员列表Layout
- local ClubPlayerMatchRank = class("ClubPlayerMatchRank" , cc.UIView);
- local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
-
- --一页30个
- local PAGE_COUNT = 20
-
- function ClubPlayerMatchRank:ctor(clubId)
- ClubPlayerMatchRank.super.ctor(self)
-
- self.clubId = clubId
-
- --单个茶馆数据
- self.clubInfo = app.club_php.clubList[clubId]
-
- --只用于是否播放标签页按钮音效
- self.touchIdx = 1;
-
- self.curPage = 1
-
- self.totolPage = 1
-
- self.tag = ClubDefine.PlayListType.MATCH_RANK
-
- --排序:
- self.sort = true;
-
- self:loadUI()
- end
-
- function ClubPlayerMatchRank:loadUI()
- local ui = loadUI("res/ui/ui_club/ui_club_player_match_rank.ui")
- self.ui = ui;
- self:addChild(ui);
- end
-
- function ClubPlayerMatchRank:onEnter()
- ClubPlayerMatchRank.super.onEnter(self)
-
- self:initButton()
-
- self.ui.Items.ScrollView_Member:hideAllBar()
-
- self:initBindEvent()
-
- local playerJson = {
- clubId = self.clubInfo.clubId,
- viewType = self.tag,
- status = self.tag,
- orderBy = "role",
- sort = "desc",
- }
- app.club_php:requestPlayerList(playerJson)
- end
-
- function ClubPlayerMatchRank:initButton()
- --关闭
- self.ui.Items.Button_close:registerClick(handler(self , self.onClose))
-
- --搜索
- self.ui.Items.Button_search:registerClick(handler(self , self.onSearchPlayer))
-
- --翻页
- self.ui.Items.Button_page_up:registerClick(handler(self , self.onClickUpPage))
- self.ui.Items.Button_page_next:registerClick(handler(self , self.onClickNextPage))
-
- --玩家红花数排序
- self.ui.Items.Button_status:registerClick(handler(self , self.onStatuSort))
- self.ui.Items.Layout_status:registerClick(handler(self , self.onStatuSort))
-
- self.ui.Items.Button_login:registerClick(handler(self , self.onloginTimeSort))
- self.ui.Items.Layout_login:registerClick(handler(self , self.onloginTimeSort))
-
-
- end
-
- --玩家状态排序
- function ClubPlayerMatchRank:onStatuSort()
- playBtnEffect()
- if self.sort then
- --升序
- self:sortRedNum("asc");
- self.sort = false;
- else
- --降序
- self:sortRedNum("desc");
- self.sort = true;
- end
- end
-
- function ClubPlayerMatchRank:sortRedNum(sortType)
- if self.clubInfo.players then
- local playerList = self.lastSortPlayer;
- if playerList then
- local lT = {};
- for k,v in pairs(playerList) do
- table.insert(lT,v)
- end
-
- if sortType == "asc" then
- --升序
- local function sortFunc(a,b)
- return a.changeRedFlower < b.changeRedFlower
- end
-
- table.sort(lT, sortFunc);
- elseif sortType == "desc" then
- --降序
- local function sortFunc(a,b)
- return a.changeRedFlower > b.changeRedFlower
- end
-
- table.sort(lT, sortFunc);
- end
- self:updatePlayerList(lT)
- end
- end
- end
-
-
- --玩家状态排序
- function ClubPlayerMatchRank:onloginTimeSort()
- playBtnEffect()
- if self.sort then
- --升序
- self:sortLoginTimeNum("asc");
- self.sort = false;
- else
- --降序
- self:sortLoginTimeNum("desc");
- self.sort = true;
- end
- end
-
- function ClubPlayerMatchRank:sortLoginTimeNum(sortType)
- if self.clubInfo.players then
- local playerList = self.lastSortPlayer;
- if playerList then
- local lT = {};
- for k,v in pairs(playerList) do
- table.insert(lT,v)
- end
-
- if sortType == "asc" then
- --升序
- local function sortFunc(a,b)
- return a.loginTime < b.loginTime
- end
-
- table.sort(lT, sortFunc);
- elseif sortType == "desc" then
- --降序
- local function sortFunc(a,b)
- return a.loginTime > b.loginTime
- end
-
- table.sort(lT, sortFunc);
- end
- self:updatePlayerList(lT)
- end
- end
- end
-
- function ClubPlayerMatchRank:initBindEvent()
- --绑定请求成员列表成功回调事件
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_PLAYER_LIST , handler(self , self.onUpdatePlayerListEvent))
- --权限发生改变
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_ROLE , handler(self , self.onChangeRole));
- --绑定比赛开关回调
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_SET , handler(self , self.onSetSuccess));
-
- self:bindTextFildTouch()
- end
-
- -- 角色权限修改
- function ClubPlayerMatchRank:onChangeRole()
- self:removeFromParent()
- end
-
- -- 当比赛一关,其他和比赛有关的界面需要关闭
- function ClubPlayerMatchRank:onSetSuccess(data)
- if not data or not data.setType then
- return
- end
- if data.setType == GAME_CLUB_SET_STATE.Math_Switch then
- self:removeFromParent()
- end
- end
-
- function ClubPlayerMatchRank:onClose()
- playBtnCloseEffect()
- self:removeFromParent()
- end
-
- --下一页
- function ClubPlayerMatchRank:onClickNextPage()
- playBtnEffect()
- self.curPage = self.curPage + 1
- if self.curPage>self.totolPage then
- self.curPage = self.totolPage
- end
- self:updatePlayerList()
- end
-
- --上一页
- function ClubPlayerMatchRank:onClickUpPage()
- playBtnEffect()
- self.curPage = self.curPage - 1
- if self.curPage<1 then
- self.curPage = 1
- end
- self:updatePlayerList()
- end
-
- function ClubPlayerMatchRank:onUpdatePlayerListEvent(data)
- if not data or not data.type then
- return
- end
- local mType = data.type
- local numPlayerM = 0
- if mType == self.tag then
- local players = {}
- for k,v in pairs(self.clubInfo.players) do
- if v and v.role ~= ClubDefine.Job.Manager and v.role ~= ClubDefine.Job.Creator then
- table.insert(players,v)
- else
- numPlayerM = numPlayerM + 1
- end
- end
-
- --降序
- local function sortFunc(a,b)
- if self.sort then
- return a.changeRedFlower > b.changeRedFlower
- else
- return a.changeRedFlower < b.changeRedFlower
- end
- end
-
- table.sort(players,sortFunc)
-
-
- self:updatePlayerList(players)
-
- self.ui.Items.Text_total_num:setText(tostring(table.nums(players)))
- end
- end
-
- function ClubPlayerMatchRank:updatePlayerList(data)
- local mListView = self.ui.Items.ScrollView_Member
- local className = "luaScript.Views.Club.ClubPlayerMatchRankItem"
- mListView:getInnerContainer():setAutoSize(true)
- mListView:removeAllChildren()
- 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.players) do
- if v and v.role ~= ClubDefine.Job.Manager and v.role ~= ClubDefine.Job.Creator 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
- logD("ClubPlayerMatchRank match88888当前页玩家数据:")
- for i=startIndex,endIndex do
- local v = players[i]
- if v then
- --只打印第一页数据吧
- if self.curPage == 1 then
- logD("ClubPlayerMatchRank match88888"..table.tostring(v))
- end
- item = import(className):new(v,self.clubInfo.clubId,i)
- mListView:addChild(item.ui)
- end
- end
- logD("ClubPlayerMatchRank match88888当前页玩家数据打印完毕!")
- mListView:jumpToTopOnSizeChanged()
-
- if self.totolPage == 0 then
- self.ui.Items.Text_Cur_page:setString(0)
- self.ui.Items.Text_Total_page:setString("/0")
- else
- self.ui.Items.Text_Cur_page:setString(self.curPage)
- self.ui.Items.Text_Total_page:setString("/"..self.totolPage)
- end
- end
-
- --搜索玩家
- function ClubPlayerMatchRank:onSearchPlayer()
- playBtnEffect()
- if not self.clubInfo then
- return
- end
-
- local searchCont = self.ui.Items.TextField_search:getText();
- if searchCont == "" then
- showTooltip("请输入玩家昵称或ID!");
- self:updatePlayerList()
- return;
- end
-
- local mListView = self.ui.Items.ScrollView_Member
- mListView:removeAllChildren();
- self.itemT = {};
-
- if self.lastSortPlayer then
- local playerList = self.lastSortPlayer
- if playerList then
- local searchNameT = {};
- local searchIdT = {};
-
- --操作者id
- local operatorUid = app.user.loginInfo.uid
-
- --操作者角色权限
- local role = self.clubInfo.role;
-
- --创建者id(即管理员id)
- local creatorUid = self.clubInfo.ownerId;
- local className = "luaScript.Views.Club.ClubPlayerMatchRankItem"
- --茶馆id
- local clubID = self.clubInfo.clubId;
- local index = 1
- for k,playerInfo in pairsByKeys(playerList) do
- local findNameEnd = string.find(playerInfo.name, searchCont);
- if findNameEnd then
- --昵称查找
- local playerItem = import(className):new(playerInfo,self.clubInfo.clubId,index)
- mListView:addChild(playerItem.ui);
-
- table.insert(self.itemT, playerItem);
-
- else
- --id查找
- local findIdEnd = string.find(playerInfo.uid, searchCont);
- if findIdEnd then
- local playerItem = import(className):new(playerInfo,self.clubInfo.clubId,index)
- mListView:addChild(playerItem.ui);
-
- table.insert(self.itemT, playerItem);
- end
- end
- index = index + 1
- end
-
- local child = mListView:getChildren();
- local childSize = table.nums(child);
-
- mListView:jumpToTopOnSizeChanged();
- end
- end
- end
-
- function ClubPlayerMatchRank:bindTextFildTouch()
- local nodeName = self.ui.Items.TextField_search;
-
- local function onTouchEnded(touch , event)
- local searchCont = nodeName:getText();
- if searchCont == "" then
- self:updatePlayerList()
- return;
- end
- self:onSearchPlayer()
- end
-
- nodeName:addEventListener(onTouchEnded)
- end
-
- return ClubPlayerMatchRank
|