fix: 更新当前界面,支持多公帐号切换
This commit is contained in:
52
app/static/forgot_password.js
Normal file
52
app/static/forgot_password.js
Normal file
@@ -0,0 +1,52 @@
|
||||
const $ = (id) => document.getElementById(id);
|
||||
|
||||
function setStatus(msg, danger = false) {
|
||||
const el = $("status");
|
||||
if (!el) return;
|
||||
el.style.color = danger ? "#b42318" : "#0f5f3d";
|
||||
el.textContent = msg;
|
||||
}
|
||||
|
||||
function setLoading(button, loading, idleText, loadingText) {
|
||||
if (!button) return;
|
||||
button.disabled = loading;
|
||||
button.textContent = loading ? loadingText : idleText;
|
||||
}
|
||||
|
||||
async function postJSON(url, body) {
|
||||
const res = await fetch(url, {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
body: JSON.stringify(body),
|
||||
});
|
||||
const data = await res.json();
|
||||
if (!res.ok) throw new Error(data.detail || "请求失败");
|
||||
return data;
|
||||
}
|
||||
|
||||
const resetBtn = $("resetBtn");
|
||||
|
||||
if (resetBtn) {
|
||||
resetBtn.addEventListener("click", async () => {
|
||||
setLoading(resetBtn, true, "重置密码", "提交中...");
|
||||
try {
|
||||
const out = await postJSON("/api/auth/password/forgot", {
|
||||
username: ($("username") && $("username").value.trim()) || "",
|
||||
reset_key: ($("resetKey") && $("resetKey").value.trim()) || "",
|
||||
new_password: ($("newPassword") && $("newPassword").value) || "",
|
||||
});
|
||||
if (!out.ok) {
|
||||
setStatus(out.detail || "重置失败", true);
|
||||
return;
|
||||
}
|
||||
setStatus("密码重置成功,2 秒后跳转登录页。");
|
||||
setTimeout(() => {
|
||||
window.location.href = "/auth?next=/";
|
||||
}, 2000);
|
||||
} catch (e) {
|
||||
setStatus(e.message || "重置失败", true);
|
||||
} finally {
|
||||
setLoading(resetBtn, false, "重置密码", "提交中...");
|
||||
}
|
||||
});
|
||||
}
|
||||
Reference in New Issue
Block a user