完成80%

This commit is contained in:
2026-07-27 06:50:07 +08:00
parent 8475bbd19a
commit 1eae3bbef4
63 changed files with 13664 additions and 280 deletions
+18 -7
View File
@@ -219,7 +219,7 @@ import {
isRequestCancelled,
} from "@/utils/api.js";
import {
AUTH_TAC_SCENE,
AUTH_VERIFICATION_OPERATION,
createTacRenderContext,
isAuthPhone,
isSmsDeliveryOutcomeUnknown,
@@ -274,7 +274,7 @@ let tacSequence = 0;
let pageActive = true;
const authRequestController = createRequestController();
const smsCooldown = createAuthSmsCooldown({
sceneCode: AUTH_TAC_SCENE.FORGOT_PASSWORD,
operationCode: AUTH_VERIFICATION_OPERATION.FORGOT_PASSWORD,
onChange: (seconds) => {
cooldownSeconds.value = seconds;
},
@@ -356,22 +356,33 @@ const prepareGetCode = async () => {
fieldErrors.value.phone = "";
sendingCode.value = true;
try {
const sceneCode = AUTH_TAC_SCENE.FORGOT_PASSWORD;
const operationCode = AUTH_VERIFICATION_OPERATION.FORGOT_PASSWORD;
const requestedPhone = phone.value;
const response = await appApi.getCaptchaRequirement(
{ sceneCode, subject: requestedPhone },
{ operationCode, subject: requestedPhone },
{ requestController: authRequestController },
);
if (!pageActive) return;
if (phone.value !== requestedPhone) throw new Error("手机号已变化,请重新获取验证码");
const requirement = normalizeCaptchaRequirement(response, sceneCode);
const requirement = normalizeCaptchaRequirement(response);
if (!requirement.required) {
await appApi.sendSmsCode(
{ operationCode, phone: requestedPhone },
{ requestController: authRequestController },
);
if (!pageActive) return;
sentPhone.value = requestedPhone;
smsCooldown.start();
showFeedback("验证码已发送");
return;
}
tacSequence += 1;
tacContext.value = createTacRenderContext({
requestId: `a05-forgot-${tacSequence}`,
baseUrl: runtimeConfig.baseUrl,
clientId: runtimeConfig.clientId,
tenantId: runtimeConfig.tenantId,
sceneCode,
operationCode,
subject: requestedPhone,
requirement,
});
@@ -395,7 +406,7 @@ const completeTac = async (result) => {
sendingCode.value = true;
await appApi.sendSmsCode(
{
sceneCode: AUTH_TAC_SCENE.FORGOT_PASSWORD,
operationCode: AUTH_VERIFICATION_OPERATION.FORGOT_PASSWORD,
phone: expectedContext.subject,
validToken: ticket.validToken,
},