useLoginAndDownload.ts 3.2 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128
  1. import type { FormInstance, FormRules } from 'element-plus'
  2. import { registerApi } from '@/api/model/user'
  3. import { useUserStore } from '@/stores/modules/user'
  4. const { isLoginAndDownloadOpen } = useLoginAndDownLoadModal()
  5. // const userStore = useUserStore()
  6. const loginForm = ref<any>({
  7. mail: '',
  8. code: '',
  9. })
  10. const emailStep = ref<number>(0)
  11. const seconds = ref<number>(0)
  12. const selectedAccount = ref<string>('')
  13. const errorCodeTxt = ref<string>('')
  14. const isEmailGoogle = ref<string>('')
  15. export default function useRegister() {
  16. const nextStep = () => {
  17. emailStep.value++
  18. }
  19. const backStep = () => {
  20. if (emailStep.value > 0)
  21. emailStep.value--
  22. }
  23. // const register = async () => {
  24. // try {
  25. // const form = {
  26. // ...params.value,
  27. // purchaseCategory: params.value.purchaseCategory.join(','),
  28. // }
  29. // await registerApi(form)
  30. // nextStep()
  31. // }
  32. // catch (error) {
  33. // console.log(error)
  34. // }
  35. // }
  36. /**
  37. * 二选一选择邮箱--下一步
  38. */
  39. const onSelectEmail = () => {
  40. selectedAccount.value = ''
  41. loginForm.value.mail = ''
  42. nextStep()
  43. }
  44. /**
  45. * 选择曾经登陆过的账号--下一步
  46. */
  47. const onSelectAccount = (item: any) => {
  48. selectedAccount.value = item.email
  49. loginForm.value.mail = item.email
  50. emailStep.value = 1
  51. }
  52. /**
  53. * dao: 倒计时60秒
  54. */
  55. const countSeconds = () => {
  56. seconds.value = 60
  57. const timer = setInterval(() => {
  58. seconds.value--
  59. if (seconds.value === 0)
  60. clearInterval(timer)
  61. }, 1000)
  62. }
  63. /**
  64. * 邮箱--发送验证码
  65. */
  66. const getMailCode = async () => {
  67. try {
  68. if (seconds.value > 0)
  69. return
  70. // 获取验证码
  71. // const res = await registerApi(loginForm.value.mail)
  72. countSeconds()
  73. }
  74. catch (error) {
  75. console.error('Error sending email code:', error)
  76. }
  77. }
  78. /**
  79. * 邮箱--验证是否存在--是否与已存在google的邮箱--下一步
  80. * @returns
  81. */
  82. async function sendEmail(formEl: FormInstance | undefined) {
  83. if (!formEl)
  84. return
  85. await formEl.validate(async (valid, fields) => {
  86. if (valid) {
  87. // 验证已存在google的邮箱
  88. isEmailGoogle.value = 'google' // 模拟google邮箱验证
  89. nextStep()
  90. }
  91. else { console.log('error submit!', fields) }
  92. })
  93. }
  94. /**
  95. * 邮箱--验证码--完成注册
  96. * @returns
  97. */
  98. async function finishCode(formEl: FormInstance | undefined) {
  99. errorCodeTxt.value = ''
  100. if (!formEl)
  101. return
  102. await formEl.validate(async (valid, fields) => {
  103. if (valid)
  104. await handleLogin()
  105. else console.log('error submit!', fields)
  106. })
  107. }
  108. /**
  109. * 登录--提交
  110. */
  111. async function handleLogin() {
  112. try {
  113. // await login(loginForm.value)
  114. // closeLoginModal({ status: true, isFirstLogin: true })
  115. isLoginAndDownloadOpen.value = false
  116. }
  117. catch (err) {
  118. errorCodeTxt.value = 'The code is wrong or invalid.'
  119. }
  120. }
  121. return { emailStep, loginForm, selectedAccount, onSelectAccount, errorCodeTxt, seconds, isEmailGoogle, sendEmail, nextStep, onSelectEmail, finishCode, backStep, getMailCode }
  122. }