index.vue 4.8 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188
  1. <template>
  2. <div v-if="state === 0" class="p-account">
  3. <div class="ptc-wrapper">
  4. <h3 class="ptc-title">Account Information</h3>
  5. <div class="ptc-block">
  6. <div class="ptc-inner">
  7. <p class="ptc-label">QR code</p>
  8. <img class="qrcode" />
  9. </div>
  10. </div>
  11. <div class="ptc-block">
  12. <div class="ptc-inner">
  13. <div class="ptc-cell">
  14. <p class="ptc-label">Email</p>
  15. <p class="ptc-value">Rebecca123@gmail.com</p>
  16. </div>
  17. <div class="ptc-cell">
  18. <p class="ptc-label">Password</p>
  19. <p class="ptc-value">
  20. <span>********</span>
  21. <span class="primary ml354" @click="state = 1">Edit ></span>
  22. </p>
  23. </div>
  24. </div>
  25. </div>
  26. <div class="ptc-block">
  27. <div class="ptc-inner">
  28. <div class="ptc-cell">
  29. <p class="ptc-label">Account</p>
  30. <p class="ptc-value flex-ac">
  31. Rebecca123@gmail.com<i
  32. class="account-icon"
  33. :class="1 ? 'a-google' : 2 ? 'a-apple' : 'a-facebook'"
  34. ></i>
  35. </p>
  36. </div>
  37. </div>
  38. </div>
  39. </div>
  40. <div class="ptc-wrapper">
  41. <h3 class="ptc-title pr">
  42. Login Detail<button class="stroke-btn" @click="state = 2">Edit</button>
  43. </h3>
  44. <div class="ptc-block">
  45. <div class="ptc-inner">
  46. <div class="ptc-cell">
  47. <p class="ptc-label">Name</p>
  48. <p class="ptc-value">Rebecca123@gmail.com</p>
  49. </div>
  50. <div class="ptc-cell">
  51. <p class="ptc-label">Pone number</p>
  52. <p class="ptc-value">Rebecca123@gmail.com</p>
  53. </div>
  54. <div class="ptc-cell">
  55. <p class="ptc-label">Address</p>
  56. <p class="ptc-value">449WATERDALEROAD,HEIDELBERGWEST, VIC,3081</p>
  57. </div>
  58. </div>
  59. </div>
  60. </div>
  61. </div>
  62. <div v-else-if="state === 1" class="p-account ptc-wrapper">
  63. <h3 class="ptc-title">Change Password</h3>
  64. <div class="ptc-block">
  65. <div class="ptc-inner">
  66. <div class="ptc-cell">
  67. <p class="ptc-label">New password</p>
  68. <p class="ptc-value">
  69. <input
  70. class="ptc-input"
  71. type="password"
  72. placeholder="Please enter"
  73. />
  74. </p>
  75. </div>
  76. </div>
  77. </div>
  78. <div class="ptc-button-group">
  79. <div class="ptc-inner">
  80. <button class="ptc-button">SUBMIT</button>
  81. <button class="ptc-button ptc-button--stroke" @click="state = 0">
  82. BACK
  83. </button>
  84. </div>
  85. </div>
  86. </div>
  87. <div v-else class="p-account ptc-wrapper">
  88. <h3 class="ptc-title">Modify My profile</h3>
  89. <div class="ptc-block">
  90. <div class="ptc-inner">
  91. <div class="ptc-cell">
  92. <p class="ptc-label">Name</p>
  93. <p class="ptc-value">
  94. <input
  95. class="ptc-input"
  96. placeholder="Please enter your real name"
  97. />
  98. </p>
  99. </div>
  100. <div class="ptc-cell">
  101. <p class="ptc-label">Phone Number</p>
  102. <p class="ptc-value">
  103. <input
  104. class="ptc-input"
  105. placeholder="Please enter your phone number"
  106. />
  107. </p>
  108. </div>
  109. <div class="ptc-cell">
  110. <p class="ptc-label">Address</p>
  111. <p class="ptc-value">
  112. <input class="ptc-input mb24" placeholder="Road" />
  113. <input class="ptc-input mb24" placeholder="State" />
  114. <input class="ptc-input" placeholder="Zip code" />
  115. </p>
  116. </div>
  117. </div>
  118. </div>
  119. <div class="ptc-button-group">
  120. <div class="ptc-inner">
  121. <button class="ptc-button">SUBMIT</button>
  122. <button class="ptc-button ptc-button--stroke" @click="state = 0">
  123. BACK
  124. </button>
  125. </div>
  126. </div>
  127. </div>
  128. </template>
  129. <script setup lang="ts">
  130. import { ref, watch } from 'vue'
  131. const state = ref(0)
  132. watch(state, () => window.scrollTo(0, 0))
  133. </script>
  134. <style lang="scss">
  135. .p-account {
  136. .qrcode {
  137. width: 212px;
  138. height: 212px;
  139. background: #efefef;
  140. }
  141. .stroke-btn {
  142. position: absolute;
  143. top: 50%;
  144. transform: translateY(-50%);
  145. left: 310px;
  146. width: 132px;
  147. height: 56px;
  148. border-radius: 8px;
  149. border: 2px solid $primary-color;
  150. font-size: 32px;
  151. font-weight: bold;
  152. color: $primary-color;
  153. }
  154. .primary {
  155. margin-left: 48px;
  156. }
  157. .account-icon {
  158. margin-left: 24px;
  159. width: 56px;
  160. height: 56px;
  161. background-size: contain;
  162. }
  163. .a-google {
  164. background-image: url(@img/a-google.png);
  165. }
  166. .a-apple {
  167. background-image: url(@img/a-apple.png);
  168. }
  169. .a-facebook {
  170. background-image: url(@img/a-facebook.png);
  171. }
  172. .mb24 {
  173. margin-bottom: 24px;
  174. }
  175. .ml354 {
  176. margin-left: 354px;
  177. }
  178. }
  179. </style>