|
@@ -1,34 +1,42 @@
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
import type { FormInstance, FormRules } from 'element-plus'
|
|
-import { registerApi } from '@/api/model/user'
|
|
|
|
import { useUserStore } from '@/stores/modules/user'
|
|
import { useUserStore } from '@/stores/modules/user'
|
|
|
|
+import { useCommonStore } from '@/stores/modules/common'
|
|
|
|
+import { getEmailCodeApi, getUpdateUserInfoApi, submitInfoApi, validateEmailIsExistApi } from '@/api/model/user'
|
|
|
|
|
|
-const { isLoginAndDownloadOpen } = useLoginAndDownLoadModal()
|
|
|
|
-
|
|
|
|
-// const userStore = useUserStore()
|
|
|
|
|
|
+const { closeLoginAndDownloadModal } = useLoginAndDownLoadModal()
|
|
|
|
+const { loading, onGoogleLogin } = useGoogleLogin()
|
|
|
|
|
|
const loginForm = ref<any>({
|
|
const loginForm = ref<any>({
|
|
- mail: '',
|
|
|
|
- code: '',
|
|
|
|
|
|
+ email: '',
|
|
|
|
+ captcha: '',
|
|
})
|
|
})
|
|
-const emailStep = ref<number>(4)
|
|
|
|
-const selectedAccount = ref<string>('')
|
|
|
|
-const isEmailGoogle = ref<string>('')
|
|
|
|
-
|
|
|
|
|
|
+const emailStep = ref<number>(0)
|
|
|
|
+const isEmailGoogle = ref<boolean>(false)
|
|
|
|
+const selectedMethod = ref<string>('google')
|
|
export default function useRegister() {
|
|
export default function useRegister() {
|
|
const seconds = ref<number>(0)
|
|
const seconds = ref<number>(0)
|
|
const errorCodeTxt = ref<string>('')
|
|
const errorCodeTxt = ref<string>('')
|
|
const formInfo = ref<any>({
|
|
const formInfo = ref<any>({
|
|
firstName: '',
|
|
firstName: '',
|
|
|
|
+ catalogueId: '',
|
|
lastName: '',
|
|
lastName: '',
|
|
mobile: '',
|
|
mobile: '',
|
|
mobileAreaCode: '+86',
|
|
mobileAreaCode: '+86',
|
|
- type: undefined,
|
|
|
|
|
|
+ customServer: 'browing',
|
|
companyName: '',
|
|
companyName: '',
|
|
- annualPurchaseAmount: undefined,
|
|
|
|
- mark: '',
|
|
|
|
|
|
+ purchaseAmount: undefined,
|
|
|
|
+ purchaseRequest: '',
|
|
|
|
|
|
})
|
|
})
|
|
- const visible = computed(() => formInfo.value.type === 'suppliers')
|
|
|
|
|
|
+ const visible = computed(() => formInfo.value.customServer === 'suppliers')
|
|
|
|
+ watch(() => visible.value, (val) => {
|
|
|
|
+ if (!val) {
|
|
|
|
+ // 如果visible变为false,重置formInfo的相关字段
|
|
|
|
+ formInfo.value.companyName = ''
|
|
|
|
+ formInfo.value.purchaseAmount = undefined
|
|
|
|
+ formInfo.value.purchaseRequest = ''
|
|
|
|
+ }
|
|
|
|
+ })
|
|
|
|
|
|
const nextStep = () => {
|
|
const nextStep = () => {
|
|
emailStep.value++
|
|
emailStep.value++
|
|
@@ -40,35 +48,28 @@ export default function useRegister() {
|
|
if (emailStep.value > 0)
|
|
if (emailStep.value > 0)
|
|
emailStep.value--
|
|
emailStep.value--
|
|
}
|
|
}
|
|
- // const register = async () => {
|
|
|
|
- // try {
|
|
|
|
- // const form = {
|
|
|
|
- // ...params.value,
|
|
|
|
- // purchaseCategory: params.value.purchaseCategory.join(','),
|
|
|
|
- // }
|
|
|
|
- // await registerApi(form)
|
|
|
|
- // nextStep()
|
|
|
|
- // }
|
|
|
|
- // catch (error) {
|
|
|
|
- // console.log(error)
|
|
|
|
- // }
|
|
|
|
- // }
|
|
|
|
-
|
|
|
|
/**
|
|
/**
|
|
* 二选一选择邮箱--下一步
|
|
* 二选一选择邮箱--下一步
|
|
*/
|
|
*/
|
|
const onSelectEmail = () => {
|
|
const onSelectEmail = () => {
|
|
- selectedAccount.value = ''
|
|
|
|
- loginForm.value.mail = ''
|
|
|
|
|
|
+ selectedMethod.value = 'email'
|
|
|
|
+ loginForm.value.email = ''
|
|
nextStep()
|
|
nextStep()
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* 选择曾经登陆过的账号--下一步
|
|
* 选择曾经登陆过的账号--下一步
|
|
*/
|
|
*/
|
|
- const onSelectAccount = (item: any) => {
|
|
|
|
- selectedAccount.value = item.email
|
|
|
|
- loginForm.value.mail = item.email
|
|
|
|
- emailStep.value = 1
|
|
|
|
|
|
+ const onSelectAccount = async (item: any) => {
|
|
|
|
+ console.log('onSelectAccount', item, loading.value)
|
|
|
|
+ // type: 'google' | 'email'
|
|
|
|
+ if (item.type === 'google') {
|
|
|
|
+ const result = await onGoogleLogin()
|
|
|
|
+ await onGoogleLoginSuccess(result)
|
|
|
|
+ }
|
|
|
|
+ if (item.type === 'email') {
|
|
|
|
+ loginForm.value.email = item.email
|
|
|
|
+ emailStep.value = 1
|
|
|
|
+ }
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* dao: 倒计时60秒
|
|
* dao: 倒计时60秒
|
|
@@ -89,7 +90,7 @@ export default function useRegister() {
|
|
if (seconds.value > 0)
|
|
if (seconds.value > 0)
|
|
return
|
|
return
|
|
// 获取验证码
|
|
// 获取验证码
|
|
- // const res = await registerApi(loginForm.value.mail)
|
|
|
|
|
|
+ await getEmailCodeApi({ account: loginForm.value.email, type: 's003_login' })
|
|
countSeconds()
|
|
countSeconds()
|
|
}
|
|
}
|
|
catch (error) {
|
|
catch (error) {
|
|
@@ -105,9 +106,16 @@ export default function useRegister() {
|
|
return
|
|
return
|
|
await formEl.validate(async (valid, fields) => {
|
|
await formEl.validate(async (valid, fields) => {
|
|
if (valid) {
|
|
if (valid) {
|
|
- // 验证已存在google的邮箱
|
|
|
|
-
|
|
|
|
- // isEmailGoogle.value = 'google' // 模拟google邮箱验证
|
|
|
|
|
|
+ // 验证已存在google的邮箱
|
|
|
|
+ const res: any = await validateEmailIsExistApi({ email: loginForm.value.email })
|
|
|
|
+ if (!res || res !== 'google')
|
|
|
|
+ // 如果没有google的邮箱,直接下一步,或者没有注册过邮箱
|
|
|
|
+ isEmailGoogle.value = false
|
|
|
|
+ if (res === 'google') {
|
|
|
|
+ // 显示google登陆按钮
|
|
|
|
+ isEmailGoogle.value = true
|
|
|
|
+ loginForm.value.email = ''
|
|
|
|
+ }
|
|
nextStep()
|
|
nextStep()
|
|
}
|
|
}
|
|
else { console.log('error submit!', fields) }
|
|
else { console.log('error submit!', fields) }
|
|
@@ -122,45 +130,83 @@ export default function useRegister() {
|
|
if (!formEl)
|
|
if (!formEl)
|
|
return
|
|
return
|
|
await formEl.validate(async (valid, fields) => {
|
|
await formEl.validate(async (valid, fields) => {
|
|
- if (valid)
|
|
|
|
- await handleLogin()
|
|
|
|
-
|
|
|
|
- else console.log('error submit!', fields)
|
|
|
|
|
|
+ if (valid) {
|
|
|
|
+ await handleLogin({
|
|
|
|
+ email: loginForm.value.email,
|
|
|
|
+ captcha: loginForm.value.captcha,
|
|
|
|
+ type: 'email',
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
+ else { console.log('error submit!', fields) }
|
|
})
|
|
})
|
|
}
|
|
}
|
|
/**
|
|
/**
|
|
* 登录--提交
|
|
* 登录--提交
|
|
*/
|
|
*/
|
|
- async function handleLogin() {
|
|
|
|
|
|
+ async function handleLogin(params: any) {
|
|
try {
|
|
try {
|
|
- // await login(loginForm.value)
|
|
|
|
- // closeLoginModal({ status: true, isFirstLogin: true })
|
|
|
|
- isLoginAndDownloadOpen.value = false
|
|
|
|
|
|
+ const { login } = useUserStore()
|
|
|
|
+ await login(params)
|
|
|
|
+ console.log('登陆成功后------1111', emailStep.value)
|
|
|
|
+ // closeLoginAndDownloadModal({ status: true, isFirstLogin: true })
|
|
}
|
|
}
|
|
- catch (err) {
|
|
|
|
- errorCodeTxt.value = 'The code is wrong or invalid.'
|
|
|
|
|
|
+ catch (err: any) {
|
|
|
|
+ console.log('Login error:', err, selectedMethod.value)
|
|
|
|
+ if (selectedMethod.value === 'email')
|
|
|
|
+ errorCodeTxt.value = 'The code is wrong or invalid.'
|
|
|
|
+ else
|
|
|
|
+ ElMessage.error(err.message || 'Login failed, please try again later.')
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+ /**
|
|
|
|
+ * google登陆成功
|
|
|
|
+ */
|
|
|
|
+ async function onGoogleLoginSuccess(info: any) {
|
|
|
|
+ await handleLogin({
|
|
|
|
+ googleKey: info.token,
|
|
|
|
+ email: info.userInfo.email,
|
|
|
|
+ type: 'google',
|
|
|
|
+ })
|
|
|
|
+ }
|
|
|
|
|
|
// ------------------------ 填写信息部分 ------------------------
|
|
// ------------------------ 填写信息部分 ------------------------
|
|
- const setSubmitInfo = (formEl: FormInstance | undefined) => {
|
|
|
|
|
|
+
|
|
|
|
+ const setSubmitInfo = async (formEl: FormInstance | undefined) => {
|
|
if (!formEl)
|
|
if (!formEl)
|
|
return
|
|
return
|
|
- emailStep.value = 4
|
|
|
|
- // await formEl.validate(async (valid, fields) => {
|
|
|
|
- // if (valid)
|
|
|
|
- // await handleLogin()
|
|
|
|
|
|
+ await formEl.validate(async (valid, fields) => {
|
|
|
|
+ if (valid) {
|
|
|
|
+ const { downloadCatalog } = storeToRefs(useCommonStore())
|
|
|
|
+ // 提交用户信息
|
|
|
|
+ console.log('submit info', formInfo.value)
|
|
|
|
+ formInfo.value.catalogueId = downloadCatalog.value?.id || ''
|
|
|
|
+ await submitInfoApi(formInfo.value)
|
|
|
|
+ // 更新用户信息
|
|
|
|
+ const res = await getUpdateUserInfoApi()
|
|
|
|
+ const { updateUserInfo } = useUserStore()
|
|
|
|
+ updateUserInfo(res)
|
|
|
|
+ emailStep.value = 4
|
|
|
|
+ }
|
|
|
|
|
|
- // else console.log('error submit!', fields)
|
|
|
|
- // })
|
|
|
|
|
|
+ else { console.log('error submit!', fields) }
|
|
|
|
+ })
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 已经填写了用户信息---提交请求
|
|
* 已经填写了用户信息---提交请求
|
|
*/
|
|
*/
|
|
- const onSubmitRequest = () => {
|
|
|
|
|
|
+ const onSubmitRequest = async () => {
|
|
|
|
+ const { downloadCatalog } = storeToRefs(useCommonStore())
|
|
|
|
+ const { userInfo } = storeToRefs(useUserStore())
|
|
|
|
+ // 提交用户信息
|
|
|
|
+ const params = {
|
|
|
|
+ catalogueId: downloadCatalog.value?.id || '',
|
|
|
|
+ firstName: userInfo.value?.firstName,
|
|
|
|
+ lastName: userInfo.value?.lastName,
|
|
|
|
+ }
|
|
|
|
+ await submitInfoApi(params)
|
|
emailStep.value = 4
|
|
emailStep.value = 4
|
|
}
|
|
}
|
|
|
|
|
|
- return { emailStep, visible, loginForm, formInfo, selectedAccount, setEmailStep, setSubmitInfo, onSubmitRequest, onSelectAccount, errorCodeTxt, seconds, isEmailGoogle, sendEmail, nextStep, onSelectEmail, finishCode, backStep, getMailCode }
|
|
|
|
|
|
+ return { emailStep, visible, onGoogleLoginSuccess, loginForm, formInfo, setEmailStep, setSubmitInfo, onSubmitRequest, onSelectAccount, errorCodeTxt, seconds, isEmailGoogle, sendEmail, nextStep, onSelectEmail, finishCode, backStep, getMailCode }
|
|
}
|
|
}
|