PageStorage.ts 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394
  1. import { _decorator, Component, Event, Node } from "cc";
  2. import BaseUI from "../../scripts/base/BaseUI";
  3. import { ScrollView } from "cc";
  4. import UserM, { GoodInfo } from "../../scripts/api/UserM";
  5. import { instantiate } from "cc";
  6. import { RewardItem } from "../item/RewardItem";
  7. import { OnItemClick } from "../item/RewardItem";
  8. import { RewardLayer } from "../layer/RewardLayer";
  9. import { Tips } from "../../scripts/mgr/Tips";
  10. import ConfigM, { Config } from "../../scripts/api/ConfigM";
  11. import ItemsM from "../../scripts/mgr/ItemsM";
  12. import ShopM from "../../scripts/api/ShopM";
  13. import EV, { EV_TYPE } from "../../scripts/mgr/EV";
  14. import { CommonTabsTitle } from "../common/CommonTabsTitle";
  15. const { ccclass, property } = _decorator;
  16. @ccclass("PageStorage")
  17. export class PageStorage extends BaseUI {
  18. protected onLoad(): void {
  19. super.onLoad();
  20. this.getComponentInChildren(CommonTabsTitle).init(["STORAGE"], this.onTabClick.bind(this));
  21. EV.ins.on(
  22. EV_TYPE.USER_GOOD_REFRESH,
  23. this.onUserGoodRefresh.bind(this),
  24. this
  25. );
  26. }
  27. onUserGoodRefresh() {
  28. this.init();
  29. }
  30. onItemClick(item: GoodInfo): void {
  31. // RewardLayer.mock()
  32. if (!ConfigM.ins.GoodIsBox(item.id)) {
  33. Tips.show("" + ConfigM.ins.getGoodName(item.id));
  34. return;
  35. }
  36. this.openBox(item);
  37. }
  38. private async openBox(item: GoodInfo) {
  39. let num = 1;
  40. if (item.count >= 10) {
  41. num = 10;
  42. }
  43. let result = await ShopM.ins.openBox(item.id, num);
  44. if (result) {
  45. ItemsM.ins.itemChange(result.changeList, result.goodList);
  46. // this.init();
  47. }
  48. }
  49. public onShow(): void {
  50. this.init();
  51. }
  52. onTabClick(index: number) {
  53. this.init();
  54. }
  55. async init() {
  56. let self = this;
  57. let tpl = this.FindNode("RewardItem");
  58. tpl.active = false;
  59. let scrollView = this.FindAs("ScrollView", ScrollView);
  60. scrollView.content.removeAllChildren();
  61. let list = await UserM.ins.getDisPlayGoods();
  62. if (list.length == 0) {
  63. this.FindNode("NoData").active = true;
  64. return;
  65. }
  66. this.FindNode("NoData").active = false;
  67. for (let i = 0; i < list.length; i++) {
  68. let item = instantiate(tpl);
  69. item.active = true;
  70. item.parent = scrollView.content;
  71. item
  72. .getComponent(RewardItem)
  73. .init(0, list[i], self.onItemClick.bind(self));
  74. }
  75. }
  76. }