您最多选择25个主题 主题必须以字母或数字开头,可以包含连字符 (-),并且长度不得超过35个字符

187 行
5.3 KiB

  1. -- MJRequestStartView.lua
  2. local MJMessage = MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
  3. local MJDefine = MJFramework.MJImport("mj.luaScript.MJDefine")
  4. local MJRequestStartView = class("MJRequestStartView", cc.UIView)
  5. function MJRequestStartView:ctor(initiateUserId)
  6. MJRequestStartView.super.ctor(self)
  7. -- loadSpriteFrameFile("res/ui/zy_fangjian/liangsanren/liangsanren.plist")
  8. self.m_initiateUserId = initiateUserId
  9. self.listItems = {}
  10. self:loadUi()
  11. end
  12. function MJRequestStartView:loadUi()
  13. self.ui = loadUI("res/ui/ui_fangjian/ui_fangjian_quickstart.ui")
  14. self:addChild(self.ui)
  15. self:initUi()
  16. end
  17. function MJRequestStartView:initUi( )
  18. -- 同意
  19. self.ui.Items.Button_1:registerClick(handler(self , self.onClickAgree))
  20. -- 拒绝
  21. self.ui.Items.Button_2:registerClick(handler(self , self.onClickRefuse))
  22. self:setBtnEnabled( self.m_initiateUserId~= app.room:getMyUserId())
  23. self.ui.Items.Text_3:setString("")
  24. end
  25. function MJRequestStartView:setBtnEnabled( is )
  26. self.ui.Items.Button_1:setVisible( is )
  27. self.ui.Items.Button_2:setVisible( is )
  28. end
  29. -- info{uid=1, nick="", headUrl="", status=1}
  30. function MJRequestStartView:showItems(data)
  31. self.listItems = {}
  32. self.ui.Items.Layout_3:removeAllChildren()
  33. if data == nil or data.pList == nil then return "" end
  34. local memberList = {}
  35. for _,v in pairs(data.pList) do
  36. local info = app.room.roomInfo.memberList[v.nUserId]
  37. local t = {}
  38. t.userInfo = info.userInfo
  39. t.nStatus = v.nStatus
  40. t.nUserId = v.nUserId
  41. memberList[v.nUserId] = t
  42. end
  43. local tmp = {}
  44. for uid,v in pairs(memberList) do
  45. if v and v.userInfo then
  46. local info = json.decode(v.userInfo)
  47. table.insert(tmp, {uid=tonumber(uid), nick=info.nickname, headUrl=info.headimgurl, status=v.nStatus})
  48. end
  49. end
  50. if #tmp>=2 then table.sort(tmp,function(a, b) return a.uid<b.uid end) end
  51. for i,v in ipairs(tmp) do
  52. local node = self:createItem(v)
  53. self.listItems[v.uid] = node
  54. self.ui.Items.Layout_3:addChild(node)
  55. end
  56. self:updateBar(data.timeOut, 60)
  57. end
  58. function MJRequestStartView:updateView( data )
  59. local list = data.pList
  60. for _,v in pairs(list) do
  61. local node = self.listItems[v.nUserId]
  62. if node then
  63. node:updateImg(v.nStatus)
  64. if app.room:getMyUserId() == v.nUserId and v.nStatus~=4 then
  65. self:setBtnEnabled(false)
  66. end
  67. end
  68. end
  69. self:updateBar(data.timeOut, 60)
  70. end
  71. -- 设置发起者昵称
  72. function MJRequestStartView:setRequestNick( info )
  73. self.ui.Items.Text:setString('['.. (getSubStringNickname(info.nickname) or "") ..']')
  74. end
  75. -- 时间
  76. function MJRequestStartView:updateBar( time, totalTime )
  77. if self.ui.Items.Text_3 then
  78. self.ui.Items.Text_3:setString(time)
  79. end
  80. self:stopTimer()
  81. self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  82. if time <= 0 then
  83. self:stopTimer()
  84. if self.m_initiateUserId~= app.room:getMyUserId() then
  85. self:onClickRefuse()
  86. end
  87. return
  88. end
  89. time = time - 1
  90. if self.ui.Items.Text_3 then
  91. self.ui.Items.Text_3:setString(time)--string.format("剩余%d秒", time))
  92. end
  93. end,1.0,false)
  94. end
  95. function MJRequestStartView:stopTimer( )
  96. if not self.loadingBarTimer then
  97. return
  98. end
  99. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
  100. self.loadingBarTimer = nil
  101. end
  102. -- 同意
  103. function MJRequestStartView:onClickAgree(sender)
  104. playBtnEffect()
  105. --app.room:requestQuickStart(2)
  106. local request = MJMessage.FastStartRequest:new()
  107. request.tp = 2
  108. self.ui:sendMsg(app.room, MJDefine.MJEvent.RequestFastsStart, request)
  109. end
  110. -- 拒绝
  111. function MJRequestStartView:onClickRefuse(sender)
  112. playBtnEffect()
  113. --app.room:requestQuickStart(3)
  114. local request = MJMessage.FastStartRequest:new()
  115. request.tp = 3
  116. self.ui:sendMsg(app.room, MJDefine.MJEvent.RequestFastsStart, request)
  117. end
  118. function MJRequestStartView:removeSelf()
  119. local pNode = self:getParent()
  120. if pNode and pNode._fastRequestView then
  121. pNode._fastRequestView = nil
  122. end
  123. self:removeFromParent()
  124. end
  125. function MJRequestStartView:onEnter()
  126. MJRequestStartView.super.onEnter(self)
  127. local askInfo = app.room.roomInfo.memberList[self.m_initiateUserId]
  128. if askInfo then
  129. local userInfo = json.decode(askInfo.userInfo)
  130. self:setRequestNick({nickname = userInfo.nickname})
  131. end
  132. end
  133. function MJRequestStartView:onExit()
  134. self:stopTimer()
  135. end
  136. -- info{uid=1, nick="", headUrl="", status=1}
  137. function MJRequestStartView:createItem( info )
  138. local node = loadUI("res/ui/ui_fangjian/ui_fangjian_quickstartItem.ui")
  139. node.headImg = node.Items.ImageView_touxiang
  140. node.nickName = node.Items.Text_mingzi
  141. node.statusImg = node.Items.ImageView
  142. node.updateImg = function(nd, status)
  143. if nd.statusImg then
  144. --1申请 2同意 3 拒绝 4初始状态
  145. if status == 4 then
  146. nd.statusImg:loadTexture("kszj_lab_dengdaizhong.png", 1)
  147. elseif status == 2 then
  148. nd.statusImg:loadTexture("kszj_lab_tongyi.png", 1)
  149. elseif status == 3 then
  150. nd.statusImg:loadTexture("kszj_lab_jujue.png", 1)
  151. elseif status == 1 then --发起者
  152. nd.statusImg:loadTexture("kszj_lab_tongyi.png", 1)
  153. end
  154. end
  155. end
  156. if info and type(info)=='table' then
  157. setPlayerHeadImage(info.uid, info.headUrl, node.headImg)
  158. node.nickName:setString(getSubStringNickname(info.nick) or "")
  159. node:updateImg(info.status)
  160. if app.room:getMyUserId() == info.uid and info.status~=4 then
  161. self:setBtnEnabled(false)
  162. end
  163. end
  164. return node
  165. end
  166. return MJRequestStartView