LoginComponent.vue 2.3 KB

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