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.

170 regels
5.3 KiB

  1. -- hongzhongRequestStartView.lua
  2. local MJMessage = MJFramework.MJImport("mj.luaScript.Protocol.MJMessage")
  3. local MJDefine = MJFramework.MJImport("mj.luaScript.MJDefine")
  4. local hongzhongRequestStartView = class("hongzhongRequestStartView", cc.UIView)
  5. function hongzhongRequestStartView:ctor(initiateUserId)
  6. hongzhongRequestStartView.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 hongzhongRequestStartView: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 hongzhongRequestStartView: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( not app.room:isMyself(self.m_initiateUserId))
  23. self.ui.Items.Text_3:setString("")
  24. end
  25. function hongzhongRequestStartView: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 hongzhongRequestStartView: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 hongzhongRequestStartView: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:isMyself(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 hongzhongRequestStartView:setRequestNick( info )
  73. self.ui.Items.Text:setString('['.. (getSubStringNickname(info.nickname) or "") ..']')
  74. end
  75. -- 时间
  76. function hongzhongRequestStartView:updateBar( time, totalTime )
  77. if self.loadingBarTimer == nil then
  78. self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  79. time = time - 1
  80. if self.ui.Items.Text_3 then
  81. self.ui.Items.Text_3:setString(string.format("%d", time))
  82. end
  83. end,1.0,false)
  84. else
  85. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
  86. self.loadingBarTimer = cc.Director:getInstance():getScheduler():scheduleScriptFunc(function()
  87. time = time - 1
  88. if self.ui.Items.Text_3 then
  89. self.ui.Items.Text_3:setString(string.format("%d", time))
  90. end
  91. end,1.0,false)
  92. end
  93. end
  94. -- 同意
  95. function hongzhongRequestStartView:onClickAgree(sender)
  96. playBtnEffect()
  97. local request = MJMessage.FastStartRequest:new()
  98. request.tp = 2
  99. self.ui:sendMsg(app.room, MJDefine.MJEvent.RequestFastsStart, request)
  100. end
  101. -- 拒绝
  102. function hongzhongRequestStartView:onClickRefuse(sender)
  103. playBtnEffect()
  104. local request = MJMessage.FastStartRequest:new()
  105. request.tp = 3
  106. self.ui:sendMsg(app.room, MJDefine.MJEvent.RequestFastsStart, request)
  107. end
  108. function hongzhongRequestStartView:removeSelf()
  109. self:removeFromParent()
  110. end
  111. function hongzhongRequestStartView:onEnter()
  112. hongzhongRequestStartView.super.onEnter(self)
  113. local askInfo = app.room.roomInfo.memberList[self.m_initiateUserId]
  114. if askInfo then
  115. local userInfo = json.decode(askInfo.userInfo)
  116. self:setRequestNick({nickname = userInfo.nickname})
  117. end
  118. end
  119. function hongzhongRequestStartView:onExit()
  120. if self.loadingBarTimer then
  121. cc.Director:getInstance():getScheduler():unscheduleScriptEntry(self.loadingBarTimer)
  122. self.loadingBarTimer = nil
  123. end
  124. end
  125. -- info{uid=1, nick="", headUrl="", status=1}
  126. function hongzhongRequestStartView:createItem( info )
  127. local node = loadUI("res/ui/ui_fangjian/ui_fangjian_quickstartItem.ui")
  128. node.headImg = node.Items.ImageView_touxiang
  129. node.nickName = node.Items.Text_mingzi
  130. node.statusImg = node.Items.ImageView
  131. node.updateImg = function(nd, status)
  132. if nd.statusImg then
  133. --1申请 2同意 3 拒绝 4初始状态
  134. if status == 4 then
  135. nd.statusImg:loadTexture("kszj_lab_dengdaizhong.png", 1)
  136. elseif status == 2 then
  137. nd.statusImg:loadTexture("kszj_lab_tongyi.png", 1)
  138. elseif status == 3 then
  139. nd.statusImg:loadTexture("kszj_lab_jujue.png", 1)
  140. elseif status == 1 then --发起者
  141. nd.statusImg:loadTexture("kszj_lab_tongyi.png", 1)
  142. end
  143. end
  144. end
  145. if info and type(info)=='table' then
  146. setPlayerHeadImage(info.uid, info.headUrl, node.headImg)
  147. node.nickName:setString(getSubStringNickname(info.nick) or "")
  148. node:updateImg(info.status)
  149. if app.room:isMyself(info.uid) and info.status~=4 then
  150. self:setBtnEnabled(false)
  151. end
  152. end
  153. return node
  154. end
  155. return hongzhongRequestStartView