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.

171 lines
6.2 KiB

  1. -- 玩家列表ItemLayout
  2. local ClubPlayerMatchItem = class("ClubPlayerMatchItem");
  3. local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
  4. function ClubPlayerMatchItem:ctor(player,clubId,index,dayTag,typeTag,callback)
  5. self.ui = loadUI("res/ui/ui_club/ui_club_player_match_member_item.ui");
  6. local uiSize = self.ui:getSize();
  7. local realSize = {width = uiSize.width * g_radio_x,height = uiSize.height * g_radio_y}
  8. self.ui:setSize(realSize)
  9. --更多操作
  10. self.ui.Items.Button_more:registerClick(handler(self , self.onClickMore))
  11. self.ui.Items.Button_more:setVisible(false);
  12. self.ui.Items.ImageView_pause:setVisible(false);
  13. self.ui.Items.Button_adjust:registerClick(handler(self , self.onClickAdjust))
  14. self.ui.Items.Button_record:registerClick(handler(self , self.onClickRecord))
  15. --茶馆群id
  16. self.clubId = clubId
  17. self.clubInfo = app.club_php.clubList[clubId]
  18. self.player = player
  19. self.operatorId = app.user.loginInfo.uid
  20. self.index = index
  21. self.callback = callback
  22. self.typeTag = typeTag
  23. --self.dayTag = dayTag --这个字段这用不到
  24. self:updatePlayer()
  25. end
  26. function ClubPlayerMatchItem:updatePlayer()
  27. self.ui.Items.TextBMFont_num:setText(tostring(self.index))
  28. local playerInfo = self.player
  29. --头像
  30. local nodeHead = self.ui.Items.ImageView_head;
  31. local headSize = nodeHead:getContentSize();
  32. if playerInfo.strHeadUrl and playerInfo.strHeadUrl ~= "" then
  33. setPlayerHeadImage(playerInfo.uid, playerInfo.strHeadUrl, nodeHead);
  34. else
  35. setDefaultHeadImg(playerInfo.sex, playerInfo.strHeadUrl, nodeHead, headSize.width);
  36. end
  37. --昵称
  38. local name = getSubStringNickname(playerInfo.name, self.ui.Items.Text_nickname)
  39. self.ui.Items.Text_nickname:setText(name or "未知昵称")
  40. --id号
  41. local strID = playerInfo.uid
  42. if playerInfo.agent == 1 then
  43. --是代理
  44. strID = "ID: " .. string.format("%d(代理)", playerInfo.uid)
  45. end
  46. self.ui.Items.Text_id:setText(strID);
  47. --职位
  48. self.ui.Items.Text_job:setText(tostring(ClubDefine.Role[playerInfo.role]))
  49. if playerInfo.cancelDesc then
  50. self.ui.Items.Text_cancel_info:setText(tostring(playerInfo.cancelDesc))
  51. end
  52. --成员状态(1正常0黑名单成员)
  53. if playerInfo.status == 0 then
  54. self.ui.Items.ImageView_pause:setVisible(true);
  55. end
  56. --状态(1在线0离线)
  57. if playerInfo.online == 1 then
  58. --在线
  59. self.ui.Items.Text_statue:setText("在线");
  60. self.ui.Items.Text_statue:setTextColor(cc.c4b(16,177,1,255));
  61. else
  62. self.ui.Items.Text_statue:setTextColor(cc.c4b(115,115,115,255));
  63. end
  64. --红花数
  65. local useRedFlower = playerInfo.useRedFlower
  66. self.ui.Items.Text_rednum:setText(tostring(useRedFlower));
  67. --分成比例
  68. local nPersent = playerInfo.arenaRatio
  69. if nPersent == 0 and playerInfo.role ~= ClubDefine.Job.LevelOneCopartner and playerInfo.role ~= ClubDefine.Job.LevelTwoCopartner then
  70. self.ui.Items.Text_win_num:setText(tostring("/"));
  71. else
  72. self.ui.Items.Text_win_num:setText(tostring(nPersent).."%");
  73. end
  74. --total红花数
  75. local totalRedFlower = playerInfo.totalRedFlower
  76. self.ui.Items.Text_num_red:setText(tostring(totalRedFlower))
  77. --操作按钮和总红花数显示
  78. if playerInfo.role == ClubDefine.Job.Creator then --如果是创始人
  79. self.ui.Items.Button_more:setVisible(false)
  80. self.ui.Items.Text_ShowRed:setVisible(true)
  81. elseif playerInfo.role== ClubDefine.Job.Manager and self.clubInfo.role ~= ClubDefine.Job.Creator then
  82. self.ui.Items.Button_more:setVisible(false)
  83. self.ui.Items.Text_ShowRed:setVisible(false)
  84. elseif (playerInfo.role == ClubDefine.Job.LevelOneCopartner and self.clubInfo.role == ClubDefine.Job.LevelOneCopartner)
  85. or (playerInfo.role == ClubDefine.Job.LevelTwoCopartner and self.clubInfo.role == ClubDefine.Job.LevelTwoCopartner) then
  86. self.ui.Items.Button_more:setVisible(false)
  87. self.ui.Items.Text_ShowRed:setVisible(false)
  88. self.ui.Items.Text_win_num:setText(tostring("/"));
  89. self.ui.Items.Button_adjust:setEnabled(false)
  90. self.ui.Items.Button_record:setEnabled(false)
  91. else
  92. self.ui.Items.Button_more:setVisible(true)
  93. self.ui.Items.Text_ShowRed:setVisible(false)
  94. end
  95. self.ui.Items.Button_adjust:setVisible(self.clubInfo.role == ClubDefine.Job.Creator
  96. or self.clubInfo.role == ClubDefine.Job.LevelOneCopartner
  97. or self.clubInfo.role == ClubDefine.Job.LevelTwoCopartner)
  98. self.ui.Items.Button_record:setVisible(self.clubInfo.role == ClubDefine.Job.Creator
  99. or self.clubInfo.role == ClubDefine.Job.LevelOneCopartner
  100. or self.clubInfo.role == ClubDefine.Job.LevelTwoCopartner)
  101. end
  102. function ClubPlayerMatchItem:onClickMore()
  103. playBtnEffect()
  104. local player = app.club_php:getMatchPlayer(self.clubId,self.player.uid)
  105. if not player then
  106. logD("ClubPlayerMatchItem:onClickMore player isNOExist")
  107. return
  108. end
  109. local view = import("luaScript.Views.Club.ClubPlayerMatchOperatMenu"):new(player,self.clubId,ClubDefine.PlayListType.MATCH_MEMBER,self.operatorId,self.callback)
  110. view:setAnchorPoint(cc.p(0.5, 0.5))
  111. app:showWaitDialog(view, 0, true);
  112. --计算坐标偏移
  113. local node = self.ui.Items.Button_more;
  114. local worldPos = node:getWorldPosition();
  115. local viewContentSize = view.ui:getSize()
  116. --X坐标
  117. local x = worldPos.x - node:getContentSize().width / 2 - 10; --10个像素间距
  118. local y = worldPos.y
  119. --yhj:临界处理
  120. --按钮离屏幕底部的距离
  121. local fromBtnToBottomY = worldPos.y
  122. --viewContentSize的一半如果大于fromBtnToBottomY则有一部分的菜单按钮显示到了屏幕外
  123. local distanBottom = viewContentSize.height/2 - fromBtnToBottomY
  124. if distanBottom > 0 then
  125. y = worldPos.y + distanBottom
  126. end
  127. --同样的考虑菜单过长时候,离顶部是否超越屏幕
  128. local fromBtnToTopY = getWinSize().height - worldPos.y
  129. local distanTop = viewContentSize.height/2 - fromBtnToTopY
  130. if distanTop > 0 then
  131. y = worldPos.y - distanTop
  132. end
  133. view:setPosition(cc.p(x, y));
  134. end
  135. function ClubPlayerMatchItem:onClickAdjust()
  136. playBtnEffect()
  137. local view = import("luaScript.Views.Club.ClubPlayerMatchAdjustHongHua"):new(self.clubId,{self.player.uid},nil,self.player)
  138. view:setAnchorPoint(cc.p(0.5, 0.5))
  139. app:showWaitDialog(view);
  140. end
  141. function ClubPlayerMatchItem:onClickRecord()
  142. playBtnEffect()
  143. local view = import("luaScript.Views.Club.ClubPlayerMatchAdjustHongHuaRecord"):new(self.clubId,self.player)
  144. view:setAnchorPoint(cc.p(0.5, 0.5))
  145. app:showWaitDialog(view);
  146. end
  147. return ClubPlayerMatchItem