UI_rank.ts 4.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105
  1. import { _decorator, Component, log, Node, Toggle } from 'cc';
  2. import { GameUILayers, gui } from 'db://assets/core/ui/ui';
  3. import ui_base from 'db://assets/core/ui/ui_base';
  4. import { ModuleDef } from 'db://assets/Script/ModuleDef';
  5. import { Layout_rank } from './Layout_rank';
  6. import ch_audio from 'db://assets/ch/audio/audio';
  7. import { UIWaiting } from 'db://assets/module_basic/ui_waiting/UIWaiting';
  8. import { Hall } from '../../hall/Hall';
  9. import { UI_rank_item } from './UI_rank_item';
  10. import { ani_ui } from '../../game/animation_utils';
  11. import { audioManager } from '../../Audio/AudioManager';
  12. const { ccclass, property } = _decorator;
  13. type page = 1 | 2;//1全国榜|2地区榜
  14. let type: page = 1;
  15. @ccclass('UI_rank')
  16. export class UI_rank extends ui_base {
  17. private _owner: { head: string, nickName: string, score: number, userId: number, [key: string]: any };
  18. private _data: { head: string, nickName: string, score: number, userId: number, [key: string]: any }[];
  19. constructor() {
  20. super(ModuleDef.GAME, 'ui/UI_rank/UI_rank', GameUILayers.HUD, Layout_rank);
  21. }
  22. protected onCreated() {
  23. ani_ui(this.node);
  24. // debugger
  25. console.log("排行榜")
  26. const layout = this.getLayout<Layout_rank>();
  27. this.onButtonEvent(layout.close_Btn, () => {
  28. audioManager.playOneShot('sound/click_Btn');
  29. this.close();
  30. });
  31. layout.onList1 = (item: Node, index: number) => {
  32. item.getComponent(UI_rank_item).showInfo(index + 1, type, this._data[index], false);
  33. }
  34. layout.onList2 = (item: Node, index: number) => {
  35. item.getComponent(UI_rank_item).showInfo(index + 1, type, this._data[index], false);
  36. }
  37. layout.Rank_Toggle_1.isChecked = type == 1;
  38. layout.Rank_Toggle_2.isChecked = type == 2;
  39. this.show();
  40. this.onToggleEvent(layout.Rank_Toggle_1, (tg: Toggle, i: page) => { if (tg.isChecked) this.show(i) }, this, 1);
  41. this.onToggleEvent(layout.Rank_Toggle_2, (tg: Toggle, i: page) => { if (tg.isChecked) this.show(i) }, this, 2);
  42. }
  43. private async show(t?: null | page) {
  44. const layout = this.getLayout<Layout_rank>();
  45. // debugger
  46. console.log("全国榜-----------------------------")
  47. if (t != null) {
  48. if (t == type) return;
  49. type = t;
  50. }
  51. layout.Rank_Toggle_1.isChecked = type == 1;
  52. layout.Rank_Toggle_2.isChecked = type == 2;
  53. if (type == 1 || t == null) {
  54. await gui.show(UIWaiting);
  55. debugger;
  56. layout.list1.node.active = true;
  57. layout.list2.node.active = false;
  58. layout.list1.numItems = 0;
  59. const d = await Hall.getInstance().player.get_rank_floor();
  60. log("d",d)
  61. this._data = d.list;
  62. this._owner = d.owner;
  63. let index = d.index;
  64. layout.list1.numItems = this._data.length;
  65. if (!this._owner) {
  66. this._owner = { head: Hall.getInstance().player.avatarUrl, nickName: Hall.getInstance().player.nickName, score: 0, userId: 0, province: Hall.getInstance().player.user_info.province };
  67. }
  68. //console.log("this._owner=-=====",layout.list1.numItems)
  69. layout.own1_item.showInfo(index, type, this._owner, true);
  70. gui.close(UIWaiting)
  71. }
  72. if (type == 2 ) {//地区榜
  73. console.log("地区榜-----------------------------")
  74. //debugger
  75. await gui.show(UIWaiting);
  76. layout.list1.node.active = false;
  77. layout.list2.node.active = true;
  78. layout.list2.numItems = 0;
  79. const d = await Hall.getInstance().player.get_Province_Rank(chsdk.get_player_info().hid);
  80. this._data = d.list;
  81. this._owner = d.ower;
  82. let index = d.index;
  83. layout.list2.numItems = this._data.length;
  84. // console.log("this._owner",this._data)
  85. if (!this._owner) {
  86. this._owner = { head: Hall.getInstance().player.avatarUrl, nickName: Hall.getInstance().player.nickName, score: 0, userId: 0, province: Hall.getInstance().player.user_info.province };
  87. }
  88. layout.own2_item.showInfo(index, type, this._owner, true);
  89. gui.close(UIWaiting)
  90. }
  91. }
  92. }