RedeemView.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. import { UIViewID } from '@scripts/define/UIDefine';
  2. import { UIView } from '@scripts/framework/ui/UIView';
  3. import { addBtnClick, addTogClick } from '@scripts/utils/UIHelper';
  4. import { _decorator, Label, Node, Toggle } from 'cc';
  5. import { RedeemMain } from './Main/RedeemMain';
  6. import { RedeemHistory } from './History/RedeemHistory';
  7. import { AppKernel } from '@scripts/app/AppKernel';
  8. import { formatCurrency } from '@scripts/utils/Helper';
  9. const { ccclass, property } = _decorator;
  10. enum ViewType {
  11. None,
  12. Redeem,
  13. History,
  14. }
  15. @ccclass('RedeemView')
  16. export class RedeemView extends UIView {
  17. readonly viewId: UIViewID = UIViewID.RedeemView;
  18. @property(Node)
  19. btnBack: Node;
  20. @property(Label)
  21. lblNotRedeem: Label;
  22. @property(Label)
  23. lblRedeem: Label;
  24. @property(Node)
  25. btnTips: Node;
  26. @property(Node)
  27. tipsNode: Node;
  28. @property(Node)
  29. tipsClose: Node;
  30. @property(Toggle)
  31. togRedeem: Toggle;
  32. @property(Toggle)
  33. togHistory: Toggle;
  34. @property(Node)
  35. redPoint: Node;
  36. @property(RedeemMain)
  37. mainView: RedeemMain;
  38. @property(RedeemHistory)
  39. historyView: RedeemHistory;
  40. private m_ViewType: ViewType = ViewType.None;
  41. protected onCreate(): void | Promise<void> {
  42. addBtnClick(this.btnBack, this.closeSelf, this);
  43. addBtnClick(this.btnTips, this.onBtnTipsClick, this);
  44. addBtnClick(this.tipsClose, this.hideTipsNode, this);
  45. addTogClick(this.togRedeem, this.onTogRedeemClick, this);
  46. addTogClick(this.togHistory, this.onTogHistoryClick, this);
  47. this.mainView.init();
  48. this.historyView.init();
  49. }
  50. protected async onBeforeOpen(_params: unknown) {
  51. const withdraw = AppKernel.stores.withdrawStore;
  52. await withdraw.reqBaseInfo();
  53. }
  54. protected onOpen() {
  55. this.togRedeem.isChecked = true;
  56. this.updateView(ViewType.Redeem);
  57. this.updateTopNode();
  58. }
  59. private hideTipsNode() {
  60. this.tipsNode.active = false;
  61. }
  62. private onBtnTipsClick() {
  63. this.tipsNode.active = true;
  64. }
  65. private onTogRedeemClick() {
  66. if (this.m_ViewType != ViewType.Redeem) {
  67. this.updateView(ViewType.Redeem);
  68. }
  69. }
  70. private onTogHistoryClick() {
  71. if (this.m_ViewType != ViewType.History) {
  72. this.updateView(ViewType.History);
  73. }
  74. }
  75. private updateTopNode() {
  76. const withdraw = AppKernel.stores.withdrawStore;
  77. const baseInfo = withdraw.baseInfo;
  78. if (!baseInfo) return;
  79. const scTotal = AppKernel.stores.mainStore.scScore;
  80. const lockedNum = scTotal - withdraw.sumCanExchange;
  81. this.lblRedeem.string = formatCurrency(withdraw.sumCanExchange, 2);
  82. this.lblNotRedeem.string = formatCurrency(lockedNum, 2);
  83. }
  84. private updateView(viewType: ViewType) {
  85. this.m_ViewType = viewType;
  86. this.mainView.node.active = viewType === ViewType.Redeem;
  87. this.historyView.node.active = viewType === ViewType.History;
  88. switch (viewType) {
  89. case ViewType.Redeem:
  90. this.mainView.updateView();
  91. break;
  92. case ViewType.History:
  93. this.historyView.updateView();
  94. break;
  95. }
  96. }
  97. }