|
- local ClubPlayerMatchSetMember = class("ClubPlayerMatchSetMember" , cc.UIView)
-
- local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
-
- function ClubPlayerMatchSetMember:ctor(clubInfo, player,lastViewType)
- ClubPlayerMatchSetMember.super.ctor(self)
-
- local ui = loadUI("res/ui/ui_club/ui_club_player_match_set_member.ui")
- self.ui = ui
- self:addChild(ui)
-
- --单个亲友圈数据
- self.clubInfo = clubInfo
- --合伙人
- self.player = player
- self.pageMaxPlayers = 10
- self.copartner = ""
- --哪个界面进来的
- self.lastViewType = lastViewType
- end
-
- function ClubPlayerMatchSetMember:onEnter()
- ClubPlayerMatchSetMember.super.onEnter(self)
-
- --右边userId找UI,该属性只能在这里初始化
- self.rightUserIdToUI = {}
- --刷新右边所有玩家集合
- self.rightPlayers = {}
-
- self.ui.Items.Text_Title_Left:setText((app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME).."成员")
- --关闭
- self.ui.Items.Button_Close:registerClick(handler(self, self.onClickClose))
- --确认
- self.ui.Items.Image_Sure:registerClick(handler(self, self.onClickSure))
- --查询
- self.ui.Items.Image_SearchBtn_Left:registerClick(handler(self, self.onClickSearch))
- --上下一页
- self.ui.Items.Image_UpPage:registerClick(handler(self, self.onClickUpPage))
- self.ui.Items.Image_DownPage:registerClick(handler(self, self.onClickDownPage))
- --隐藏Item
- self.ui.Items.Layout_PlayerItem:setVisible(false)
- self.ui.Items.Layout_addPlayerItem:setVisible(false)
- --左侧滚动区域
- self.ui.Items.ScrollView_Left:getInnerContainer():setAutoSize(true)
- self.ui.Items.ScrollView_Left:jumpToTopOnSizeChanged()
- self.ui.Items.ScrollView_Left:hideAllBar()
- --右侧滚动区域
- self.ui.Items.ScrollView_Right:getInnerContainer():setAutoSize(true)
- self.ui.Items.ScrollView_Right:jumpToTopOnSizeChanged()
- self.ui.Items.ScrollView_Right:hideAllBar()
-
- self:initBindEvent()
-
- self.viewType = self.player.role == ClubDefine.Job.LevelOneCopartner and ClubDefine.PlayListType.MATCH_LV_1_ADJUST_MEMBER or ClubDefine.PlayListType.MATCH_LV_2_ADJUST_MEMBER
-
- local playerJson = {
- clubId = self.clubInfo.clubId,
- viewType = self.viewType,
- status = ClubDefine.PlayListType.MATCH_ADJUST_MEMBER,
- orderBy = "role",
- sort = "desc",
- muid = self.player.uid
- }
- self.clubInfo.players = {}
- app.club_php:requestPlayerList(playerJson)
-
- end
-
- function ClubPlayerMatchSetMember:initBindEvent()
- --绑定请求成员列表成功回调事件
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_PLAYER_LIST , handler(self , self.onUpdatePlayerListEvent))
- --绑定比赛开关回调
- self:bindEvent(app.club_php , GAME_EVENT.CLUB_SET , handler(self , self.onSetSuccess));
-
- self:bindTextFildTouch()
- end
-
-
- -- 当比赛一关,其他和比赛有关的界面需要关闭
- function ClubPlayerMatchSetMember: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 ClubPlayerMatchSetMember:onUpdatePlayerListEvent(data)
- if not data or not data.type then
- return
- end
- local mType = data.type
- if mType == self.viewType then
- --刷新左边所有玩家集合
- self.leftPlayers = {}
- --左边userId找数据
- self.leftUserIdToData = {}
- for k,v in pairs(self.clubInfo.players) do
- if v.viewType == self.viewType and v.role ~= ClubDefine.Job.LevelOneCopartner
- and v.role ~= ClubDefine.Job.LevelTwoCopartner and v.role ~= ClubDefine.Job.LevelThreeCopartner then
- table.insert(self.leftPlayers,v)
- self.leftUserIdToData[v.uid] = 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(self.leftPlayers,sortFunc)
-
- self:initLeftRight()
- end
- end
-
-
- function ClubPlayerMatchSetMember:initLeftRight()
-
- self.ui.Items.ScrollView_Left:removeAllChildren()
-
- --当前刷新的开始位置
- self.playerIdx = 1
- --当前刷新的玩家集合
- self.curPlayers = nil
-
- self:changCurPlayers(self.leftPlayers)
- self:updateRightMembers()
- end
-
- function ClubPlayerMatchSetMember:changCurPlayers(players)
- self.playerIdx = 1
- self.curPlayers = players
- self:updateLeftMembers()
- end
-
- function ClubPlayerMatchSetMember:updateLeftMembers()
- for idx = 1, self.pageMaxPlayers do
- local curPlayerIdx = self.playerIdx + idx - 1
- local player = self.ui.Items["Layout_Player_" .. idx]
- local memberInfo = self.curPlayers[curPlayerIdx]
- if memberInfo then
- if not player then
- player = self.ui.Items.Layout_PlayerItem:getCopied()
- player.Items = getUIItems(player)
- self.ui.Items["Layout_Player_" .. idx] = player
- self.ui.Items.ScrollView_Left:addChild(player)
- end
- player:setVisible(true)
- self:initMember(player, memberInfo, true)
- else
- if player then
- player:setVisible(false)
- else
- break
- end
- end
- end
- self.ui.Items.ScrollView_Left:getInnerContainer():requestDoLayout()
- self.ui.Items.ScrollView_Left:getInnerContainer():doLayout()
- self.ui.Items.ScrollView_Left:jumpToTop()
- --更新页数
- self:updatePage()
- end
-
- function ClubPlayerMatchSetMember:onClickUpPage()
- playBtnEffect()
- self.playerIdx = self.playerIdx - self.pageMaxPlayers
- if self.playerIdx < 1 then
- self.playerIdx = 1
- showTooltip("已经是首页了!")
- return
- end
- self:updateLeftMembers()
- end
-
- function ClubPlayerMatchSetMember:onClickDownPage()
- playBtnEffect()
- self.playerIdx = self.playerIdx + self.pageMaxPlayers
- if self.playerIdx > #self.curPlayers then
- self.playerIdx = self.playerIdx - self.pageMaxPlayers
- showTooltip("已经是最后页了!")
- return
- end
- self:updateLeftMembers()
- end
-
- function ClubPlayerMatchSetMember:updatePage()
- --当前页数
- self.ui.Items.Text_Cur:setText(math.ceil(self.playerIdx / self.pageMaxPlayers))
- --总页数(最少一页)
- local curPlayerNum = #self.curPlayers
- curPlayerNum = curPlayerNum > 0 and curPlayerNum or 1
- self.ui.Items.Text_Total:setText(math.ceil(curPlayerNum / self.pageMaxPlayers))
- end
-
- function ClubPlayerMatchSetMember:initMember(ui, memberInfo, isLeft)
- --头像
- local nodeHead = ui.Items.Image_Head
- local headSize = nodeHead:getContentSize()
- if memberInfo.strHeadUrl and memberInfo.strHeadUrl ~= "" then
- setPlayerHeadImage(memberInfo.uid, memberInfo.strHeadUrl, nodeHead, false)
- else
- setDefaultHeadImg(memberInfo.sex, memberInfo.strHeadUrl, nodeHead, headSize.width, false)
- end
- --昵称
- ui.Items.Text_nickname:setText(memberInfo.name)
- --userId
- ui.Items.Text_id:setText("ID: " .. memberInfo.uid)
- --操作
- ui.Items.CheckBox_Check:setVisible(isLeft)
- ui.Items.CheckBox_Check:setSelectedState(self.rightUserIdToUI[tostring(memberInfo.uid)] and true or false)
- --保存数据
- ui.memberUserId = memberInfo.uid
- ui.memberInfo = memberInfo
- if not ui.isInitClick then
- ui.Items.CheckBox_Check:registerClick(function()
- if self.rightUserIdToUI[tostring(ui.memberUserId)] then
- self:delRightPlayer(ui.memberUserId)
- else
- table.insert(self.rightPlayers, ui.memberInfo)
- end
- self:updateRightMembers()
- end)
- ui.Items.Text_belong:registerClick(function()
- local isPlayEffect = true
- local txt = ui.Items.Text_belong:getText()
- if tonumber(txt) then
- --昵称
- local name = getShortNameByLength(memberInfo.copartner_nick,3)
- ui.Items.Text_belong:setText(name)
- else
- local id = memberInfo.copartner
- if id == 0 then
- if txt ~= "/" then
- ui.Items.Text_belong:setText(app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_CREATOR_DESC2 or PLN.CLUB_CREATOR_DESC2)
- end
- isPlayEffect = false
- else
- ui.Items.Text_belong:setText(tostring(id))
- end
- end
- if isPlayEffect then
- playBtnEffect()
- end
- end)
-
- ui.isInitClick = true
- end
- --
- if memberInfo.copartner_nick then
- local name = getShortNameByLength(memberInfo.copartner_nick,3)
- if memberInfo.copartner == 0 then
- ui.Items.Text_belong:setText(app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_CREATOR_DESC2 or PLN.CLUB_CREATOR_DESC2)
- ui.Items.Text_job:setVisible(false)
- ui.Items.ImageView_belong:setVisible(false)
- else
- ui.Items.Text_belong:setText(name)
- if memberInfo.copartner_role then
- local str = tostring(ClubDefine.Role[toNumber(memberInfo.copartner_role)])
- str = string.sub(str,1,6)
- ui.Items.Text_job:setText("("..str..")")
- end
- end
- ui.Items.Layout_1:requestDoLayout()
- ui.Items.Layout_1:doLayout()
- end
- end
-
-
- function ClubPlayerMatchSetMember:initMemberRight(ui, memberInfo, isLeft)
- --头像
- local nodeHead = ui.Items.Image_Head_1
- local headSize = nodeHead:getContentSize()
- if memberInfo.strHeadUrl and memberInfo.strHeadUrl ~= "" then
- setPlayerHeadImage(memberInfo.uid, memberInfo.strHeadUrl, nodeHead, true)
- else
- setDefaultHeadImg(memberInfo.sex, memberInfo.strHeadUrl, nodeHead, headSize.width, true)
- end
- --昵称
- ui.Items.Text_nickname_3:setText(memberInfo.name)
- --userId
- ui.Items.Text_id_1:setText("ID: " .. memberInfo.uid)
- --操作
- ui.Items.Button_Del:setVisible(not isLeft)
- --保存数据
- ui.memberUserId = memberInfo.uid
- ui.memberInfo = memberInfo
- if not ui.isInitClick then
- ui.Items.Button_Del:registerClick(function()
- self:delRightPlayer(ui.memberUserId)
- self:updateRightMembers()
- self:updateLeftMembers()
- end)
-
- ui.isInitClick = true
- end
- end
-
- function ClubPlayerMatchSetMember:delRightPlayer(memberUserId)
- for idx,v in ipairs(self.rightPlayers) do
- if v.uid == memberUserId then
- table.remove(self.rightPlayers, idx)
- self.rightUserIdToUI[tostring(memberUserId)]:removeFromParent()
- self.rightUserIdToUI[tostring(memberUserId)] = nil
- end
- end
- end
-
- function ClubPlayerMatchSetMember:updateRightMembers()
- for _,v in ipairs(self.rightPlayers) do
- if not self.rightUserIdToUI[tostring(v.uid)] then
- local player = self.ui.Items.Layout_addPlayerItem:getCopied()
- player.Items = getUIItems(player)
- player.uidData = v.uid
- self:initMemberRight(player, v, false)
- self.ui.Items.ScrollView_Right:addChild(player)
- self.rightUserIdToUI[tostring(v.uid)] = player
- end
- end
- for k,v in pairs(self.rightUserIdToUI) do
- if not self.leftUserIdToData[tonumber(k)] then
- self.rightUserIdToUI[k] = nil
- v:removeFromParent()
- end
- end
- self.ui.Items.ScrollView_Right:requestDoLayout()
- self.ui.Items.ScrollView_Right:doLayout()
- end
-
- function ClubPlayerMatchSetMember:onClickSearch()
- playBtnEffect()
- local searchText = self.ui.Items.TextField_Search_Left:getText()
- if searchText == "" then
- self:changCurPlayers(self.leftPlayers)
- else
- self:onSearchPlayer()
- end
- end
-
- function ClubPlayerMatchSetMember:onSearchPlayer()
- local searchText = self.ui.Items.TextField_Search_Left:getText()
- local searchPlayers = {}
- for _,v in ipairs(self.leftPlayers) do
- if string.find(v.uid, searchText) then
- table.insert(searchPlayers, v)
- end
- end
- self:changCurPlayers(searchPlayers)
- end
-
-
- function ClubPlayerMatchSetMember:bindTextFildTouch()
- local nodeName = self.ui.Items.TextField_Search_Left;
-
- local function onTouchEnded(touch , event)
- local searchCont = nodeName:getText();
- if searchCont == "" then
- self:changCurPlayers(self.leftPlayers)
- return;
- end
- self:onSearchPlayer()
- end
-
- nodeName:addEventListener(onTouchEnded)
- end
-
- function ClubPlayerMatchSetMember:onClickSure()
- playBtnEffect()
- for k,v in ipairs(self.rightPlayers) do
- if self.copartner == "" then
- self.copartner = self.copartner .. v.uid
- else
- self.copartner = self.copartner .. "," .. v.uid
- end
- end
-
- if self.copartner == "" then
- showTooltip("未选择玩家!")
- return
- end
-
- local function callBack()
- local function successCallBack()
- self:removeFromParent()
- end
- app.club_php:requestAdjustCopartnerMember(self.clubInfo.clubId, self.player.uid, self.copartner,self.lastViewType,successCallBack,1,self.player.uid)
- end
- local view = import("luaScript.Views.Club.ClubPlayerWenXinTips"):new(callBack)
- view:setAnchorPoint(cc.p(0.5, 0.5))
- app:showWaitDialog(view)
- end
-
- function ClubPlayerMatchSetMember:onClickClose()
- playBtnEffect()
- self:removeFromParent()
- end
-
- return ClubPlayerMatchSetMember
|