收口后台表单确认事件

This commit is contained in:
2026-04-25 13:31:18 +08:00
parent 90d2fcc14a
commit 4352919889
10 changed files with 38 additions and 8 deletions
+28
View File
@@ -0,0 +1,28 @@
// 后台通用表单确认事件代理,集中替代简单的 Blade 内联 onsubmit confirm。
let adminFormConfirmationsBound = false;
/**
* 绑定后台通用提交确认。
*
* @returns {void}
*/
export function bindAdminFormConfirmations() {
if (adminFormConfirmationsBound || typeof document === "undefined") {
return;
}
adminFormConfirmationsBound = true;
document.addEventListener("submit", (event) => {
if (!(event.target instanceof HTMLFormElement)) {
return;
}
// 删除、撤销、取消等不可逆操作统一由 Blade 提供确认文案。
const confirmMessage = event.target.getAttribute("data-admin-confirm");
if (confirmMessage && !window.confirm(confirmMessage)) {
event.preventDefault();
}
});
}
+2
View File
@@ -1,6 +1,7 @@
import './bootstrap';
import { bindAdminAutoactControls } from './admin/autoact.js';
import { bindAdminFishingEventsControls } from './admin/fishing-events.js';
import { bindAdminFormConfirmations } from './admin/form-confirmations.js';
import { bindAdminGameConfigControls } from './admin/game-configs.js';
import { bindAdminHolidayEventsControls } from './admin/holiday-events.js';
import { bindAdminOpsControls } from './admin/ops.js';
@@ -10,6 +11,7 @@ import { bindAdminSignInRulesControls } from './admin/sign-in-rules.js';
// 后台共用入口只注册轻量事件代理,具体页面通过 data-* 属性决定是否响应。
bindAdminAutoactControls();
bindAdminFishingEventsControls();
bindAdminFormConfirmations();
bindAdminGameConfigControls();
bindAdminHolidayEventsControls();
bindAdminOpsControls();