From 4919a311c32d321708122f09079e3e477ba2eeb7 Mon Sep 17 00:00:00 2001 From: andy Date: Tue, 30 Jun 2026 17:25:52 +0800 Subject: [PATCH] =?UTF-8?q?=E6=94=B9=E9=80=A0=E7=9F=AD=E4=BF=A1=E5=8F=91?= =?UTF-8?q?=E9=80=81=E5=9B=BE=E5=BD=A2=E9=AA=8C=E8=AF=81=E7=A0=81=E6=B5=81?= =?UTF-8?q?=E7=A8=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/auth.ts | 24 ++++++++-- src/api/mock.ts | 6 ++- src/views/login/LoginView.vue | 84 +++++++++++++++++++++++++++++++++-- 3 files changed, 105 insertions(+), 9 deletions(-) diff --git a/src/api/auth.ts b/src/api/auth.ts index c4f247a..13fff33 100644 --- a/src/api/auth.ts +++ b/src/api/auth.ts @@ -12,17 +12,35 @@ export interface OrganizationMemberInfo { memberRoleId?: string } +export interface SendMobileCodePayload { + phone: string + imageRandomStr: string + imageCode: string +} + const basicAuth = () => { const raw = `${env.clientId}:${env.clientSecret}` return `Basic ${window.btoa(raw)}` } -export const sendMobileCode = async (phone: string) => { - if (env.useMock) return mockApi.sendMobileCode(phone) - return await http.get(joinUrl(env.adminBase, 'platformUser/sendMobileCode', phone), { +export const getImageCodeUrl = (imageRandomStr: string) => { + const params = new URLSearchParams({ + randomStr: imageRandomStr, + t: String(Date.now()) + }) + return `${joinUrl(env.authBase, 'code/image')}?${params.toString()}` +} + +export const sendMobileCode = async (payload: SendMobileCodePayload) => { + if (env.useMock) return mockApi.sendMobileCode(payload) + return await http.get(joinUrl(env.adminBase, 'platformUser/sendMobileCode', payload.phone), { headers: { clientId: env.clientId, clientConfigId: env.clientConfigId + }, + params: { + imageRandomStr: payload.imageRandomStr, + imageCode: payload.imageCode } }) as unknown as boolean } diff --git a/src/api/mock.ts b/src/api/mock.ts index 80dc465..6aa8491 100644 --- a/src/api/mock.ts +++ b/src/api/mock.ts @@ -129,9 +129,11 @@ const page = (records: T[], pageNum: number, pageSize: number): PageResponse< } export const mockApi = { - async sendMobileCode(phone: string) { + async sendMobileCode(payload: { phone: string; imageRandomStr?: string; imageCode?: string }) { await wait() - return { data: true, msg: phone ? '5678nianxx' : '请输入手机号' } + if (!payload.phone) return { data: false, msg: '请输入手机号' } + if (!payload.imageRandomStr || !payload.imageCode) return { data: false, msg: '请输入图形验证码' } + return { data: true, msg: '5678nianxx' } }, async loginByMobile(phone: string): Promise { diff --git a/src/views/login/LoginView.vue b/src/views/login/LoginView.vue index 20947c0..c120c27 100644 --- a/src/views/login/LoginView.vue +++ b/src/views/login/LoginView.vue @@ -1,9 +1,9 @@