index.vue 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869
  1. <template>
  2. <div class="p-register">
  3. <router-link class="nav-home" to="/">
  4. <i class="icon"></i><span class="text">HOME</span>
  5. </router-link>
  6. <div class="logo"></div>
  7. <div class="container">
  8. <div class="ptc-form">
  9. <div class="title">Welcome to PTC Care Plus</div>
  10. <div class="ptc-form-item">
  11. <input
  12. v-model="values.email"
  13. class="ptc-input"
  14. placeholder="email address"
  15. />
  16. </div>
  17. <div class="ptc-form-item">
  18. <input
  19. v-model="values.password"
  20. class="ptc-input"
  21. type="password"
  22. placeholder="password"
  23. />
  24. </div>
  25. <div class="ptc-form-item">
  26. <button class="ptc-button" @click="handleSubmit(onSubmit)">
  27. CONTINUE
  28. </button>
  29. </div>
  30. <div class="ptc-form-item">
  31. <p class="tip">
  32. Already have an accout ?
  33. <router-link class="primary" to="/login">Sign in</router-link>
  34. </p>
  35. </div>
  36. </div>
  37. <div class="policy">
  38. By clicking “Continue” you agree to PTC’s
  39. <span class="primary">terms of use</span> and confirm that you’ve read
  40. and acknowledged PTC’s <span class="primary">privacy policy</span>
  41. </div>
  42. </div>
  43. </div>
  44. </template>
  45. <script setup lang="ts">
  46. import { string } from 'yup'
  47. import { useRouter } from 'vue-router'
  48. import useForm from '@/hooks/useForm'
  49. import { register } from '@/service/user'
  50. import Toast from '@/components/toast'
  51. const router = useRouter()
  52. const { values, handleSubmit, reset } = useForm<ApiUser.Register.Request>({
  53. schema: {
  54. email: string().email().required(),
  55. password: string().required(),
  56. },
  57. })
  58. async function onSubmit() {
  59. values.name = values.email
  60. values.password_confirmation = values.password
  61. await register(values as any)
  62. Toast('register success')
  63. setTimeout(() => router.push('/login'), 500)
  64. }
  65. </script>