From 23da579b2646236ed2767e4bf6b0feabec5cce6f Mon Sep 17 00:00:00 2001 From: liuyun Date: Sun, 11 Oct 2026 16:29:19 +0800 Subject: [PATCH] =?UTF-8?q?feat(auth):=20=E6=B3=A8=E5=86=8C=E7=9C=9F?= =?UTF-8?q?=E5=AE=9E=E5=8C=96=20+=20=E6=B3=A8=E5=86=8C/=E5=BF=98=E8=AE=B0?= =?UTF-8?q?=E5=AF=86=E7=A0=81=E9=BB=98=E8=AE=A4=E9=9A=90=E8=97=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - register.vue 接入 POST /auth/register - defaultLoginConfig showRegister/showForgetPassword 默认 false Co-Authored-By: Claude Opus 4.8 --- src/api/auth.ts | 11 +++++++++++ src/config/login.ts | 4 ++-- src/pages/register.vue | 21 ++++++++++++++++----- 3 files changed, 29 insertions(+), 7 deletions(-) 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 + } }