diff --git a/src/typings/api/api.d.ts b/src/typings/api/api.d.ts index f51eac13..4c355244 100644 --- a/src/typings/api/api.d.ts +++ b/src/typings/api/api.d.ts @@ -132,6 +132,8 @@ declare namespace Api { password?: string; /** 确认密码 */ confirmPassword?: string; + /** 用户类型 */ + userType?: string; } /** login token data */ diff --git a/src/views/_builtin/login/modules/register.vue b/src/views/_builtin/login/modules/register.vue index 87a5f7fa..d8e2bda8 100644 --- a/src/views/_builtin/login/modules/register.vue +++ b/src/views/_builtin/login/modules/register.vue @@ -14,6 +14,7 @@ defineOptions({ const { toggleLoginModule } = useRouterPush(); const { formRef, validate } = useNaiveForm(); const { loading: codeLoading, startLoading: startCodeLoading, endLoading: endCodeLoading } = useLoading(); +const { loading: registerLoading, startLoading: startRegisterLoading, endLoading: endRegisterLoading } = useLoading(); const codeUrl = ref(); const captchaEnabled = ref(false); @@ -25,7 +26,8 @@ const model: Api.Auth.RegisterForm = reactive({ username: '', code: '', password: '', - confirmPassword: '' + confirmPassword: '', + userType: 'sys_user' }); type RuleKey = Extract; @@ -43,9 +45,9 @@ const rules = computed>(() => { }); async function handleSubmit() { - await validate(); try { - // request to register + await validate(); + startRegisterLoading(); const { error } = await fetchRegister({ tenantId: model.tenantId, username: model.username, @@ -53,12 +55,20 @@ async function handleSubmit() { code: model.code, uuid: model.uuid, grantType: 'password', + userType: model.userType, clientId: import.meta.env.VITE_APP_CLIENT_ID }); - if (error) return; + if (error) { + handleFetchCaptchaCode(); + return; + } window.$message?.success('注册成功'); + // 注册成功后跳转到登录页 + toggleLoginModule('pwd-login'); } catch { handleFetchCaptchaCode(); + } finally { + endRegisterLoading(); } } @@ -93,9 +103,16 @@ handleFetchCaptchaCode();