From 7c64f0c76a3429d94a508b3fb54ae35df1a64950 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Wei=5F=E4=BD=B3?= Date: Thu, 20 Nov 2025 11:20:16 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E5=90=AF=E7=94=A8=E7=9F=AD=E4=BF=A1?= =?UTF-8?q?=E9=AA=8C=E8=AF=81=E7=A0=81=E5=8F=91=E9=80=81=E4=B8=8E=E7=99=BB?= =?UTF-8?q?=E5=BD=95=E5=8A=9F=E8=83=BD=EF=BC=8C=E6=9B=B4=E6=96=B0API?= =?UTF-8?q?=E8=B7=AF=E5=BE=84=E5=B9=B6=E7=A7=BB=E9=99=A4=E6=A8=A1=E6=8B=9F?= =?UTF-8?q?=E9=80=BB=E8=BE=91=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- web1/src/api/index.js | 6 ++-- web1/src/views/login/index.vue | 66 ++++++++++++++-------------------- 2 files changed, 30 insertions(+), 42 deletions(-) diff --git a/web1/src/api/index.js b/web1/src/api/index.js index 3ff9d86..c1b2dd2 100644 --- a/web1/src/api/index.js +++ b/web1/src/api/index.js @@ -8,9 +8,9 @@ export default { // 手机号 registerPhone: (data) => request.post('/app-user/register', data, { noNeedToken: true }), loginPhone: (data) => request.post('/app-user/login', data, { noNeedToken: true }), - // 短信验证码(待后端实现) - sendVerifyCode: (data) => request.post('/app-user/send-verify-code', data, { noNeedToken: true }), - loginWithVerifyCode: (data) => request.post('/app-user/login-with-code', data, { noNeedToken: true }), + // 短信验证码 + sendVerifyCode: (data) => request.post('/sms/send-code', data, { noNeedToken: true }), + loginWithVerifyCode: (data) => request.post('/sms/login', data, { noNeedToken: true }), // pages getIndustryList: () => request.get('/industry/list'), getHistoryList: (params) => request.get('/app-valuations/', { params }), diff --git a/web1/src/views/login/index.vue b/web1/src/views/login/index.vue index 07eb5bb..f97b9de 100644 --- a/web1/src/views/login/index.vue +++ b/web1/src/views/login/index.vue @@ -115,10 +115,7 @@ async function handleSendCode() { } try { - // TODO: 调用发送验证码接口 - // await api.sendVerifyCode({ phone }) - - // 模拟发送成功 + await api.sendVerifyCode({ phone }) $message.success('验证码已发送') // 开始倒计时 @@ -131,7 +128,7 @@ async function handleSendCode() { } }, 1000) } catch (error) { - $message.error('验证码发送失败,请重试') + // error is handled by interceptor usually, but we can catch specific ones if needed } } @@ -149,45 +146,36 @@ async function handleLogin() { return } - // TODO: 等待后端接口完成后再启用验证码验证 - // if (!verifyCode) { - // $message.warning('请输入验证码') - // return - // } - // - // if (verifyCode.length < 4) { - // $message.warning('请输入完整的验证码') - // return - // } + if (!verifyCode) { + $message.warning('请输入验证码') + return + } + + if (verifyCode.length < 4) { + $message.warning('请输入完整的验证码') + return + } loading.value = true try { - // TODO: 调用登录接口,传入手机号和验证码 - // const res = await api.loginWithVerifyCode({ phone, verifyCode }) - // setToken(res.access_token) - - // 模拟登录成功(暂时使用原有的注册+登录逻辑) - await api.registerPhone({ phone }) - .then(res => { - return api.loginPhone({ phone, password: phone.slice(5, 11) }) - }) - .catch(res => { - if (res.error && res.error.access_token) { - setToken(res.error.access_token) - localStorage.setItem('phone', phone) - - if (query.redirect) { - const path = query.redirect - Reflect.deleteProperty(query, 'redirect') - router.push({ path, query }) - } else { - router.push('/home') - } - } - }) + const res = await api.loginWithVerifyCode({ phone, code: verifyCode }) + if (res.data?.access_token) { + setToken(res.data.access_token) + localStorage.setItem('phone', phone) + + if (query.redirect) { + const path = query.redirect + Reflect.deleteProperty(query, 'redirect') + router.push({ path, query }) + } else { + router.push('/home') + } + } else { + $message.error('登录失败:未获取到token') + } } catch (error) { - $message.error('登录失败,请重试') + console.error(error) } finally { loading.value = false }