(fix):update user setting toast

This commit is contained in:
kate522 committed 2026-08-18 03:48:50 +08:00
1 parent e429b59077
commit 95553086dd
7 files changed
+156 -52

No files matched your search

+21 -6
View File
@@ -30,8 +30,11 @@
* SMS 验证码发送 + 倒计时
* ================================================================= */
function initSmsButtons() {
document.querySelectorAll('[data-aksrt-sms-trigger]').forEach(btn => {
function initSmsButtons(root) {
root = root || document
root.querySelectorAll('[data-aksrt-sms-trigger]').forEach(btn => {
if (btn.dataset.aksrtSmsInitialized === 'true') return
btn.dataset.aksrtSmsInitialized = 'true'
const cooldown = parseInt(btn.dataset.cooldown || DEFAULT_COOLDOWN, 10)
// 恢复页面刷新后的倒计时
@@ -78,26 +81,32 @@
const original = btn.textContent
btn.textContent = '发送中...'
const scene = btn.dataset.aksrtSmsScene || 'register'
const toastId = scene === 'bind_phone'
? 'aksrt-settings-phone-code-toast'
: 'aksrt-auth-sms-code-toast'
notyf('正在发送验证码…', 'load', '', toastId)
// 收集人机验证字段
const form = btn.closest('form')
const captchaData = collectCaptchaFields(form)
const scene = btn.dataset.aksrtSmsScene || 'register'
fetch(REST_BASE + '/auth/send-sms-code', {
method: 'POST',
credentials: 'same-origin',
headers: { 'Content-Type': 'application/json' },
body: JSON.stringify({ phone, scene, ...captchaData }),
})
.then(r => r.json().then(data => ({ ok: r.ok, data })))
.then(({ ok, data }) => {
if (ok && data.success) {
notyf(data.message || '验证码已发送', 'success')
notyf(data.message || '验证码已发送', 'success', 5, toastId)
const seconds = (data.data && data.data.remaining_time) || cooldown
sessionStorage.setItem(COUNTDOWN_KEY, String(Date.now() + seconds * 1000))
startCountdown(btn, seconds)
} else {
const msg = (data.data && data.data.message) || data.message || '发送失败'
notyf(msg, 'danger')
notyf(msg, 'danger', 5, toastId)
try {
const captchaState = window.AKSRTCaptchaState
if (captchaState && captchaState.scenes && captchaState.scenes[scene]) {
@@ -115,7 +124,7 @@
}
})
.catch(() => {
notyf('网络错误,请重试', 'danger')
notyf('网络错误,请重试', 'danger', 5, toastId)
btn.disabled = false
btn.textContent = original
})
@@ -397,6 +406,12 @@
}
// 初始化
if (window.AksrtFrontend && typeof window.AksrtFrontend.register === 'function') {
window.AksrtFrontend.register('aksrt-sms-buttons', function(root) {
initSmsButtons(root)
})
}
if (document.readyState === 'loading') {
document.addEventListener('DOMContentLoaded', initAuthPages)
} else {