You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

596 lines
18 KiB

  1. local ClubTableTopView = class("ClubTableTopView", cc.UIView)
  2. function ClubTableTopView:ctor (clubInfo, callback)
  3. ClubTableTopView.super.ctor(self)
  4. self:loadUI()
  5. clubInfo = clubInfo or {
  6. role = 1,
  7. clubName = "",
  8. clubId = 0,
  9. status = 1
  10. }
  11. --单个茶馆数据
  12. self.clubInfo = clubInfo
  13. self._callback = callback
  14. end
  15. function ClubTableTopView:loadUI()
  16. local ui = loadUI("res/ui/ui_club/clubnew/ui_club_table_top.ui")
  17. self:addChild(ui)
  18. self.ui = ui
  19. end
  20. function ClubTableTopView:onEnter()
  21. self:initViews()
  22. self:bindNetEvents()
  23. self:initButtonEvents()
  24. self:updateTable()
  25. end
  26. ---
  27. -- 初始化界面
  28. --
  29. function ClubTableTopView:initViews()
  30. self:initClubTitle()
  31. self:initUserInfo()
  32. self:initMenuStatus()
  33. end
  34. ---
  35. -- 设置俱乐部数据
  36. -- @param clubInfo
  37. --
  38. function ClubTableTopView:setData(clubInfo)
  39. self.clubInfo = clubInfo
  40. self:initViews()
  41. end
  42. ---
  43. -- 更新茶馆名
  44. --
  45. function ClubTableTopView:initClubTitle()
  46. --茶馆名
  47. local strClubName = self.clubInfo.clubName
  48. self.ui.Items.Text_club_name:setText(strClubName)
  49. --茶馆ID
  50. if self.clubInfo.clubId > 0 then
  51. 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)
  52. self.ui.Items.Text_club_id:setText(strId)
  53. else
  54. self.ui.Items.Text_club_id:setText("")
  55. end
  56. end
  57. ---
  58. -- 初始化用户信息
  59. -- @return
  60. --
  61. function ClubTableTopView:initUserInfo()
  62. -- 房卡数量
  63. self.ui.Items.Text_Diamand:bind(app.user.loginInfo, "curCardNum", function()
  64. self.ui.Items.Text_Diamand:setString(tostring(app.user.loginInfo.curCardNum))
  65. end)
  66. local isAdmin = self.clubInfo.role == 2 or self.clubInfo.role == 3
  67. self.ui.Items.ImageView_Diamand:setVisible(isAdmin)
  68. end
  69. ---
  70. -- 初始化菜单显示状态
  71. --
  72. function ClubTableTopView:initMenuStatus()
  73. self.ui.Items.Layout_up_menu:setVisible(self.clubInfo and self.clubInfo.clubId > 0)
  74. self.ui.Items.Layout_right_menu:setVisible(self.clubInfo and self.clubInfo.clubId > 0)
  75. local role = self.clubInfo.role
  76. local isAdmin = role == 3
  77. -- 设置
  78. self.ui.Items.Layout_set:setVisible(true);
  79. -- 消息
  80. self.ui.Items.Layout_apply_msg:setVisible(isAdmin or role == 2)
  81. self.ui.Items.ImageView_dian:setVisible(false);
  82. -- 活动按钮
  83. self.ui.Items.Layout_activity:setVisible(isAdmin or role == 2)
  84. -- 邀请按钮
  85. self.ui.Items.Layout_invite:setVisible(isAdmin or role == 2)
  86. -- 加入设置
  87. self.ui.Items.Layout_join:setVisible(isAdmin);
  88. -- 退出设置
  89. self.ui.Items.Layout_quit_set:setVisible(isAdmin);
  90. -- 修改名字
  91. self.ui.Items.Layout_change_name:setVisible(isAdmin);
  92. -- 冻结茶馆
  93. self.ui.Items.Layout_dongjie:setVisible(isAdmin);
  94. -- 解冻茶馆
  95. self.ui.Items.Layout_jiedong:setVisible(isAdmin);
  96. -- 解散茶馆
  97. self.ui.Items.Layout_jiesan:setVisible(isAdmin);
  98. self.ui.Items.ImageView_jiesan_line:setVisible(not isAdmin);
  99. -- 退出
  100. self.ui.Items.Layout_exit:setVisible(not isAdmin);
  101. -- 微信群绑定
  102. self.ui.Items.Layout_bind_wechat:setVisible(false);
  103. -- 修改隐私
  104. self.ui.Items.Layout_privacy:setVisible(isAdmin);
  105. -- 屏蔽微信分享
  106. self.ui.Items.Layout_forbid_share:setVisible(isAdmin);
  107. -- 包间切换模式
  108. self.ui.Items.Layout_room_mode:setVisible(isAdmin);
  109. -- 大家赢设置,欢乐没有大赢家
  110. self.ui.Items.Layout_win_set:setVisible(isAdmin);
  111. -- 刷新设置菜单布局
  112. self.ui.Items.Layout_right_menu:requestDoLayout()
  113. self.ui.Items.Layout_right_menu:doLayout()
  114. if isReviewVersion() then
  115. self.ui.Items.Layout_invite:setVisible(false)
  116. end
  117. -- 刷新右上角菜单布局
  118. self.ui.Items.Layout_up_menu:requestDoLayout()
  119. self.ui.Items.Layout_up_menu:doLayout()
  120. if isAdmin then
  121. --茶馆状态:1正常2冻结
  122. self:updateStatuMenu()
  123. end
  124. self:setMenuVisible(false)
  125. end
  126. --更新冻结或解冻状态按钮
  127. function ClubTableTopView:updateStatuMenu()
  128. local isAdmin = (tonumber(self.clubInfo.role) == 3)
  129. if self.clubInfo.status == 2 and isAdmin then
  130. --冻结茶馆
  131. self.ui.Items.Layout_dongjie:setVisible(false);
  132. --解冻茶馆
  133. self.ui.Items.Layout_jiedong:setVisible(true);
  134. elseif self.clubInfo.status == 1 and isAdmin then
  135. --冻结茶馆
  136. self.ui.Items.Layout_dongjie:setVisible(true);
  137. --解冻茶馆
  138. self.ui.Items.Layout_jiedong:setVisible(false);
  139. else
  140. --冻结茶馆
  141. self.ui.Items.Layout_dongjie:setVisible(false);
  142. --解冻茶馆
  143. self.ui.Items.Layout_jiedong:setVisible(false);
  144. end
  145. --刷新layout布局
  146. self.ui.Items.Layout_right_menu:requestDoLayout()
  147. self.ui.Items.Layout_right_menu:doLayout()
  148. end
  149. ---
  150. -- 初始化按钮事件
  151. --
  152. function ClubTableTopView:initButtonEvents()
  153. -- 返回按钮
  154. self.ui.Items.Button_close:registerClick(handler(self, self.onBtnCloseClicked))
  155. -- 活动按钮
  156. self.ui.Items.Button_ActivityNew:registerClick(handler(self, self.onBtnActivityClicked))
  157. -- 邀请按钮
  158. self.ui.Items.Button_invite:registerClick(handler(self, self.onBtnInviteClicked))
  159. -- 设置按钮
  160. self.ui.Items.Button_set:registerClick(handler(self, self.onBtnSettingClicked))
  161. -- 刷新按钮
  162. self.ui.Items.Button_refresh:registerClick(handler(self, self.onBtnRefreshClicked))
  163. -- 消息按钮
  164. self.ui.Items.Button_apply_msg:registerClick(handler(self, self.onBtnMessageClicked))
  165. -- 点击层
  166. self.ui.Items.Layout_touch:registerClick(handler(self , self.onTouchBackground))
  167. -- 加入设置
  168. self.ui.Items.Button_join:registerClick(handler(self, self.onBtnJoinClicked))
  169. -- 退出设置
  170. self.ui.Items.Button_quit_set:registerClick(handler(self, self.onBtnQuickSetClicked))
  171. -- 修改亲友圈名字
  172. self.ui.Items.Button_change_name:registerClick(handler(self, self.onBtnChangeNameClicked))
  173. -- 冻结茶馆
  174. self.ui.Items.Button_dongjie:registerClick(handler(self, self.onBtnDongJieClicked))
  175. -- 解冻茶馆
  176. self.ui.Items.Button_jiedong:registerClick(handler(self, self.onBtnJieDongClicked))
  177. -- 绑定微信群
  178. self.ui.Items.Button_bind_wechat:registerClick(handler(self, self.onBtnBindWechatClicked))
  179. -- 解散茶馆
  180. self.ui.Items.Button_jiesan:registerClick(handler(self, self.onBtnJieSanClicked))
  181. -- 隐私设置
  182. self.ui.Items.Button_privacy:registerClick(handler(self, self.onBtnPrivacyClicked))
  183. -- 退出亲友圈设置
  184. self.ui.Items.Button_exit:registerClick(handler(self, self.onBtnExitClubClicked))
  185. -- 禁止分享
  186. self.ui.Items.Button_forbid_share:registerClick(handler(self, self.onBtnForbidShareClicked))
  187. -- 包间切换模式
  188. self.ui.Items.Button_room_mode:registerClick(handler(self, self.onBtnRoomModeClicked))
  189. -- 大家赢设置
  190. self.ui.Items.Button_win_set:registerClick(handler(self, self.onBtnWinSetClicked))
  191. -- 乐乐比赛场设置
  192. self.ui.Items.Button_match_set:registerClick(handler(self, self.onBtnMatchSetClicked))
  193. end
  194. ---
  195. -- 绑定网络消息事件
  196. --
  197. function ClubTableTopView:bindNetEvents()
  198. -- 茶馆数据变更消息
  199. self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_PUSH , handler(self , self.onClubChangeEvent))
  200. -- 更新红花通知消息
  201. self:bindEvent(app.club_php , GAME_EVENT.CLUB_UPDATE_RED_FLOWER , handler(self , self.onUpdateHongHua))
  202. -- 更新配置通知消息
  203. self:bindEvent(app.club_php , GAME_EVENT.CLUB_SET , handler(self , self.onUpdateSetting));
  204. -- 桌子数据获取成功
  205. self:bindEvent(app.club_php , GAME_EVENT.CLUB_TABLE , handler(self , self.updateTable))
  206. -- 修改玩法
  207. self:bindEvent(app.club_php , GAME_EVENT.CLUB_CHANGE_RULE_PUSH , handler(self , self.updateTable))
  208. -- 普通消息获取成功
  209. self:bindEvent(app.club_php , GAME_EVENT.CLUB_MESSAGE , handler(self , self.onClubHintsUpdateEvent))
  210. end
  211. ---
  212. -- 返回按钮点击事件
  213. --
  214. function ClubTableTopView:onBtnCloseClicked()
  215. if not (self._callback and type(self._callback) == "function") then
  216. return
  217. end
  218. self._callback("close")
  219. end
  220. ---
  221. -- 邀请按钮点击事件
  222. -- @return
  223. --
  224. function ClubTableTopView:onBtnInviteClicked()
  225. playBtnEffect()
  226. if self.clubInfo.clubId <= 0 then
  227. showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME))
  228. return
  229. end
  230. -- local gname = self.clubInfo.gname
  231. -- local clubList = app.club_php.clubList
  232. -- if clubList then
  233. -- local clubInfo = clubList[tonumber(self.clubInfo.gid)]
  234. -- if clubInfo then
  235. -- gname = clubInfo.gname
  236. -- end
  237. -- end
  238. 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)
  239. local content = string.format("可视化牌桌,不用自己开房就可以玩牌。");
  240. 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);
  241. local info = {}
  242. info.ClubID = self.clubInfo.clubId
  243. info.title = title
  244. info.description = desc
  245. print("用户开始分享")
  246. --需要显示的按钮(1:微信 2:复制 3:茶馆 )
  247. if type(menuIdxs) ~= "table" then
  248. info.menuIdxs = {1, 4, 5, 6}
  249. end
  250. if type(copyData) == "string" then
  251. info.copyData = copyData
  252. else
  253. info.copyData = ""
  254. end
  255. dump(info)
  256. local view = import("luaScript.Views.Main.ShareView"):new(info)
  257. view:setAnchorPoint(cc.p(0.5, 0.5))
  258. app:showWaitDialog(view)
  259. end
  260. ---
  261. -- 设置按钮点击事件
  262. --
  263. function ClubTableTopView:onBtnSettingClicked()
  264. playBtnEffect();
  265. if self.clubInfo.clubId <= 0 then
  266. showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME))
  267. return
  268. end
  269. local isAdmin = (tonumber(self.clubInfo.role) == 3)
  270. if isAdmin then
  271. local view = import("luaScript.Views.Club.ClubSheZhi.ClubShezhi"):new(self.clubInfo.clubId)
  272. view:setAnchorPoint(cc.p(0.5, 0.5))
  273. app:showWaitDialog(view)
  274. else
  275. local isVisible = self.ui.Items.Layout_right_menu:isVisible()
  276. self:setMenuVisible(not isVisible)
  277. end
  278. end
  279. ---
  280. -- 消息按钮点击事件
  281. --
  282. function ClubTableTopView:onBtnMessageClicked()
  283. playBtnEffect();
  284. if self.clubInfo.clubId <= 0 then
  285. showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME))
  286. return
  287. end
  288. local view = import("luaScript.Views.Club.ClubMessage"):new(self.clubInfo.clubId)
  289. view:setAnchorPoint(cc.p(0.5, 0.5))
  290. app:showWaitDialog(view)
  291. end
  292. ---
  293. -- 点击空白地方
  294. --
  295. function ClubTableTopView:onTouchBackground()
  296. self.ui.Items.Layout_touch:setVisible(false)
  297. self:setMenuVisible(false);
  298. end
  299. ---
  300. -- 刷新按钮点击事件
  301. --
  302. function ClubTableTopView:onBtnRefreshClicked()
  303. playBtnEffect()
  304. if self.clubInfo.clubId <= 0 then
  305. showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME))
  306. return
  307. end
  308. --最后点击刷新的时间
  309. self.lastRefreshTime = tonumber(loadUserInfo("lastRefreshTime")) or 0
  310. saveUserInfo("lastRefreshTime", self.lastRefreshTime)
  311. --连续点击次数
  312. self.touchTimes = tonumber(loadUserInfo("touchTime")) or 0
  313. self.touchTimes = self.touchTimes + 1;
  314. saveUserInfo("touchTime", self.touchTimes)
  315. local curTime = os.time()
  316. local distance = curTime - self.lastRefreshTime
  317. local disbandTime = 5
  318. --点击超过三次,提示
  319. if self.touchTimes > 3 and distance <= disbandTime then
  320. showTooltip(string.format("请勿频繁刷新,休息一下下哦!"))
  321. return
  322. end
  323. self.lastRefreshTime = curTime
  324. saveUserInfo("lastRefreshTime", self.lastRefreshTime)
  325. self:doCallback("refresh")
  326. app.club_php:requestClubHomeInGame(self.clubInfo.clubId)
  327. --请求茶馆成员列表
  328. app.club_php:requestPlayerList(self.clubInfo.clubId)
  329. -- --只有角色为创始人或管理员才能请求申请消息数据
  330. -- if self.clubInfo.role == 2 or self.clubInfo.role == 3 then
  331. -- --请求茶馆普通消息
  332. -- app.club_php:requestMsg(self.clubInfo.gid);
  333. -- --请求茶馆申请消息
  334. -- app.club_php:requestApplyMsg(self.clubInfo.gid);
  335. -- end
  336. showTooltip("刷新成功")
  337. end
  338. ---
  339. -- 活动按钮点击事件
  340. --
  341. function ClubTableTopView:onBtnActivityClicked()
  342. playBtnEffect()
  343. if self.clubInfo.clubId <= 0 then
  344. showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME))
  345. return
  346. end
  347. local clubId = self.clubInfo.clubId
  348. self:requestClubOfficialActivity(clubId)
  349. end
  350. ---
  351. -- 设置菜单显示/隐藏
  352. -- @param isVisible 是否显示
  353. --
  354. function ClubTableTopView:setMenuVisible(isVisible)
  355. self.ui.Items.Layout_right_menu:setVisible(isVisible)
  356. self.ui.Items.Layout_touch:setVisible(isVisible)
  357. end
  358. ---
  359. -- 按钮点击事件
  360. --
  361. function ClubTableTopView:onBtnJoinClicked()
  362. end
  363. ---
  364. -- 按钮点击事件
  365. --
  366. function ClubTableTopView:onBtnQuickSetClicked()
  367. end
  368. ---
  369. -- 按钮点击事件
  370. --
  371. function ClubTableTopView:onBtnChangeNameClicked()
  372. end
  373. ---
  374. -- 按钮点击事件
  375. --
  376. function ClubTableTopView:onBtnDongJieClicked()
  377. end
  378. ---
  379. -- 按钮点击事件
  380. --
  381. function ClubTableTopView:onBtnJieDongClicked()
  382. end
  383. ---
  384. -- 绑定微信群按钮点击事件
  385. --
  386. function ClubTableTopView:onBtnBindWechatClicked()
  387. playBtnEffect()
  388. self:onTouchBackground()
  389. local view = import("luaScript.Views.Club.ClubBind"):new(self.clubInfo)
  390. view:setAnchorPoint(cc.p(0.5, 0.5))
  391. app:showWaitDialog(view)
  392. end
  393. ---
  394. -- 按钮点击事件
  395. --
  396. function ClubTableTopView:onBtnJieSanClicked()
  397. end
  398. ---
  399. -- 按钮点击事件
  400. --
  401. function ClubTableTopView:onBtnPrivacyClicked()
  402. end
  403. ---
  404. -- 按钮点击事件
  405. --
  406. function ClubTableTopView:onBtnExitClubClicked()
  407. playBtnEffect();
  408. local room = app.club_php:getMyInRoom()
  409. if room then
  410. --有桌子下标,表示当前在房间内游戏
  411. showTooltip(app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_IN_GAME_EXIT or PLN.CLUB_IN_GAME_EXIT)
  412. return
  413. end
  414. local view = app:getCurrentView()
  415. local isInMainView = view.__cname == "MainView"
  416. if not isInMainView then
  417. showTooltip(app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_IN_GAME_EXIT or PLN.CLUB_IN_GAME_EXIT)
  418. return
  419. end
  420. self:onTouchBackground()
  421. -- self.clubInfo.Type = 3;
  422. local view = import("luaScript.Views.Club.ClubDongJie"):new(self.clubInfo.clubId,3)
  423. view:setAnchorPoint(cc.p(0.5, 0.5))
  424. app:showWaitDialog(view)
  425. end
  426. ---
  427. -- 按钮点击事件
  428. --
  429. function ClubTableTopView:onBtnForbidShareClicked()
  430. -- 弃用
  431. end
  432. ---
  433. -- 按钮点击事件
  434. --
  435. function ClubTableTopView:onBtnRoomModeClicked()
  436. -- 弃用
  437. end
  438. ---
  439. -- 按钮点击事件
  440. --
  441. function ClubTableTopView:onBtnWinSetClicked()
  442. -- 弃用
  443. end
  444. ---
  445. -- 乐乐比赛场设置按钮事件
  446. --
  447. function ClubTableTopView:onBtnMatchSetClicked( )
  448. playBtnEffect()
  449. if self.clubInfo.clubId <= 0 then
  450. showTooltip("请先选择" .. (app.club_php:getCestIsOpen(app.club_php.clubID) and PLN.CLUB_CEST_NAME or PLN.CLUB_NAME))
  451. return
  452. end
  453. local view = import("luaScript.Views.Club.ClubBiSaiSet"):new(self.clubInfo.clubId)
  454. view:setAnchorPoint(cc.p(0.5, 0.5))
  455. app:showWaitDialog(view)
  456. end
  457. ---
  458. -- 执行回调
  459. -- @param key 标识,ClubTable中区分调哪个方法
  460. -- @param data 数据
  461. -- @return
  462. --
  463. function ClubTableTopView:doCallback(key, ...)
  464. if not (self._callback and type(self._callback) == "function") then
  465. return
  466. end
  467. return self._callback(key, ...)
  468. end
  469. --- =================================================== 以下为网络收发消息 start ======================================================
  470. ---
  471. -- 请求亲友圈活动数据
  472. -- @param clubId
  473. --
  474. function ClubTableTopView:requestClubOfficialActivity( clubId )
  475. app.club_php:requestClubOfficialActivity(clubId)
  476. end
  477. ---
  478. -- 请求亲友圈活动数据回复
  479. -- @param event
  480. --
  481. function ClubTableTopView:onGetClubOfficialActivitySucc(event)
  482. local view = import("luaScript.Views.Club.ClubOfficialActivityView"):new(event.activitys)
  483. view:setAnchorPoint(cc.p(0.5, 0.5))
  484. app:showWaitDialog(view)
  485. end
  486. ---
  487. -- 茶馆数据变更消息
  488. --
  489. function ClubTableTopView:onClubChangeEvent()
  490. self:initClubTitle()
  491. self:initMenuStatus()
  492. end
  493. ---
  494. -- 更新红花通知消息
  495. --
  496. function ClubTableTopView:onUpdateHongHua()
  497. if self.clubInfo.memberInfo then
  498. local memberInfo = self.clubInfo.memberInfo
  499. self.ui.Items.Text_HongHua:setText(tostring(memberInfo.arena_score))
  500. end
  501. end
  502. ---
  503. -- 更新配置通知消息
  504. --
  505. function ClubTableTopView:onUpdateSetting()
  506. self:onUpdateHongHua()
  507. end
  508. ---
  509. -- 桌子数据获取成功
  510. --
  511. function ClubTableTopView:updateTable()
  512. self:updateDaLianMeng()
  513. self:onUpdateSetting()
  514. self:initMenuStatus()
  515. self:onClubHintsUpdateEvent()
  516. end
  517. ---
  518. -- 更新大联盟
  519. --
  520. function ClubTableTopView:updateDaLianMeng()
  521. local imgHongHua = self.ui.Items.ImageView_HongHua
  522. local layoutMatchSet = self.ui.Items.Layout_match_set
  523. layoutMatchSet:setVisible(false)
  524. imgHongHua:setVisible(false)
  525. if app.config.ModuleConfig.IsSupportDaLianMeng and self.clubInfo.isArena ~= 0 then
  526. if self.clubInfo.role == 3 then
  527. layoutMatchSet:setVisible(true)
  528. end
  529. imgHongHua:setVisible(true)
  530. end
  531. local topMenu = self.ui.Items.Layout_up_menu
  532. topMenu:requestDoLayout();
  533. topMenu:doLayout();
  534. end
  535. function ClubTableTopView:onClubHintsUpdateEvent()
  536. if self.clubInfo.isHints then
  537. self.ui.Items.ImageView_dian:setVisible(true)
  538. else
  539. self.ui.Items.ImageView_dian:setVisible(false)
  540. end
  541. end
  542. --- =================================================== 以上为网络收发消息 end ======================================================
  543. return ClubTableTopView