fix: 分页条数切换后自动刷新 (#243)
This commit is contained in:
+42
-7
@@ -17,14 +17,14 @@
|
||||
都不进入 sessionStorage。链接原始 href 保持模块根地址,因此脚本失效时
|
||||
仍可正常导航。 */
|
||||
var MODULE_QUERY_KEYS = {
|
||||
"/shopee": ["q", "search_field", "status", "deleted", "unlinked", "page"],
|
||||
"/pdd": ["q", "status", "page"],
|
||||
"/syb": ["order_no", "shop", "stage", "page", "date_from", "date_to"],
|
||||
"/shopee": ["q", "search_field", "status", "deleted", "unlinked", "page", "page_size"],
|
||||
"/pdd": ["q", "status", "page", "page_size"],
|
||||
"/syb": ["order_no", "shop", "stage", "page", "page_size", "date_from", "date_to"],
|
||||
"/shops": [],
|
||||
"/tasks": ["type", "status", "creator", "q", "page"],
|
||||
"/clients": ["name", "page"],
|
||||
"/inner-codes": ["date", "status", "q", "page"],
|
||||
"/users": ["q", "status", "page"]
|
||||
"/tasks": ["type", "status", "creator", "q", "page", "page_size"],
|
||||
"/clients": ["name", "page", "page_size"],
|
||||
"/inner-codes": ["date", "status", "q", "page", "page_size"],
|
||||
"/users": ["q", "status", "page", "page_size"]
|
||||
};
|
||||
var MODULE_STATE_PREFIX = "cmautobuy:module-state:";
|
||||
|
||||
@@ -92,6 +92,40 @@
|
||||
}
|
||||
}
|
||||
|
||||
/* ── 每页条数立即生效 ─────────────────────────
|
||||
普通 GET 表单仍是无 JavaScript 时的完整回退;脚本只做渐进增强,让采购员
|
||||
选择 20/50/100 后不用再点一次“应用”。select 不能禁用,否则浏览器提交时
|
||||
会丢掉 page_size。 */
|
||||
function setupPageSizeForms() {
|
||||
document.querySelectorAll("[data-page-size-form]").forEach(function (form) {
|
||||
var select = form.querySelector("[data-page-size-select]");
|
||||
var submit = form.querySelector("[data-page-size-submit]");
|
||||
if (!select) return;
|
||||
|
||||
function beginSubmit() {
|
||||
if (form.getAttribute("aria-busy") === "true") return false;
|
||||
form.setAttribute("aria-busy", "true");
|
||||
if (submit) {
|
||||
submit.disabled = true;
|
||||
submit.textContent = "加载中…";
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
form.addEventListener("submit", function () {
|
||||
beginSubmit();
|
||||
});
|
||||
select.addEventListener("change", function () {
|
||||
if (form.getAttribute("aria-busy") === "true") return;
|
||||
if (typeof form.requestSubmit === "function") {
|
||||
form.requestSubmit();
|
||||
return;
|
||||
}
|
||||
if (beginSubmit()) form.submit();
|
||||
});
|
||||
});
|
||||
}
|
||||
|
||||
/* ── 全选 / 反选 ──────────────────────────────
|
||||
表头的勾选框控制本表格所有行的勾选框。 */
|
||||
function setupCheckAll(root) {
|
||||
@@ -853,6 +887,7 @@
|
||||
|
||||
document.addEventListener("DOMContentLoaded", function () {
|
||||
setupModuleNavigationState();
|
||||
setupPageSizeForms();
|
||||
document.querySelectorAll("table").forEach(setupCheckAll);
|
||||
setupConfirmDelete();
|
||||
setupConfirmSubmit();
|
||||
|
||||
Reference in New Issue
Block a user