index.vue 2.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109
  1. <template>
  2. <div class="p-password">
  3. <div v-if="step === 0" class="step">
  4. <h3 class="title">Recover password</h3>
  5. <div class="desc">
  6. We will send you an email for password reset. Please check it
  7. </div>
  8. <div class="ptc-form">
  9. <div class="ptc-form-item">
  10. <input class="ptc-input" placeholder="email address" />
  11. </div>
  12. <div class="ptc-form-item">
  13. <button class="ptc-button" @click="next">NEXT</button>
  14. </div>
  15. <div class="ptc-form-item">
  16. <button class="ptc-button ptc-button--stroke">BACK</button>
  17. </div>
  18. </div>
  19. </div>
  20. <div v-else-if="step === 1" class="step">
  21. <h3 class="title">Recover password</h3>
  22. <div class="desc">
  23. We will send you an email( xxx@126.com )The password reset email has
  24. been sent. Please go to check it
  25. </div>
  26. <div class="ptc-form">
  27. <div class="ptc-form-item">
  28. <button class="ptc-button" @click="next">GO</button>
  29. </div>
  30. </div>
  31. </div>
  32. <div v-if="step === 2" class="step">
  33. <h3 class="title">Recover password</h3>
  34. <div class="desc">
  35. Please set a new password for helloworld@gmail.com. It is recommended to
  36. use a combination of numbers, letters, and characters to improve the
  37. password security level
  38. </div>
  39. <div class="ptc-form">
  40. <div class="ptc-form-item">
  41. <input
  42. class="ptc-input"
  43. placeholder="6-20 digits password, case sensitive"
  44. />
  45. </div>
  46. <div class="ptc-form-item">
  47. <button class="ptc-button" @click="next">SUBMIT</button>
  48. </div>
  49. </div>
  50. </div>
  51. <div v-else-if="step === 3" class="step">
  52. <i class="icon-success"></i>
  53. <h3 class="title tac">Password reset successfully</h3>
  54. <button class="ptc-button mgt96">TO LOG IN</button>
  55. </div>
  56. </div>
  57. </template>
  58. <script setup lang="ts">
  59. import { ref } from 'vue'
  60. import { useRoute, useRouter } from 'vue-router'
  61. import NavBar from '@/components/nav-bar/index.vue'
  62. const router = useRouter()
  63. const { query } = useRoute()
  64. const step = ref(query.step ? +(query.step as string) : 0)
  65. function next() {
  66. router.push({
  67. path: '',
  68. query: { step: ++step.value },
  69. })
  70. }
  71. </script>
  72. <style lang="scss">
  73. .p-password {
  74. .step {
  75. margin-top: 98px;
  76. padding: 0 80px;
  77. }
  78. .title {
  79. line-height: 56px;
  80. font-size: 40px;
  81. font-weight: 500;
  82. color: #333;
  83. }
  84. .desc {
  85. margin: 36px 0 64px;
  86. line-height: 44px;
  87. font-size: 32px;
  88. color: #333;
  89. }
  90. .icon-success {
  91. display: block;
  92. margin: 0 auto 32px;
  93. width: 96px;
  94. height: 96px;
  95. background: teal;
  96. }
  97. .mgt96 {
  98. margin-top: 96px;
  99. }
  100. }
  101. </style>