HEL-204: 修复弹窗作用域、断档首屏与期初表单 reset
将 openModal/closeModal 提升为顶层定义;公司端启动调用 loadCompanyCoverageGaps;异步提交前保存 form 引用。 Co-authored-by: Cursor <cursoragent@cursor.com> Co-authored-by: multica-agent <github@multica.ai>
This commit is contained in:
co-authored by
Cursor
multica-agent
parent
27f2b0b69a
commit
0fa32e1571
+13
-10
@@ -1,6 +1,9 @@
|
||||
const $ = (selector, scope = document) => scope.querySelector(selector);
|
||||
const $$ = (selector, scope = document) => [...scope.querySelectorAll(selector)];
|
||||
|
||||
function openModal(id) { $("#" + id)?.classList.add("open"); }
|
||||
function closeModal(id) { $("#" + id)?.classList.remove("open"); }
|
||||
|
||||
const portal = document.body.dataset.portal || "entry";
|
||||
const viewNames = portal === "admin"
|
||||
? { dashboard: "管理总览", pair: "往来查询", audit: "审核中心", flows: "流水管理", companies: "公司与账号", settings: "结账与期初", reminders: "提醒管理" }
|
||||
@@ -1818,8 +1821,6 @@ function initAdmin() {
|
||||
}));
|
||||
$("#auditCompany")?.addEventListener("change", filterAuditRows);
|
||||
|
||||
function openModal(id) { $("#" + id)?.classList.add("open"); }
|
||||
function closeModal(id) { $("#" + id)?.classList.remove("open"); }
|
||||
document.querySelectorAll("[data-close]").forEach((el) => el.addEventListener("click", () => closeModal(el.dataset.close)));
|
||||
document.querySelectorAll(".modal-backdrop").forEach((bd) => bd.addEventListener("click", (e) => { if (e.target === bd) bd.classList.remove("open"); }));
|
||||
document.addEventListener("keydown", (e) => { if (e.key === "Escape") document.querySelectorAll(".modal-backdrop.open").forEach((m) => m.classList.remove("open")); });
|
||||
@@ -2003,7 +2004,8 @@ function initAdmin() {
|
||||
$("#openCompanyDialog")?.addEventListener("click", () => openModal("companyDialog"));
|
||||
$("#companyForm")?.addEventListener("submit", async (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
const form = event.currentTarget;
|
||||
const data = new FormData(form);
|
||||
const companyName = String(data.get("companyName") || "").trim();
|
||||
const loginName = String(data.get("loginName") || "").trim();
|
||||
const createUser = data.get("createUser") !== null;
|
||||
@@ -2031,7 +2033,7 @@ function initAdmin() {
|
||||
}
|
||||
const accountCreated = Boolean(result.username);
|
||||
closeModal("companyDialog");
|
||||
event.currentTarget.reset();
|
||||
form.reset();
|
||||
await loadAdminCompanies();
|
||||
showToast(
|
||||
accountCreated ? "公司与账号已创建" : "公司已创建",
|
||||
@@ -2246,7 +2248,8 @@ function initAdmin() {
|
||||
$$("[data-close-opening]").forEach((button) => button.addEventListener("click", () => closeModal("openingDialog")));
|
||||
$("#openingForm")?.addEventListener("submit", async (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
const form = event.currentTarget;
|
||||
const data = new FormData(form);
|
||||
const fromName = data.get("from");
|
||||
const toName = data.get("to");
|
||||
if (fromName === toName) {
|
||||
@@ -2280,7 +2283,7 @@ function initAdmin() {
|
||||
return;
|
||||
}
|
||||
closeModal("openingDialog");
|
||||
event.currentTarget.reset();
|
||||
form.reset();
|
||||
await loadOpeningBalances();
|
||||
await loadCalculationChanges();
|
||||
await loadCalculationSettings();
|
||||
@@ -3976,8 +3979,6 @@ function initCompany() {
|
||||
loadCompanyAccounts();
|
||||
loadImportBatches();
|
||||
|
||||
function openModal(id) { $("#" + id)?.classList.add("open"); }
|
||||
function closeModal(id) { $("#" + id)?.classList.remove("open"); }
|
||||
$$("[data-close]").forEach((el) => el.addEventListener("click", () => closeModal(el.dataset.close)));
|
||||
$$(".modal-backdrop").forEach((bd) => bd.addEventListener("click", (e) => { if (e.target === bd) bd.classList.remove("open"); }));
|
||||
document.addEventListener("keydown", (e) => { if (e.key === "Escape") $$(".modal-backdrop.open").forEach((m) => m.classList.remove("open")); });
|
||||
@@ -4115,6 +4116,7 @@ function initCompany() {
|
||||
initReconcile();
|
||||
(async () => {
|
||||
await loadCompanyWorkspace();
|
||||
await loadCompanyCoverageGaps();
|
||||
await renderReconcileMatchStack();
|
||||
})();
|
||||
|
||||
@@ -4133,7 +4135,8 @@ function initCompany() {
|
||||
});
|
||||
$("#accountForm")?.addEventListener("submit", async (event) => {
|
||||
event.preventDefault();
|
||||
const data = new FormData(event.currentTarget);
|
||||
const form = event.currentTarget;
|
||||
const data = new FormData(form);
|
||||
const response = await fetch("/api/company/accounts", {
|
||||
method: "POST",
|
||||
headers: { "Content-Type": "application/json" },
|
||||
@@ -4154,7 +4157,7 @@ function initCompany() {
|
||||
return;
|
||||
}
|
||||
closeModal("accountDialog");
|
||||
event.currentTarget.reset();
|
||||
form.reset();
|
||||
await loadCompanyAccounts();
|
||||
showToast("银行账户已提交登记", "复核通过前不能上传流水,也不参与账户识别和覆盖计算", "success");
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user