diff --git a/src/api/auth.ts b/src/api/auth.ts index 7c59b37..90fad6b 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -10,3 +10,14 @@ export function fetchMenus(): Promise { export function fetchPermissions(): Promise<{ super: boolean; permissions: string[] }> { return http.get<{ super: boolean; permissions: string[] }>('/auth/permissions') } + +/** 注册账号。 */ +export function register(data: { + tenantCode: string + username: string + password: string + email?: string + phone?: string +}): Promise<{ id: string; username: string }> { + return http.post<{ id: string; username: string }>('/auth/register', data) +} diff --git a/src/config/login.ts b/src/config/login.ts index 84d7218..8c08ce7 100644 --- a/src/config/login.ts +++ b/src/config/login.ts @@ -56,8 +56,8 @@ export const defaultLoginConfig: LoginConfig = { required: ['username', 'password'], }, showRemember: true, - showForgetPassword: true, - showRegister: true, + showForgetPassword: false, + showRegister: false, showCaptcha: true, homePath: '/', } diff --git a/src/pages/register.vue b/src/pages/register.vue index 55c7e4a..4e09476 100644 --- a/src/pages/register.vue +++ b/src/pages/register.vue @@ -60,6 +60,7 @@ import { ElMessage, type FormInstance, type FormRules } from 'element-plus' import { useAppStore } from '@/stores/modules/app' import { defaultLoginConfig } from '@/config/login' import { applyTheme } from '@/utils/theme' +import { register } from '@/api/auth' const router = useRouter() const app = useAppStore() @@ -102,11 +103,21 @@ async function onSubmit(): Promise { return } loading.value = true - // mock:后端暂无注册接口,模拟耗时 - await new Promise((resolve) => setTimeout(resolve, 300)) - loading.value = false - ElMessage.success('注册成功,请登录') - router.push({ path: '/login', query: { username: model.username } }) + try { + await register({ + tenantCode: config.tenantCode, + username: model.username, + password: model.password, + email: model.email, + phone: model.phone || undefined, + }) + ElMessage.success('注册成功,请登录') + router.push({ path: '/login', query: { username: model.username } }) + } catch (e) { + ElMessage.error(e instanceof Error ? e.message : '注册失败') + } finally { + loading.value = false + } }