useLoginAndDownload.ts 4.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166
  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>(4)
  11. const selectedAccount = ref<string>('')
  12. const isEmailGoogle = ref<string>('')
  13. export default function useRegister() {
  14. const seconds = ref<number>(0)
  15. const errorCodeTxt = ref<string>('')
  16. const formInfo = ref<any>({
  17. firstName: '',
  18. lastName: '',
  19. mobile: '',
  20. mobileAreaCode: '+86',
  21. type: undefined,
  22. companyName: '',
  23. annualPurchaseAmount: undefined,
  24. mark: '',
  25. })
  26. const visible = computed(() => formInfo.value.type === 'suppliers')
  27. const nextStep = () => {
  28. emailStep.value++
  29. }
  30. const setEmailStep = (val: number) => {
  31. emailStep.value = val
  32. }
  33. const backStep = () => {
  34. if (emailStep.value > 0)
  35. emailStep.value--
  36. }
  37. // const register = async () => {
  38. // try {
  39. // const form = {
  40. // ...params.value,
  41. // purchaseCategory: params.value.purchaseCategory.join(','),
  42. // }
  43. // await registerApi(form)
  44. // nextStep()
  45. // }
  46. // catch (error) {
  47. // console.log(error)
  48. // }
  49. // }
  50. /**
  51. * 二选一选择邮箱--下一步
  52. */
  53. const onSelectEmail = () => {
  54. selectedAccount.value = ''
  55. loginForm.value.mail = ''
  56. nextStep()
  57. }
  58. /**
  59. * 选择曾经登陆过的账号--下一步
  60. */
  61. const onSelectAccount = (item: any) => {
  62. selectedAccount.value = item.email
  63. loginForm.value.mail = item.email
  64. emailStep.value = 1
  65. }
  66. /**
  67. * dao: 倒计时60秒
  68. */
  69. const countSeconds = () => {
  70. seconds.value = 60
  71. const timer = setInterval(() => {
  72. seconds.value--
  73. if (seconds.value === 0)
  74. clearInterval(timer)
  75. }, 1000)
  76. }
  77. /**
  78. * 邮箱--发送验证码
  79. */
  80. const getMailCode = async () => {
  81. try {
  82. if (seconds.value > 0)
  83. return
  84. // 获取验证码
  85. // const res = await registerApi(loginForm.value.mail)
  86. countSeconds()
  87. }
  88. catch (error) {
  89. console.error('Error sending email code:', error)
  90. }
  91. }
  92. /**
  93. * 邮箱--验证是否存在--是否与已存在google的邮箱--下一步
  94. * @returns
  95. */
  96. async function sendEmail(formEl: FormInstance | undefined) {
  97. if (!formEl)
  98. return
  99. await formEl.validate(async (valid, fields) => {
  100. if (valid) {
  101. // 验证已存在google的邮箱
  102. // isEmailGoogle.value = 'google' // 模拟google邮箱验证
  103. nextStep()
  104. }
  105. else { console.log('error submit!', fields) }
  106. })
  107. }
  108. /**
  109. * 邮箱--验证码--完成注册
  110. * @returns
  111. */
  112. async function finishCode(formEl: FormInstance | undefined) {
  113. errorCodeTxt.value = ''
  114. if (!formEl)
  115. return
  116. await formEl.validate(async (valid, fields) => {
  117. if (valid)
  118. await handleLogin()
  119. else console.log('error submit!', fields)
  120. })
  121. }
  122. /**
  123. * 登录--提交
  124. */
  125. async function handleLogin() {
  126. try {
  127. // await login(loginForm.value)
  128. // closeLoginModal({ status: true, isFirstLogin: true })
  129. isLoginAndDownloadOpen.value = false
  130. }
  131. catch (err) {
  132. errorCodeTxt.value = 'The code is wrong or invalid.'
  133. }
  134. }
  135. // ------------------------ 填写信息部分 ------------------------
  136. const setSubmitInfo = (formEl: FormInstance | undefined) => {
  137. if (!formEl)
  138. return
  139. emailStep.value = 4
  140. // await formEl.validate(async (valid, fields) => {
  141. // if (valid)
  142. // await handleLogin()
  143. // else console.log('error submit!', fields)
  144. // })
  145. }
  146. /**
  147. * 已经填写了用户信息---提交请求
  148. */
  149. const onSubmitRequest = () => {
  150. emailStep.value = 4
  151. }
  152. return { emailStep, visible, loginForm, formInfo, selectedAccount, setEmailStep, setSubmitInfo, onSubmitRequest, onSelectAccount, errorCodeTxt, seconds, isEmailGoogle, sendEmail, nextStep, onSelectEmail, finishCode, backStep, getMailCode }
  153. }