loading_view.ts 12 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338
  1. import { _decorator, Component, Label, Node, ProgressBar, Animation, sys } from 'cc';
  2. import { userDataManager } from '../manager/userDataManager';
  3. import { imageCacheManager } from '../manager/imageCacheManager';
  4. import { GameManager } from '../GameManager';
  5. import { SdkUtil } from '../sdkUtil';
  6. import { area_item_data, userInfo } from '../data';
  7. import { config } from '../config';
  8. import { http } from '../http';
  9. import { uiManager } from '../manager/uiManager';
  10. import { select_area } from './select_area/select_area';
  11. import { tools } from '../tools';
  12. import { loading_view_auth } from './loading_view_auth';
  13. import { dataManager } from '../manager/dataManager';
  14. import { zb_login_view } from './zb_login_view';
  15. const { ccclass, property } = _decorator;
  16. @ccclass('loading_view')
  17. export class loading_view extends Component {
  18. @property(Node) loading_bar:Node = null
  19. @property(Node) lab_loading_bar:Node = null
  20. @property(Node) img_ride_bike:Node = null
  21. @property(Node) auth_view:Node = null
  22. @property(Node) zb_login_view:Node = null
  23. private m_finish_load_call = null
  24. private m_pause_status = false
  25. private zhubo_data = null
  26. startLoading(finish_load_call) {
  27. this.m_finish_load_call = finish_load_call
  28. this.zb_login_view.active = false
  29. if(config.is_zb) {
  30. this.zb_login_view.active = true
  31. this.zb_login_view.getComponent(zb_login_view).initView((data)=>{
  32. this.zhubo_data = data
  33. this.loadingData()
  34. })
  35. } else {
  36. SdkUtil.checkAuthUserInfo((is_true)=>{
  37. if(is_true) {
  38. this.loadingData()
  39. this.auth_view.active = false
  40. } else {
  41. this.auth_view.active = true
  42. this.auth_view.getComponent(loading_view_auth).initView(()=>{
  43. this.auth_view.active = false
  44. this.loadingData()
  45. })
  46. }
  47. })
  48. }
  49. }
  50. private loadingData() {
  51. let progress = 0
  52. this.loading_bar.getComponent(ProgressBar).progress = progress;
  53. this.img_ride_bike.getComponent(Animation).play()
  54. this.schedule(()=>{
  55. if(this.m_pause_status){
  56. return;
  57. }
  58. progress += 0.1
  59. progress = parseFloat(progress.toFixed(1))
  60. // console.log('progress=',progress)
  61. this.loading_bar.getComponent(ProgressBar).progress = progress
  62. this.lab_loading_bar.getComponent(Label).string = `${(progress*100).toFixed()}%`
  63. switch (progress) {
  64. case 0.1:
  65. this.m_pause_status = true
  66. this.initUserData(()=>{
  67. if(userDataManager.user_data.region_id<=0) {
  68. this.setUserSelectArea()
  69. } else {
  70. this.m_pause_status = false
  71. }
  72. GameManager.openWebScoket()
  73. })
  74. break
  75. case 0.2:
  76. this.m_pause_status = true
  77. this.initUserExpand(()=>{
  78. this.m_pause_status = false
  79. })
  80. break
  81. case 0.3:
  82. this.m_pause_status = true
  83. this.initSysConfig(()=>{
  84. this.m_pause_status = false
  85. })
  86. break
  87. case 0.4:
  88. this.m_pause_status = true
  89. this.initMineRank(()=>{
  90. this.m_pause_status = false
  91. })
  92. break
  93. case 0.5:
  94. this.m_pause_status = true
  95. this.initUserCarList(()=>{
  96. this.m_pause_status = false
  97. })
  98. break
  99. case 0.6:
  100. this.m_pause_status = true
  101. this.initLevels(()=>{
  102. this.m_pause_status = false
  103. })
  104. break
  105. case 0.7:
  106. this.m_pause_status = true
  107. this.initAllCarList(()=>{
  108. this.m_pause_status = false
  109. })
  110. break
  111. case 0.8:
  112. this.m_pause_status = true
  113. this.initUserRedDotData(()=>{
  114. this.m_pause_status = false
  115. })
  116. break
  117. case 0.9:
  118. this.m_pause_status = true
  119. imageCacheManager.start_cache(()=>{
  120. this.m_pause_status = false
  121. })
  122. break
  123. default:
  124. break;
  125. }
  126. if(progress >= 1) {
  127. if(this.m_finish_load_call!=null){
  128. this.m_finish_load_call(this)
  129. }
  130. this.unscheduleAllCallbacks()
  131. // this.close() 外部关闭
  132. return;
  133. }
  134. },0.1)
  135. }
  136. public close() {
  137. this.img_ride_bike.getComponent(Animation).stop()
  138. this.node.removeFromParent()
  139. }
  140. private initUserData(login_finish_cb){
  141. this.userLogin((openid)=>{
  142. // console.log('openid=',openid)
  143. SdkUtil.getUserInfo((data:userInfo)=>{
  144. let opt;
  145. let platform = dataManager.getPlatformId()
  146. if(data!=null){
  147. opt = {"openid":openid,"platform":platform,"avatarUrl":data.avatarUrl,"nickName":data.nickName}
  148. }else{
  149. if(config.is_zb&&this.zhubo_data) {
  150. opt = {"openid":this.zhubo_data.openid,"platform":platform,"avatarUrl":"","nickName":this.zhubo_data.username}
  151. } else {
  152. opt = {"openid":openid,"platform":platform,"avatarUrl":"","nickName":"大靓仔"}
  153. }
  154. }
  155. http.post(config.API.login,opt,(err,d)=>{
  156. if(!err){
  157. let nd = JSON.parse(d)
  158. if(nd.code === config.status.SUCCESS){
  159. userDataManager.user_data = nd.content
  160. console.log('用户信息=',userDataManager.user_data)
  161. GameManager.requestTTSidebarUserReward(config.USER_TT_SIDEBAR_REWARD.GET, (d_content)=>{
  162. if(d_content==null) {
  163. if(login_finish_cb!=null){ login_finish_cb() }
  164. return
  165. }
  166. userDataManager.user_data.tt_sidebar_reward_status = 0
  167. if(data!=null) {
  168. userDataManager.user_data.tt_sidebar_reward_status = d_content.status
  169. }
  170. if(login_finish_cb!=null){
  171. login_finish_cb()
  172. }
  173. })
  174. }
  175. }
  176. })
  177. })
  178. })
  179. }
  180. private userLogin(cb){
  181. SdkUtil.login((res)=>{
  182. if(res!=null){
  183. let url = ''
  184. switch (tools.platform) {
  185. case config.Platform.TT:
  186. url = config.API.get_dyopen_id
  187. break;
  188. case config.Platform.WX:
  189. url = config.API.get_wxopen_id
  190. break;
  191. case config.Platform.KS:
  192. url = config.API.get_ksopen_id
  193. break;
  194. default:
  195. break;
  196. }
  197. http.post(url,res,(err,data)=>{
  198. if(!err){
  199. let d = JSON.parse(data)
  200. if(d.code === config.status.SUCCESS){
  201. cb && cb(d.content.openid)
  202. }
  203. }
  204. })
  205. }else{
  206. cb && cb("123")
  207. }
  208. })
  209. }
  210. private setUserSelectArea() {
  211. uiManager.Instance().showUi(config.UI.ui_select_area, this.node, (node:Node)=>{
  212. node.getComponent(select_area).initView(false, (obj:select_area, data:area_item_data)=>{
  213. GameManager.requestUserSetRegion(data.id, 1, (d_content)=>{
  214. userDataManager.user_data.region_id = d_content.region_id
  215. userDataManager.user_data.region_pid = d_content.region_pid
  216. userDataManager.user_data.province_name = d_content.province_name
  217. userDataManager.user_data.city_name = d_content.city_name
  218. userDataManager.user_data.license_code = d_content.license_code
  219. this.m_pause_status = false
  220. obj.closeSelf()
  221. },true)
  222. })
  223. })
  224. }
  225. private initUserExpand(cb) {
  226. http.post(config.API.user_expand, null, (err,d)=>{
  227. if(!err) {
  228. let data = JSON.parse(d)
  229. if(data.code===config.status.SUCCESS){
  230. userDataManager.user_expand = data.content
  231. cb && cb()
  232. }
  233. } else{
  234. console.log("initUserExpand err",err)
  235. }
  236. },'GET')
  237. }
  238. private initSysConfig(cb) {
  239. http.get(config.STATIC_API.sysconfig,(err,d)=>{
  240. if(!err){
  241. let data = JSON.parse(d)
  242. if(data.code===config.status.SUCCESS){
  243. tools.sys_config = data.content
  244. // console.log('系统配置=',tools.sys_config)
  245. cb && cb()
  246. }
  247. }else{
  248. console.log("initSysConfig err",err)
  249. }
  250. })
  251. }
  252. private initMineRank(cb) {
  253. GameManager.requestMineRank(0, (d_content)=>{
  254. tools.mine_rank_data = d_content
  255. cb && cb()
  256. })
  257. }
  258. private initUserCarList(cb){
  259. GameManager.requestUserCarList((d_content)=>{
  260. userDataManager.user_car_list = d_content
  261. // console.log('user_car_list=',userDataManager.user_car_list)
  262. cb && cb()
  263. })
  264. }
  265. private initLevels(cb) {
  266. http.get(config.STATIC_API.levels,(err,d)=>{
  267. if(!err){
  268. let data = JSON.parse(d)
  269. if(data.code===config.status.SUCCESS){
  270. tools.levels = JSON.parse(data.content.levels_info)
  271. tools.tpl_list = data.content.tpl_list
  272. tools.game_config = JSON.parse(data.content.levels_config)
  273. // console.log("tools.levels",tools.levels)
  274. // console.log("tools.tpl_list",tools.tpl_list)
  275. // console.log("tools.game_config",tools.game_config)
  276. cb && cb()
  277. }
  278. }else{
  279. console.log("initLevels err",err)
  280. }
  281. })
  282. }
  283. private initAllCarList(cb) {
  284. http.get(config.STATIC_API.car_list,(err,d)=>{
  285. if(!err){
  286. let data = JSON.parse(d)
  287. if(data.code===config.status.SUCCESS){
  288. tools.all_car_list = data.content
  289. // console.log("tools.all_car_list",tools.all_car_list)
  290. let slice_size:number = 6
  291. for (let i = 0; i < tools.all_car_list.length; i += slice_size) {
  292. let group = tools.all_car_list.slice(i, i + slice_size)
  293. tools.all_car_page_list.push(group)
  294. }
  295. cb && cb()
  296. }
  297. }else{
  298. console.log("init all_car_list err",err)
  299. }
  300. })
  301. }
  302. private initUserRedDotData(cb) {
  303. http.post(config.API.user_red_dot, null, (err,d)=>{
  304. if(!err){
  305. let data = JSON.parse(d)
  306. if(data.code===config.status.SUCCESS){
  307. userDataManager.user_red_dot_data = data.content
  308. // console.log("user_red_dot_data",userDataManager.user_red_dot_data)
  309. cb && cb()
  310. }
  311. }else{
  312. console.log("init userRedDotData err",err)
  313. }
  314. },'GET')
  315. }
  316. }