car_lib.ts 2.3 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768
  1. import { _decorator, Component, Label, Node, Sprite } from 'cc';
  2. import { base_ui } from '../../fw/base_ui';
  3. import { car_lib_top } from './car_lib_top';
  4. import { car_lib_bottom } from './car_lib_bottom';
  5. import { car_lib_list_item } from './car_lib_list_item';
  6. import { userDataManager } from '../../manager/userDataManager';
  7. import { ClientEvent } from '../../lib/clientEvent';
  8. import { config } from '../../config';
  9. import { http } from '../../http';
  10. const { ccclass, property } = _decorator;
  11. @ccclass('car_lib')
  12. export class car_lib extends base_ui {
  13. @property(Node) btn_back:Node = null
  14. @property(Node) top_node:Node = null
  15. @property(Node) bottom_node:Node = null
  16. private m_cur_car:car_lib_list_item = null
  17. start() {
  18. this.onButtonListen(this.btn_back, ()=>{
  19. this.syncUserSetDefaultCar()
  20. this.close()
  21. ClientEvent.dispatchEvent(config.UI_EVENT.HOME_DID_BECOME_ACTIVE)
  22. })
  23. this.initData()
  24. ClientEvent.on(config.UI_EVENT.UPDATE_USER_INFO,this.onUpdateUserInfo.bind(this),this)
  25. }
  26. protected onDestroy(): void {
  27. ClientEvent.off(config.UI_EVENT.UPDATE_USER_INFO,this.onUpdateUserInfo.bind(this),this)
  28. }
  29. initData() {
  30. this.top_node.getComponent(car_lib_top).init()
  31. this.bottom_node.getComponent(car_lib_bottom).init(this.onClickListItem.bind(this))
  32. }
  33. onUpdateUserInfo() {
  34. this.top_node.getComponent(car_lib_top).reloadUserInfo()
  35. }
  36. private onClickListItem(item:car_lib_list_item) {
  37. this.m_cur_car = item
  38. userDataManager.user_car_list.default_car_id = item.getData().id
  39. this.top_node.getComponent(car_lib_top).reloadUserCar()
  40. ClientEvent.dispatchEvent(config.UI_EVENT.UPDATE_USER_DEFAULT_CAR)
  41. }
  42. private syncUserSetDefaultCar() {
  43. if(this.m_cur_car==null) {
  44. return
  45. }
  46. let opt = {'car_id': this.m_cur_car.getData().id}
  47. http.post(config.API.user_set_default_car_id, opt, (err,d)=>{
  48. if(!err) {
  49. let nd = JSON.parse(d)
  50. if(nd.code === config.status.SUCCESS){}
  51. }
  52. })
  53. }
  54. public initGameShowStatus(parent:Node){
  55. this.bottom_node.getComponent(car_lib_bottom).initGameStatusParent(parent)
  56. }
  57. }