register.page.html 4.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126
  1. <div class="auth-route-shell ion-page">
  2. <ion-content class="register-content" [fullscreen]="true">
  3. <div class="ocean-bg" aria-hidden="true"></div>
  4. <div class="floating-creatures" aria-hidden="true">
  5. <div class="creature fish-1">
  6. <img src="assets/icon/鲨鱼.svg" alt="" class="fish-svg" />
  7. </div>
  8. <div class="creature bubble-1"></div>
  9. <div class="creature bubble-2"></div>
  10. <div class="creature bubble-3"></div>
  11. </div>
  12. <div class="auth-page-inner">
  13. <div class="register-container">
  14. <div class="login-brand-logo">
  15. <img
  16. src="/assets/icon/logo.png"
  17. alt="词海游"
  18. class="login-brand-logo-img"
  19. width="400"
  20. height="156"
  21. />
  22. </div>
  23. <!-- 表单容器 - 白色圆角矩形 -->
  24. <div class="form-container">
  25. <!-- 步骤1:手机号 + 验证码 -->
  26. <div *ngIf="currentStep === 1">
  27. <h2 class="page-title">注册</h2>
  28. <!-- 手机号输入框 -->
  29. <div class="input-wrapper">
  30. <ion-input
  31. type="tel"
  32. placeholder="请输入手机号"
  33. [(ngModel)]="mobile"
  34. class="custom-input"
  35. [disabled]="isLoading">
  36. <ion-icon name="phone-portrait-outline" slot="start"></ion-icon>
  37. </ion-input>
  38. <div class="input-bottom-line"></div>
  39. </div>
  40. <!-- 验证码输入 + 获取按钮 -->
  41. <div class="code-wrapper">
  42. <div class="input-wrapper code-input">
  43. <ion-input
  44. type="text"
  45. placeholder="请输入验证码"
  46. [(ngModel)]="verificationCode"
  47. maxlength="6"
  48. class="custom-input"
  49. [disabled]="isLoading">
  50. <ion-icon name="time-outline" slot="start"></ion-icon>
  51. </ion-input>
  52. <div class="input-bottom-line"></div>
  53. </div>
  54. <button
  55. class="code-button"
  56. [class.active]="countdownSeconds === 0"
  57. (click)="sendCode()"
  58. [disabled]="countdownSeconds > 0 || isLoading || !mobile">
  59. {{ countdownSeconds > 0 ? countdownSeconds + '秒后重试' : '获取验证码' }}
  60. </button>
  61. </div>
  62. <!-- 继续按钮 - 文字不变化 -->
  63. <ion-button
  64. expand="block"
  65. class="action-button"
  66. (click)="verifyCode()"
  67. [disabled]="!mobile || !verificationCode || isLoading">
  68. 继续
  69. </ion-button>
  70. </div>
  71. <!-- 步骤2:设置密码 -->
  72. <div *ngIf="currentStep === 2">
  73. <h2 class="page-title">设置密码</h2>
  74. <!-- 密码输入框 -->
  75. <div class="input-wrapper">
  76. <ion-input
  77. type="password"
  78. placeholder="请输入密码"
  79. [(ngModel)]="password"
  80. class="custom-input"
  81. [disabled]="isLoading">
  82. <ion-icon name="lock-closed-outline" slot="start"></ion-icon>
  83. </ion-input>
  84. <div class="input-bottom-line"></div>
  85. </div>
  86. <!-- 确认密码输入框 -->
  87. <div class="input-wrapper">
  88. <ion-input
  89. type="password"
  90. placeholder="请再次输入密码"
  91. [(ngModel)]="confirmPassword"
  92. class="custom-input"
  93. [disabled]="isLoading">
  94. <ion-icon name="lock-closed-outline" slot="start"></ion-icon>
  95. </ion-input>
  96. <div class="input-bottom-line"></div>
  97. </div>
  98. <!-- 注册按钮 - 文字不变化 -->
  99. <ion-button
  100. expand="block"
  101. class="action-button"
  102. (click)="register()"
  103. [disabled]="!password || !confirmPassword || isLoading">
  104. 注册
  105. </ion-button>
  106. </div>
  107. <!-- 返回登录链接 -->
  108. <div class="back-link">
  109. <button class="link-button" (click)="goToLogin()">返回登录</button>
  110. </div>
  111. </div>
  112. </div>
  113. </div>
  114. </ion-content>
  115. </div>