diff --git a/apps/h5-partner/src/pages/LoginPage.tsx b/apps/h5-partner/src/pages/LoginPage.tsx index 96c310c..83b94f3 100644 --- a/apps/h5-partner/src/pages/LoginPage.tsx +++ b/apps/h5-partner/src/pages/LoginPage.tsx @@ -14,11 +14,10 @@ import { usePartnerSession } from '../contexts/PartnerSessionContext'; import { partnerHomePath } from '../lib/partnerAccess'; import { bindPartnerWechatAfterSmsLogin, - canPartnerUseWechatLogin, fetchClientConfig, loginPartnerWithWechat, - PARTNER_WECHAT_LOGIN_HINT, } from '../lib/wechat-auth'; +import { toastError } from '../lib/toast'; import { isWechatEnv } from '../lib/weixin'; const REMEMBER_PHONE_KEY = 'partner_remember_phone'; @@ -114,7 +113,9 @@ export default function LoginPage() { function ensureAgreed() { if (!agreed) { - setMsg('请先勾选并同意用户协议'); + const tip = '请先勾选并同意用户协议'; + setMsg(tip); + toastError(tip); agreementRef.current?.scrollIntoView({ behavior: 'smooth', block: 'center' }); return false; } @@ -196,25 +197,28 @@ export default function LoginPage() { setMsg(''); if (!isWechatEnv()) { setMsg(WECHAT_INAPP_REQUIRED_MSG); - return; - } - const canUseWechat = await canPartnerUseWechatLogin({ - profile: savedProfile, - phone, - }); - if (!canUseWechat) { - setMsg(PARTNER_WECHAT_LOGIN_HINT); + toastError(WECHAT_INAPP_REQUIRED_MSG); return; } setWxLoading(true); try { + // 直接发起 OAuth;未绑定账号由后端返回「请先短信登录」提示 const session = await loginPartnerWithWechat(); if (session) { applySession(session); await finishLoginNavigate(); + return; } + if (session === null) { + const tip = '微信授权暂未开启,请使用验证码登录'; + setMsg(tip); + toastError(tip); + } + // session === undefined:已跳转微信授权页 } catch (e) { - setMsg(formatWechatError(e)); + const tip = formatWechatError(e); + setMsg(tip); + toastError(tip); } finally { setWxLoading(false); } @@ -375,13 +379,18 @@ export default function LoginPage() { - {wxLoading ? '登录中...' : '微信一键登录'} + {wxLoading ? '跳转授权中...' : '微信一键登录'} + {msg && ( +

+ {msg} +

+ )} )}

- 手机号验证成功后,7 天内无需再次输入验证码;微信内登录将自动关联微信 + 请在微信内打开;首次请先用验证码登录,成功后将自动关联微信,之后可一键登录