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.

253 lines
8.7 KiB

  1. -- 玩家列表提示框Layout
  2. local ClubPlayerSetHeHuoRen = class("ClubPlayerSetHeHuoRen" , cc.UIView);
  3. local ClubDefine = require("luaScript.Protocol.Club.ClubDefine")
  4. local TIPS_TYPE_IMG_SELECT = {
  5. [1] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_set_manager.png", --设置管理员
  6. [2] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_cancel_manager.png", --取消管理员
  7. [3] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_pause_game.png", --拉入黑名单
  8. [4] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_resume_game.png", --取消黑名单
  9. [5] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_remove_player.png", --删除成员
  10. [6] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_Transfer.png", --转让茶馆
  11. [8] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_set_hehuoren.png", --设置合伙人
  12. [9] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_tips.png", --设置合伙人
  13. [10]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_tips.png", --取消合伙人
  14. [11]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_levelone_cancelhehuoren.png", --取消一级合伙人
  15. [12]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_levelone_hehuoren.png", --设置一级合伙人
  16. [14]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_freeze_member.png", --冻结下属成员
  17. [15]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_leveltwo_cancelhehuoren.png", --取消2级合伙人
  18. [16]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_leveltwo_hehuoren.png", --设置2级合伙人
  19. [18]= "res/ui/zy_club/club_room/club_player/operate/club_title_font_recovery_member.png", --恢复下属成员
  20. [19] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_set_hehuoren2.png", --设置合伙人
  21. [20] = "res/ui/zy_club/club_room/club_player/operate/club_title_font_set_removeplayer.png", --合伙人移除成员
  22. }
  23. function ClubPlayerSetHeHuoRen:ctor(idx,playerInfo,clubId,okCallback)
  24. ClubPlayerSetHeHuoRen.super.ctor(self)
  25. self.ui = loadUI("res/ui/ui_club/ui_club_player_setHeHuoRen.ui");
  26. self:addChild(self.ui)
  27. --玩家数据
  28. self.playerInfo = playerInfo
  29. self.clubId = clubId
  30. self.clubInfo = app.club_php.clubList[self.clubId]
  31. self.idx = idx
  32. --确认回调
  33. self.okCallback = okCallback
  34. app.club_php:requestClub(self.clubId)
  35. self.curDisant = 1
  36. end
  37. function ClubPlayerSetHeHuoRen:onEnter()
  38. ClubPlayerSetHeHuoRen.super.onEnter(self)
  39. -- 确认回调
  40. self.ui.Items.Button_confirm:registerClick(handler(self , self.onConfirm))
  41. self.ui.Items.Button_cancel:registerClick(handler(self , self.onClose))
  42. -- 取消回调
  43. self.ui.Items.Button_close:registerClick(handler(self , self.onClose))
  44. self.ui.Items.Button_Sub:registerClick(handler(self , self.onSub))
  45. self.ui.Items.Button_Add:registerClick(handler(self , self.onAdd))
  46. self:bindTextFildTouch()
  47. self:updateView()
  48. self:initBindEvent()
  49. end
  50. function ClubPlayerSetHeHuoRen:initBindEvent()
  51. --分成比例回调
  52. --self:bindEvent(app.club_php , GAME_EVENT.UPDATE_COPARTNER_RATDIO , handler(self , self.updateView));
  53. --绑定比赛开关回调
  54. self:bindEvent(app.club_php , GAME_EVENT.CLUB_SET , handler(self , self.onSetSuccess));
  55. self:bindEvent(app.club_php , GAME_EVENT.CLUB_PLAYER_LIST , handler(self , self.updateView));
  56. end
  57. -- 当比赛一关,其他和比赛有关的界面需要关闭
  58. function ClubPlayerSetHeHuoRen:onSetSuccess(data)
  59. if not data or not data.setType then
  60. return
  61. end
  62. if data.setType == GAME_CLUB_SET_STATE.Math_Switch then
  63. self:removeFromParent()
  64. end
  65. end
  66. function ClubPlayerSetHeHuoRen:updateView()
  67. self.nPercent = 100
  68. local player = app.club_php:getMatchPlayer(self.clubId,app.user.loginInfo.uid)
  69. if not player then
  70. --请求茶馆成员列表
  71. local playerJson = {
  72. clubId = self.clubInfo.clubId,
  73. viewType = ClubDefine.PlayListType.MATCH_MEMBER,
  74. status = ClubDefine.PlayListType.MATCH_MEMBER,
  75. }
  76. app.club_php:requestPlayerList(playerJson);
  77. return
  78. end
  79. if player and player.role == ClubDefine.Job.LevelOneCopartner then
  80. self.maxLimit = toNumber(player.arenaRatio)
  81. self.nPercent = 0
  82. self.ui.Items.Text_Content_1:setVisible(false)
  83. elseif player.role == ClubDefine.Job.Creator then
  84. self.maxLimit = 100
  85. else
  86. self.maxLimit = 100
  87. end
  88. --[[ if self.maxLimit == self.nPercent then
  89. self.ui.Items.Button_Add:setEnabled(false)
  90. else
  91. self.ui.Items.Button_Add:setEnabled(true)
  92. end
  93. if 0 == self.nPercent then
  94. self.ui.Items.Button_Sub:setEnabled(false)
  95. else
  96. self.ui.Items.Button_Sub:setEnabled(true)
  97. end--]]
  98. if self.clubInfo.ext and self.clubInfo.config then
  99. local leftNum = toNumber(self.clubInfo.config.role5Limit) - toNumber(self.clubInfo.ext.role5)
  100. self.ui.Items.Text_Content_1:setText("注:"..ClubDefine.Role[ClubDefine.Job.LevelOneCopartner].."上限为"..tostring(self.clubInfo.config.role5Limit).."人,您还有"..tostring(leftNum).."个名额!")
  101. end
  102. self.ui.Items.TextField_ratdio:setText(tostring(self.nPercent).."%")
  103. -- 玩家id
  104. self.ui.Items.Text_player_id:setText("ID:"..self.playerInfo.uid)
  105. -- 玩家昵称
  106. self.playerInfo.name = getSubStringNickname(self.playerInfo.name or self.playerInfo.nick or "", self.ui.Items.Text_nick_name)
  107. -- 玩家头像地址
  108. local nodeHead = self.ui.Items.ImageView_head
  109. local headSize = nodeHead:getContentSize()
  110. setPlayerHeadImage(self.playerInfo.uid, self.playerInfo.strHeadUrl, nodeHead)
  111. --title
  112. self.ui.Items.ImageView_title:loadTexture(TIPS_TYPE_IMG_SELECT[self.idx]);
  113. self.srcMinPercent = self.nPercent
  114. end
  115. function ClubPlayerSetHeHuoRen:onClose()
  116. playBtnCloseEffect()
  117. self:removeFromParent()
  118. end
  119. function ClubPlayerSetHeHuoRen:onConfirm()
  120. playBtnEffect()
  121. if self:isRight() then
  122. return
  123. end
  124. if self.nPercent == 0 then
  125. showTooltip("请设置分成比例!")
  126. return
  127. end
  128. if self.nPercent == toNumber(self.playerInfo.arenaRatio) then
  129. self:removeFromParent()
  130. return
  131. end
  132. if self.okCallback then
  133. self.okCallback(self.nPercent);
  134. end
  135. self:removeFromParent()
  136. end
  137. function ClubPlayerSetHeHuoRen:onSub()
  138. playBtnEffect()
  139. if self:isRight() then
  140. return
  141. end
  142. local nPercent = self.nPercent - self.curDisant
  143. if nPercent < 0 then
  144. return
  145. end
  146. --[[ if nPercent == 0 then
  147. self.ui.Items.Button_Sub:setEnabled(false)
  148. end
  149. self.ui.Items.Button_Add:setEnabled(true)--]]
  150. self.nPercent = self.nPercent - self.curDisant
  151. self.ui.Items.TextField_ratdio:setText(tostring(self.nPercent).."%")
  152. end
  153. function ClubPlayerSetHeHuoRen:onAdd()
  154. playBtnEffect()
  155. if self:isRight() then
  156. return
  157. end
  158. local nPercent = self.nPercent + self.curDisant
  159. if nPercent > self.maxLimit then
  160. return
  161. end
  162. --[[if nPercent == self.maxLimit then
  163. self.ui.Items.Button_Add:setEnabled(false)
  164. end
  165. self.ui.Items.Button_Sub:setEnabled(true)--]]
  166. self.nPercent = self.nPercent + self.curDisant
  167. self.ui.Items.TextField_ratdio:setText(tostring(self.nPercent).."%")
  168. end
  169. function ClubPlayerSetHeHuoRen:bindTextFildTouch()
  170. local searchBoxLeft = self.ui.Items.TextField_ratdio;
  171. self.curPercent = 0
  172. local function onTouchEndedL(touch , event)
  173. logD("event:",event)
  174. if event == cc.TextFiledEventType.enter or event == cc.TextFiledEventType.detach_with_ime then
  175. local searchCont = searchBoxLeft:getText();
  176. if searchCont == "" then
  177. searchCont = tostring(self.curPercent).."%"
  178. else
  179. searchCont = searchCont.."%"
  180. end
  181. searchBoxLeft:setText(searchCont)
  182. elseif event == cc.TextFiledEventType.attach_with_ime then
  183. local searchCont = searchBoxLeft:getText();
  184. local list = string.split(searchCont,"%")
  185. logD("list[1]:",list[1])
  186. logD("list[2]:",list[2])
  187. if list[1] and not (list[2] and list[2] ~= "") then
  188. logD("searchBoxLeft:setText(tostring(list[1]))")
  189. searchBoxLeft:setText(tostring(list[1]))
  190. self.curPercent = list[1]
  191. else
  192. logD("searchBoxLeft:setText()")
  193. searchBoxLeft:setText("")
  194. end
  195. end
  196. end
  197. searchBoxLeft:addEventListener(onTouchEndedL)
  198. end
  199. function ClubPlayerSetHeHuoRen:isRight()
  200. local searchCont = self.ui.Items.TextField_ratdio:getText();
  201. local list = string.split(searchCont,"%")
  202. searchCont = list[1]
  203. if (list[2] and list[2] ~= "") or not tonumber(searchCont) or toNumber(searchCont) < 0 or toNumber(searchCont) > 100 or self:calutPointNum(searchCont) then
  204. showTooltip("注:输入内容不合法,请输入"..tostring(self.srcMinPercent).."—"..tostring(self.maxLimit).."内的整数!")
  205. return true
  206. end
  207. self.nPercent = toNumber(searchCont)
  208. return false
  209. end
  210. function ClubPlayerSetHeHuoRen:calutPointNum(str)
  211. local list = string.split(str,".")
  212. if list and list[2] then
  213. if string.len(list[2]) ~= 0 then
  214. return true
  215. end
  216. end
  217. return false
  218. end
  219. return ClubPlayerSetHeHuoRen