LoginComponent.vue 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172
  1. <template>
  2. <template-component>
  3. <template #body>
  4. <login-step v-if="step === 'login'"
  5. @goToRegisterStep="goToRegisterStep"
  6. @goToSendOtpStep="goToSendOtpStep"
  7. @goToForgetStep="goToForgetStep"
  8. @login-success="emitLoginSuccess" />
  9. <register-step v-if="showRegisterComponent"
  10. :register-step-prop="this.step"
  11. @goToLoginStep="goToLoginStep"
  12. @register="onRegister"
  13. @login-success="emitLoginSuccess" />
  14. <forget-step v-if="step === 'forget'"
  15. @goToLoginStep="goToLoginStep"
  16. @register="onRegister"
  17. @login-success="emitLoginSuccess" />
  18. <information-step v-if="step === 'information'"
  19. @goToLoginStep="goToLoginStep"
  20. @login-success="emitLoginSuccess" />
  21. </template>
  22. </template-component>
  23. </template>
  24. <script>
  25. import LoginStep from 'src/components/Auth/LoginStep.vue'
  26. import ForgetStep from 'src/components/Auth/ForgetStep.vue'
  27. import RegisterStep from 'src/components/Auth/RegisterStep.vue'
  28. import InformationStep from 'src/components/Auth/InformationStep.vue'
  29. import TemplateComponent from 'src/components/Auth/TemplateComponent.vue'
  30. export default {
  31. name: 'LoginComponent',
  32. components: { TemplateComponent, LoginStep, RegisterStep, InformationStep, ForgetStep },
  33. props: {
  34. redirect: {
  35. type: Boolean,
  36. default: false
  37. }
  38. },
  39. data () {
  40. return {
  41. step: 'login'
  42. }
  43. },
  44. computed: {
  45. showRegisterComponent() {
  46. return this.step === 'getUsername' || this.step === 'sendOtp'
  47. }
  48. },
  49. methods: {
  50. goToRegisterStep () {
  51. this.step = 'getUsername'
  52. },
  53. goToSendOtpStep () {
  54. this.step = 'sendOtp'
  55. },
  56. goToForgetStep () {
  57. this.step = 'forget'
  58. },
  59. goToLoginStep () {
  60. this.step = 'login'
  61. },
  62. onRegister () {
  63. // console.log('onRegister')
  64. },
  65. emitLoginSuccess (payload) {
  66. this.$emit('login-success', payload)
  67. }
  68. }
  69. }
  70. </script>