local ClubTableTopView = class("ClubTableTopView", cc.UIView) function ClubTableTopView:ctor (clubInfo, callback) ClubTableTopView.super.ctor(self) self:loadUI() clubInfo = clubInfo or { role = 1, clubName = "", clubId = 0, status = 1 } --单个茶馆数据 self.clubInfo = clubInfo self._callback = callback end function ClubTableTopView:loadUI() local ui = loadUI("res/ui/ui_club/clubnew/ui_club_table_top.ui") self:addChild(ui) self.ui = ui end function ClubTableTopView:onEnter() self:initViews() self:bindNetEvents() self:initButtonEvents() self:updateTable() end --- -- 初始化界面 -- function ClubTableTopView:initViews() self:initClubTitle() self:initUserInfo() self:initMenuStatus() end --- -- 设置俱乐部数据 -- @param clubInfo -- function ClubTableTopView:setData(clubInfo) self.clubInfo = clubInfo self:initViews() end --- -- 更新茶馆名 -- function ClubTableTopView:initClubTitle() --茶馆名 local strClubName = self.clubInfo.clubName self.ui.Items.Text_club_name:setText(strClubName) --茶馆ID if self.clubInfo.clubId > 0 then local strId = string.format("%sID:%d", (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME), self.clubInfo.clubId) self.ui.Items.Text_club_id:setText(strId) else self.ui.Items.Text_club_id:setText("") end end --- -- 初始化用户信息 -- @return -- function ClubTableTopView:initUserInfo() -- 房卡数量 self.ui.Items.Text_Diamand:bind(app.user.loginInfo, "curCardNum", function() self.ui.Items.Text_Diamand:setString(tostring(app.user.loginInfo.curCardNum)) end) local isAdmin = self.clubInfo.role == 2 or self.clubInfo.role == 3 self.ui.Items.ImageView_Diamand:setVisible(isAdmin) end --- -- 初始化菜单显示状态 -- function ClubTableTopView:initMenuStatus() self.ui.Items.Layout_up_menu:setVisible(self.clubInfo and self.clubInfo.clubId > 0) self.ui.Items.Layout_right_menu:setVisible(self.clubInfo and self.clubInfo.clubId > 0) local role = self.clubInfo.role local isAdmin = role == 3 -- 设置 self.ui.Items.Layout_set:setVisible(true); -- 消息 self.ui.Items.Layout_apply_msg:setVisible(isAdmin or role == 2) self.ui.Items.ImageView_dian:setVisible(false); -- 活动按钮 self.ui.Items.Layout_activity:setVisible(isAdmin or role == 2) -- 邀请按钮 self.ui.Items.Layout_invite:setVisible(isAdmin or role == 2) -- 加入设置 self.ui.Items.Layout_join:setVisible(isAdmin); -- 退出设置 self.ui.Items.Layout_quit_set:setVisible(isAdmin); -- 修改名字 self.ui.Items.Layout_change_name:setVisible(isAdmin); -- 冻结茶馆 self.ui.Items.Layout_dongjie:setVisible(isAdmin); -- 解冻茶馆 self.ui.Items.Layout_jiedong:setVisible(isAdmin); -- 解散茶馆 self.ui.Items.Layout_jiesan:setVisible(isAdmin); self.ui.Items.ImageView_jiesan_line:setVisible(not isAdmin); -- 退出 self.ui.Items.Layout_exit:setVisible(not isAdmin); -- 微信群绑定 self.ui.Items.Layout_bind_wechat:setVisible(false); -- 修改隐私 self.ui.Items.Layout_privacy:setVisible(isAdmin); -- 屏蔽微信分享 self.ui.Items.Layout_forbid_share:setVisible(isAdmin); -- 包间切换模式 self.ui.Items.Layout_room_mode:setVisible(isAdmin); -- 大家赢设置,欢乐没有大赢家 self.ui.Items.Layout_win_set:setVisible(isAdmin); -- 刷新设置菜单布局 self.ui.Items.Layout_right_menu:requestDoLayout() self.ui.Items.Layout_right_menu:doLayout() if isReviewVersion() then self.ui.Items.Layout_invite:setVisible(false) end -- 刷新右上角菜单布局 self.ui.Items.Layout_up_menu:requestDoLayout() self.ui.Items.Layout_up_menu:doLayout() if isAdmin then --茶馆状态:1正常2冻结 self:updateStatuMenu() end self:setMenuVisible(false) end --更新冻结或解冻状态按钮 function ClubTableTopView:updateStatuMenu() local isAdmin = (tonumber(self.clubInfo.role) == 3) if self.clubInfo.status == 2 and isAdmin then --冻结茶馆 self.ui.Items.Layout_dongjie:setVisible(false); --解冻茶馆 self.ui.Items.Layout_jiedong:setVisible(true); elseif self.clubInfo.status == 1 and isAdmin then --冻结茶馆 self.ui.Items.Layout_dongjie:setVisible(true); --解冻茶馆 self.ui.Items.Layout_jiedong:setVisible(false); else --冻结茶馆 self.ui.Items.Layout_dongjie:setVisible(false); --解冻茶馆 self.ui.Items.Layout_jiedong:setVisible(false); end --刷新layout布局 self.ui.Items.Layout_right_menu:requestDoLayout() self.ui.Items.Layout_right_menu:doLayout() end --- -- 初始化按钮事件 -- function ClubTableTopView:initButtonEvents() -- 返回按钮 self.ui.Items.Button_close:registerClick(handler(self, self.onBtnCloseClicked)) -- 活动按钮 self.ui.Items.Button_ActivityNew:registerClick(handler(self, self.onBtnActivityClicked)) -- 邀请按钮 self.ui.Items.Button_invite:registerClick(handler(self, self.onBtnInviteClicked)) -- 设置按钮 self.ui.Items.Button_set:registerClick(handler(self, self.onBtnSettingClicked)) -- 刷新按钮 self.ui.Items.Button_refresh:registerClick(handler(self, self.onBtnRefreshClicked)) -- 消息按钮 self.ui.Items.Button_apply_msg:registerClick(handler(self, self.onBtnMessageClicked)) -- 点击层 self.ui.Items.Layout_touch:registerClick(handler(self , self.onTouchBackground)) -- 加入设置 self.ui.Items.Button_join:registerClick(handler(self, self.onBtnJoinClicked)) -- 退出设置 self.ui.Items.Button_quit_set:registerClick(handler(self, self.onBtnQuickSetClicked)) -- 修改亲友圈名字 self.ui.Items.Button_change_name:registerClick(handler(self, self.onBtnChangeNameClicked)) -- 冻结茶馆 self.ui.Items.Button_dongjie:registerClick(handler(self, self.onBtnDongJieClicked)) -- 解冻茶馆 self.ui.Items.Button_jiedong:registerClick(handler(self, self.onBtnJieDongClicked)) -- 绑定微信群 self.ui.Items.Button_bind_wechat:registerClick(handler(self, self.onBtnBindWechatClicked)) -- 解散茶馆 self.ui.Items.Button_jiesan:registerClick(handler(self, self.onBtnJieSanClicked)) -- 隐私设置 self.ui.Items.Button_privacy:registerClick(handler(self, self.onBtnPrivacyClicked)) -- 退出亲友圈设置 self.ui.Items.Button_exit:registerClick(handler(self, self.onBtnExitClubClicked)) -- 禁止分享 self.ui.Items.Button_forbid_share:registerClick(handler(self, self.onBtnForbidShareClicked)) -- 包间切换模式 self.ui.Items.Button_room_mode:registerClick(handler(self, self.onBtnRoomModeClicked)) -- 大家赢设置 self.ui.Items.Button_win_set:registerClick(handler(self, self.onBtnWinSetClicked)) -- 乐乐比赛场设置 self.ui.Items.Button_match_set:registerClick(handler(self, self.onBtnMatchSetClicked)) end --- -- 绑定网络消息事件 -- function ClubTableTopView:bindNetEvents() -- 茶馆数据变更消息 self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_PUSH , handler(self , self.onClubChangeEvent)) -- 更新红花通知消息 self:bindEvent(app.club_php , GAME_EVENT.CLUB_UPDATE_RED_FLOWER , handler(self , self.onUpdateHongHua)) -- 更新配置通知消息 self:bindEvent(app.club_php , GAME_EVENT.CLUB_SET , handler(self , self.onUpdateSetting)); -- 桌子数据获取成功 self:bindEvent(app.club_php , GAME_EVENT.CLUB_TABLE , handler(self , self.updateTable)) -- 修改玩法 self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_RULE_PUSH , handler(self , self.updateTable)) -- 普通消息获取成功 self:bindEvent(app.club_php , GAME_EVENT.CLUB_MESSAGE , handler(self , self.onClubHintsUpdateEvent)) end --- -- 返回按钮点击事件 -- function ClubTableTopView:onBtnCloseClicked() if not (self._callback and type(self._callback) == "function") then return end self._callback("close") end --- -- 邀请按钮点击事件 -- @return -- function ClubTableTopView:onBtnInviteClicked() playBtnEffect() if self.clubInfo.clubId <= 0 then showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME)) return end -- local gname = self.clubInfo.gname -- local clubList = app.club_php.clubList -- if clubList then -- local clubInfo = clubList[tonumber(self.clubInfo.gid)] -- if clubInfo then -- gname = clubInfo.gname -- end -- end local title = string.format("%s名称:%s", (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME), self.clubInfo.clubName) local content = string.format("可视化牌桌,不用自己开房就可以玩牌。"); local desc = string.format("%sID:%s\n%s", (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME), self.clubInfo.clubId, content); local info = {} info.ClubID = self.clubInfo.clubId info.title = title info.description = desc print("用户开始分享") --需要显示的按钮(1:微信 2:复制 3:茶馆 ) if type(menuIdxs) ~= "table" then info.menuIdxs = {1, 4, 5, 6} end if type(copyData) == "string" then info.copyData = copyData else info.copyData = "" end dump(info) local view = import("luaScript.Views.Main.ShareView"):new(info) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end --- -- 设置按钮点击事件 -- function ClubTableTopView:onBtnSettingClicked() playBtnEffect(); if self.clubInfo.clubId <= 0 then showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME)) return end local isAdmin = (tonumber(self.clubInfo.role) == 3) if isAdmin then local view = import("luaScript.Views.Club.ClubSheZhi.ClubShezhi"):new(self.clubInfo.clubId) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) else local isVisible = self.ui.Items.Layout_right_menu:isVisible() self:setMenuVisible(not isVisible) end end --- -- 消息按钮点击事件 -- function ClubTableTopView:onBtnMessageClicked() playBtnEffect(); if self.clubInfo.clubId <= 0 then showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME)) return end local view = import("luaScript.Views.Club.ClubMessage"):new(self.clubInfo.clubId) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end --- -- 点击空白地方 -- function ClubTableTopView:onTouchBackground() self.ui.Items.Layout_touch:setVisible(false) self:setMenuVisible(false); end --- -- 刷新按钮点击事件 -- function ClubTableTopView:onBtnRefreshClicked() playBtnEffect() if self.clubInfo.clubId <= 0 then showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME)) return end --最后点击刷新的时间 self.lastRefreshTime = tonumber(loadUserInfo("lastRefreshTime")) or 0 saveUserInfo("lastRefreshTime", self.lastRefreshTime) --连续点击次数 self.touchTimes = tonumber(loadUserInfo("touchTime")) or 0 self.touchTimes = self.touchTimes + 1; saveUserInfo("touchTime", self.touchTimes) local curTime = os.time() local distance = curTime - self.lastRefreshTime local disbandTime = 5 --点击超过三次,提示 if self.touchTimes > 3 and distance <= disbandTime then showTooltip(string.format("请勿频繁刷新,休息一下下哦!")) return end self.lastRefreshTime = curTime saveUserInfo("lastRefreshTime", self.lastRefreshTime) self:doCallback("refresh") app.club_php:requestClubHomeInGame(self.clubInfo.clubId) --请求茶馆成员列表 app.club_php:requestPlayerList(self.clubInfo.clubId) -- --只有角色为创始人或管理员才能请求申请消息数据 -- if self.clubInfo.role == 2 or self.clubInfo.role == 3 then -- --请求茶馆普通消息 -- app.club_php:requestMsg(self.clubInfo.gid); -- --请求茶馆申请消息 -- app.club_php:requestApplyMsg(self.clubInfo.gid); -- end showTooltip("刷新成功") end --- -- 活动按钮点击事件 -- function ClubTableTopView:onBtnActivityClicked() playBtnEffect() if self.clubInfo.clubId <= 0 then showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME)) return end local clubId = self.clubInfo.clubId self:requestClubOfficialActivity(clubId) end --- -- 设置菜单显示/隐藏 -- @param isVisible 是否显示 -- function ClubTableTopView:setMenuVisible(isVisible) self.ui.Items.Layout_right_menu:setVisible(isVisible) self.ui.Items.Layout_touch:setVisible(isVisible) end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnJoinClicked() end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnQuickSetClicked() end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnChangeNameClicked() end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnDongJieClicked() end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnJieDongClicked() end --- -- 绑定微信群按钮点击事件 -- function ClubTableTopView:onBtnBindWechatClicked() playBtnEffect() self:onTouchBackground() local view = import("luaScript.Views.Club.ClubBind"):new(self.clubInfo) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnJieSanClicked() end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnPrivacyClicked() end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnExitClubClicked() playBtnEffect(); local room = app.club_php:getMyInRoom() if room then --有桌子下标,表示当前在房间内游戏 showTooltip(app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_IN_GAME_EXIT or PLN.CLUB_IN_GAME_EXIT) return end local view = app:getCurrentView() local isInMainView = view.__cname == "MainView" if not isInMainView then showTooltip(app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_IN_GAME_EXIT or PLN.CLUB_IN_GAME_EXIT) return end self:onTouchBackground() -- self.clubInfo.Type = 3; local view = import("luaScript.Views.Club.ClubDongJie"):new(self.clubInfo.clubId,3) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnForbidShareClicked() -- 弃用 end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnRoomModeClicked() -- 弃用 end --- -- 按钮点击事件 -- function ClubTableTopView:onBtnWinSetClicked() -- 弃用 end --- -- 乐乐比赛场设置按钮事件 -- function ClubTableTopView:onBtnMatchSetClicked( ) playBtnEffect() if self.clubInfo.clubId <= 0 then showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME)) return end local view = import("luaScript.Views.Club.ClubBiSaiSet"):new(self.clubInfo.clubId) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end --- -- 执行回调 -- @param key 标识,ClubTable中区分调哪个方法 -- @param data 数据 -- @return -- function ClubTableTopView:doCallback(key, ...) if not (self._callback and type(self._callback) == "function") then return end return self._callback(key, ...) end --- =================================================== 以下为网络收发消息 start ====================================================== --- -- 请求亲友圈活动数据 -- @param clubId -- function ClubTableTopView:requestClubOfficialActivity( clubId ) app.club_php:requestClubOfficialActivity(clubId) end --- -- 请求亲友圈活动数据回复 -- @param event -- function ClubTableTopView:onGetClubOfficialActivitySucc(event) local view = import("luaScript.Views.Club.ClubOfficialActivityView"):new(event.activitys) view:setAnchorPoint(cc.p(0.5, 0.5)) app:showWaitDialog(view) end --- -- 茶馆数据变更消息 -- function ClubTableTopView:onClubChangeEvent() self:initClubTitle() self:initMenuStatus() end --- -- 更新红花通知消息 -- function ClubTableTopView:onUpdateHongHua() if self.clubInfo.memberInfo then local memberInfo = self.clubInfo.memberInfo self.ui.Items.Text_HongHua:setText(tostring(memberInfo.arena_score)) end end --- -- 更新配置通知消息 -- function ClubTableTopView:onUpdateSetting() self:onUpdateHongHua() end --- -- 桌子数据获取成功 -- function ClubTableTopView:updateTable() self:updateDaLianMeng() self:onUpdateSetting() self:initMenuStatus() self:onClubHintsUpdateEvent() end --- -- 更新大联盟 -- function ClubTableTopView:updateDaLianMeng() local imgHongHua = self.ui.Items.ImageView_HongHua local layoutMatchSet = self.ui.Items.Layout_match_set layoutMatchSet:setVisible(false) imgHongHua:setVisible(false) if app.config.ModuleConfig.IsSupportDaLianMeng and self.clubInfo.isArena ~= 0 then if self.clubInfo.role == 3 then layoutMatchSet:setVisible(true) end imgHongHua:setVisible(true) end local topMenu = self.ui.Items.Layout_up_menu topMenu:requestDoLayout(); topMenu:doLayout(); end function ClubTableTopView:onClubHintsUpdateEvent() if self.clubInfo.isHints then self.ui.Items.ImageView_dian:setVisible(true) else self.ui.Items.ImageView_dian:setVisible(false) end end --- =================================================== 以上为网络收发消息 end ====================================================== return ClubTableTopView