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.

125 lines
4.1 KiB

  1. -- 玩家列表ItemLayout
  2. local ClubPlayerMatchHeHuoRenItem = class("ClubPlayerMatchHeHuoRenItem");
  3. local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
  4. function ClubPlayerMatchHeHuoRenItem:ctor(player,clubId,index,lastPlayer,callback)
  5. self.ui = loadUI("res/ui/ui_club/ui_club_player_match_hehuoren_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. --茶馆群id
  14. self.clubId = clubId
  15. self.clubInfo = app.club_php.clubList[clubId]
  16. self.player = player
  17. self.operatorId = app.user.loginInfo.uid
  18. self.index = index
  19. self.role = lastPlayer.role
  20. self.lastPlayer = lastPlayer
  21. self.callback = callback
  22. self:updatePlayer()
  23. end
  24. function ClubPlayerMatchHeHuoRenItem:updatePlayer()
  25. self.ui.Items.TextBMFont_num:setText(tostring(self.index))
  26. local playerInfo = self.player
  27. --头像
  28. local nodeHead = self.ui.Items.ImageView_head;
  29. local headSize = nodeHead:getContentSize();
  30. if playerInfo.strHeadUrl and playerInfo.strHeadUrl ~= "" then
  31. setPlayerHeadImage(playerInfo.uid, playerInfo.strHeadUrl, nodeHead);
  32. else
  33. setDefaultHeadImg(playerInfo.sex, playerInfo.strHeadUrl, nodeHead, headSize.width);
  34. end
  35. --昵称
  36. local name = getSubStringNickname(playerInfo.name, self.ui.Items.Text_nickname)
  37. self.ui.Items.Text_nickname:setText(name or "未知昵称")
  38. --id号
  39. local strID = playerInfo.uid
  40. if playerInfo.agent == 1 then
  41. --是代理
  42. strID = "ID: " .. string.format("%d(代理)", playerInfo.uid)
  43. end
  44. self.ui.Items.Text_id:setText(strID);
  45. --职位
  46. self.ui.Items.Text_job:setText(tostring(ClubDefine.Role[playerInfo.role]))
  47. --成员状态(1正常0黑名单成员)
  48. if playerInfo.status == 0 then
  49. self.ui.Items.ImageView_pause:setVisible(true);
  50. end
  51. --状态(1在线0离线)
  52. if playerInfo.online == 1 then
  53. --在线
  54. self.ui.Items.Text_statue:setText("在线");
  55. self.ui.Items.Text_statue:setTextColor(cc.c4b(16,177,1,255));
  56. else
  57. self.ui.Items.Text_statue:setTextColor(cc.c4b(115,115,115,255));
  58. end
  59. --红花数
  60. local useRedFlower = playerInfo.useRedFlower
  61. self.ui.Items.Text_rednum:setText(tostring(useRedFlower));
  62. --操作按钮
  63. --[[ if playerInfo.role == ClubDefine.Job.LevelOneCopartner
  64. or (self.role == ClubDefine.Job.LevelTwoCopartner and playerInfo.role == ClubDefine.Job.LevelTwoCopartner)then
  65. self.ui.Items.Button_more:setVisible(true)
  66. else
  67. self.ui.Items.Button_more:setVisible(true)
  68. end--]]
  69. end
  70. function ClubPlayerMatchHeHuoRenItem:onClickMore()
  71. playBtnEffect()
  72. local tagType = ClubDefine.PlayListType.MATCH_LV_1_COPARTNER_MEMBER
  73. if self.role == ClubDefine.Job.LevelTwoCopartner then
  74. tagType = ClubDefine.PlayListType.MATCH_LV_2_COPARTNER_MEMBER
  75. end
  76. if not self.player then
  77. logD("ClubPlayerMatchHeHuoRenItem:onClickMore player isNOExist")
  78. return
  79. end
  80. local view = import("luaScript.Views.Club.ClubPlayerMatchOperatMenu"):new(self.player,self.clubId,tagType,self.lastPlayer.uid,self.callback)
  81. view:setAnchorPoint(cc.p(0.5, 0.5))
  82. app:showWaitDialog(view, 0, true);
  83. --计算坐标偏移
  84. local node = self.ui.Items.Button_more;
  85. local worldPos = node:getWorldPosition();
  86. local viewContentSize = view.ui:getSize()
  87. --X坐标
  88. local x = worldPos.x - node:getContentSize().width / 2 - 10; --10个像素间距
  89. local y = worldPos.y
  90. --yhj:临界处理
  91. --按钮离屏幕底部的距离
  92. local fromBtnToBottomY = worldPos.y
  93. --viewContentSize的一半如果大于fromBtnToBottomY则有一部分的菜单按钮显示到了屏幕外
  94. local distanBottom = viewContentSize.height/2 - fromBtnToBottomY
  95. if distanBottom > 0 then
  96. y = worldPos.y + distanBottom
  97. end
  98. --同样的考虑菜单过长时候,离顶部是否超越屏幕
  99. local fromBtnToTopY = getWinSize().height - worldPos.y
  100. local distanTop = viewContentSize.height/2 - fromBtnToTopY
  101. if distanTop > 0 then
  102. y = worldPos.y - distanTop
  103. end
  104. view:setPosition(cc.p(x, y));
  105. end
  106. return ClubPlayerMatchHeHuoRenItem