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.

351 lines
10 KiB

  1. --[[
  2. 活动主界面
  3. --]]
  4. local ActivityMainView = class("ActivityMainView", cc.UIView)
  5. local ActivityConfig = require("luaScript.Views.Activity.ActivityConfig")
  6. function ActivityMainView:ctor(endCallback)
  7. ActivityMainView.super.ctor(self)
  8. self.endCallback = endCallback;
  9. --当前选择的类型1:活动 2:公告(默认选中活动)
  10. self.selectType = app.serverConfigs:getStickyType()
  11. self.ui = loadUI("res/ui/ui_dating/ui_activity_main.ui")
  12. self:addChild(self.ui)
  13. end
  14. function ActivityMainView:onEnter()
  15. ActivityMainView.super.onEnter(self)
  16. self.ui.Items.Button_Close:registerClick(handler(self, self.onClickClose))
  17. --活动标签
  18. self.ui.Items.Layout_huodong:registerClick(handler(self, self.onClickHuodong))
  19. -- self.ui.Items.ImageView_huodong_gray:setVisible(false)
  20. --公告标签
  21. self.ui.Items.Layout_gonggao:registerClick(handler(self, self.onClickGonggao))
  22. -- self.ui.Items.ImageView_gonggao_bg:setVisible(false)
  23. --活动点击事件
  24. self.ui.Items.Layout_Rule:registerClick(handler(self, self.onClickContent))
  25. self.ui.Items.Layout_Rule:setTouchEnabled(false)
  26. self.ui.Items.Layout_Social:setVisible(false)
  27. self.ui.Items.Layout_Xianyou:setVisible(false)
  28. self.ui.Items.Layout_Chuanqi:setVisible(false)
  29. self.ui.Items.Layout_Buyu:setVisible(false)
  30. self.ui.Items.Layout_Qier:setVisible(false)
  31. self.ui.Items.Layout_Jiandang:setVisible(false)
  32. self.ui.Items.Layout_Jinbichang:setVisible(false)
  33. self.ui.Items.Layout_QianJiangBuYu:setVisible(false)
  34. self.ui.Items.Layout_All:setVisible(false)
  35. self.ui.Items.Layout_DuoWanWan:setVisible(false)
  36. --仙游
  37. self.ui.Items.Layout_Xianyou:registerClick(handler(self, self.onClickContent))
  38. --传奇
  39. self.ui.Items.Layout_Chuanqi:registerClick(handler(self, self.onClickContent))
  40. --捕鱼
  41. self.ui.Items.Layout_Buyu:registerClick(handler(self, self.onClickContent))
  42. --七十二变
  43. self.ui.Items.Layout_Qier:registerClick(handler(self, self.onClickContent))
  44. --剑荡江湖
  45. self.ui.Items.Layout_Jiandang:registerClick(handler(self, self.onClickContent))
  46. --钱江捕鱼
  47. self.ui.Items.Layout_QianJiangBuYu:registerClick(handler(self, self.onClickContent))
  48. --只爱三国
  49. self.ui.Items.Layout_All:registerClick(handler(self, self.onClickContent))
  50. --多玩玩
  51. self.ui.Items.Layout_DuoWanWan:registerClick(handler(self, self.onClickContent))
  52. --金币场
  53. self.ui.Items.Layout_Jinbichang:registerClick(handler(self, self.onClickButtonGold))
  54. self:bindEvent(app, "onGetActivityInfoResponse", handler(self, self.onGetActivityInfoResponse))
  55. --再更新界面
  56. self:updateView()
  57. end
  58. function ActivityMainView:onExit()
  59. ActivityMainView.super.onExit(self)
  60. if self.endCallback then
  61. self.endCallback()
  62. end
  63. end
  64. -- 跳转到金币场
  65. function ActivityMainView:onClickButtonGold()
  66. playBtnEffect()
  67. if not app.config.ModuleConfig.IsSupportCoin then
  68. showTooltip("开发中...")
  69. return ;
  70. end
  71. local view = import("luaScript.Views.Coin.CoinView"):new();
  72. view:setAnchorPoint(cc.p(0.5, 0.5));
  73. app:showWaitDialog(view);
  74. self:removeFromParent()
  75. end
  76. function ActivityMainView:updateView()
  77. if self.selectType == 2 then
  78. self.ui.Items.ImageView_huodong_bg:setVisible(true)
  79. self.ui.Items.ImageView_gonggao_bg:setVisible(false)
  80. else
  81. self.ui.Items.ImageView_gonggao_bg:setVisible(true)
  82. self.ui.Items.ImageView_huodong_bg:setVisible(false)
  83. end
  84. self.radioManager = import("luaScript.Tools.RadioManager"):new();
  85. self.radioManager:setColorSwitch(false)
  86. self.ui.Items.CheckBox_XuanXiang:setVisible(false)
  87. self.ui.Items.ScrollView:getInnerContainer():setAutoSize(true)
  88. self.ui.Items.ScrollView:removeAllChildren()
  89. --当前选中的活动数据
  90. self.mission = nil
  91. local misstions,index = app.serverConfigs:getMissionListByType(self.selectType)
  92. for k,v in pairs(misstions) do
  93. if v and v.ext then
  94. local info = json.decode(v.ext) or {}
  95. if not info.ishide then
  96. local ui = self.ui.Items.CheckBox_XuanXiang:getCopied()
  97. ui.Items = getUIItems(ui)
  98. ui.Items.Text_Nor:setText(v.name)
  99. ui.Items.Text_Sel:setText(v.name)
  100. ui.Items.Text_Sel:setVisible(false)
  101. self.ui.Items.ScrollView:addChild(ui)
  102. self.radioManager:addItem(ui, v)
  103. end
  104. end
  105. end
  106. self.radioManager:setCallback(handler(self, self.onClickItem))
  107. self.radioManager:setDefault(misstions[index])
  108. self.ui.Items.ScrollView:hideAllBar()
  109. self.ui.Items.ScrollView:jumpToTopOnSizeChanged()
  110. end
  111. function ActivityMainView:onClickClose()
  112. playBtnCloseEffect()
  113. app:dispatchEvent({name = GAME_EVENT.ACTIVITY_CLOSE})
  114. self:removeFromParent()
  115. end
  116. function ActivityMainView:onClickItem(mission,checkNode)
  117. if self.selectItem and not tolua.isnull(self.selectItem) then
  118. -- playBtnEffect()
  119. self.selectItem.Items.Text_Nor:setVisible(true)
  120. self.selectItem.Items.Text_Sel:setVisible(false)
  121. end
  122. self.selectItem = checkNode
  123. if self.selectItem then
  124. self.selectItem.Items.Text_Nor:setVisible(false)
  125. self.selectItem.Items.Text_Sel:setVisible(true)
  126. end
  127. self:showContent(mission)
  128. end
  129. function ActivityMainView:showContent(mission)
  130. self.ui.Items.Layout_Social:setVisible(false)
  131. self.ui.Items.Layout_Xianyou:setVisible(false)
  132. self.ui.Items.Layout_Chuanqi:setVisible(false)
  133. self.ui.Items.Layout_Buyu:setVisible(false)
  134. self.ui.Items.Layout_Qier:setVisible(false)
  135. self.ui.Items.Layout_Jiandang:setVisible(false)
  136. self.ui.Items.Layout_Jinbichang:setVisible(false)
  137. self.ui.Items.Layout_QianJiangBuYu:setVisible(false)
  138. self.ui.Items.Layout_All:setVisible(false)
  139. self.ui.Items.Layout_DuoWanWan:setVisible(false)
  140. self.mission = mission
  141. self.ui.Items.Layout_Rule:removeAllChildren()
  142. logD("ActivityMainView:showContent", mission)
  143. local ext = json.decode(mission.ext)
  144. if ext then
  145. local view = import("luaScript.Views.Activity."..ext.view):new(mission)
  146. self.ui.Items.Layout_Rule:addChild(view)
  147. end
  148. local param = ext.param or {}
  149. local action = ext.action or ""
  150. if action == "webGame" then
  151. if tonumber(param) == 10005 then
  152. self.ui.Items.Layout_Xianyou:setVisible(true)
  153. elseif tonumber(param) == 10008 then
  154. self.ui.Items.Layout_Chuanqi:setVisible(true)
  155. elseif tonumber(param) == 10002 then
  156. self.ui.Items.Layout_Buyu:setVisible(true)
  157. elseif tonumber(param) == 10003 then
  158. self.ui.Items.Layout_Qier:setVisible(true)
  159. elseif tonumber(param) == 10006 then
  160. self.ui.Items.Layout_Jiandang:setVisible(true)
  161. elseif tonumber(param) == 10007 then
  162. self.ui.Items.Layout_QianJiangBuYu:setVisible(true)
  163. elseif tonumber(param) == 10010 then -- 只爱三国
  164. self.ui.Items.Layout_All:setVisible(true)
  165. elseif tonumber(param) == 10011 then -- 诚物
  166. self.ui.Items.Layout_All:setVisible(true)
  167. end
  168. elseif action == "webUrl" then
  169. self.ui.Items.Layout_DuoWanWan:setVisible(true)
  170. elseif action == "gold" then
  171. if tonumber(param.gameId) == 33 then
  172. self.ui.Items.Layout_Jinbichang:setVisible(true)
  173. end
  174. elseif action == "share" then
  175. else
  176. if tonumber(param) == 10009 then
  177. -- 社交平台
  178. self.ui.Items.Layout_Social:setVisible(true)
  179. end
  180. end
  181. end
  182. function ActivityMainView:onClickContent()
  183. if not self.mission then
  184. return
  185. end
  186. local ext = json.decode(self.mission.ext) or {}
  187. local action = ext.action
  188. local param = ext.param
  189. if not action then
  190. logE("ActivityMainView:onClickContent", "扩展信 息没有配置action,不允许跳转")
  191. return
  192. end
  193. if action=="webGame" then
  194. -- 打开小游戏
  195. local gameId = ext.param
  196. self:openWebGame(gameId)
  197. elseif action=="share" then
  198. -- 打开微信分享
  199. self:shareGame(ext.param)
  200. elseif action == "gold" then
  201. -- 打开金币场
  202. local gameId = param.gameId
  203. self:onClickButtonGold(gameId)
  204. elseif action == "func" then
  205. -- 整个页面点击
  206. local func = param.func or ""
  207. if type(self[func]) == "function" then
  208. self[func]()
  209. end
  210. elseif action=="webUrl" then
  211. if isWin32Platform() then
  212. showTooltip("请在手机上操作")
  213. return
  214. end
  215. app.plugin:callUrl(ext.url);
  216. end
  217. end
  218. function ActivityMainView:openWebGame(gameId)
  219. if not app.serverConfigs:isOpenWebGame(gameId) then
  220. showTooltip("敬请期待!")
  221. return
  222. end
  223. self.ui.Items.Layout_Rule:setTouchEnabled(false)
  224. app.serverConfigs:requestWebGameUrl(gameId,function (url,orientation)
  225. self.ui.Items.Layout_Rule:setTouchEnabled(false)
  226. if gameId == 10011 then -- 诚物
  227. local game_id = ActivityConfig.ActivityGameID
  228. local game_user_id = ""..app.user.loginInfo.uid
  229. local key = ActivityConfig.ActivityGameCode
  230. local str = ""..game_id .."" .. game_user_id .. "".. key
  231. local sign = md5.sumhexa( str )
  232. logD("out_url___sign", sign);
  233. local game_code = string.lower(sign);
  234. local url = string.format("https://h5g.zwokeji.com/?game_id="..game_id.."&game_user_id="..game_user_id.."&game_code="..game_code.."")
  235. -- https://h5g.zwokeji.com/?game_id=10741&game_user_id=1065160&game_code=74043377bd456b7be23b12a7d86e2ac1
  236. logD("out_url___url", url);
  237. app.plugin:callUrl(url)
  238. return
  239. end
  240. if not url or url =="" then
  241. showTooltip("敬请期待!")
  242. return
  243. end
  244. if gameId == 10010 then -- 只爱三国
  245. app.plugin:callUrl(url)
  246. return
  247. end
  248. local targetPlatform = cc.Application:getInstance():getTargetPlatform()
  249. if targetPlatform == 3 then
  250. --判断是V开头的手机,一般是VIVO,比如V1901A
  251. local machineType = getLocalizedModel()
  252. if string.find(machineType,"V") == 1 then
  253. local index = string.find(url,"sc")
  254. if index then
  255. local params=string.sub(url,1,index-2)
  256. app.plugin:callUrl(params);
  257. else
  258. app.plugin:callUrl(url);
  259. end
  260. else
  261. local view = import("luaScript.Views.Main.WebViews.WebGameView"):new(gameId,url,orientation)
  262. view:setAnchorPoint(cc.p(0.5, 0.5))
  263. app:showWaitDialog(view,nil,true)
  264. end
  265. else
  266. local view = import("luaScript.Views.Main.WebViews.WebGameView"):new(gameId,url,orientation)
  267. view:setAnchorPoint(cc.p(0.5, 0.5))
  268. app:showWaitDialog(view,nil,true)
  269. end
  270. end)
  271. end
  272. function ActivityMainView:shareGame(param)
  273. end
  274. --活动点击事件
  275. function ActivityMainView:onClickHuodong()
  276. self.selectType = 2
  277. playBtnEffect()
  278. self:updateView()
  279. end
  280. --公告点击事件
  281. function ActivityMainView:onClickGonggao()
  282. self.selectType = 1
  283. playBtnEffect()
  284. self:updateView()
  285. end
  286. function ActivityMainView:onGetActivityInfoResponse()
  287. self.selectType = app.serverConfigs:getStickyType()
  288. self:updateView()
  289. end
  290. return ActivityMainView;