fix(pay): 订单缓存失效时订单列表无刷新重载

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This commit is contained in:
kate522andClaude Fable 5 committed 2026-10-29 11:21:51 +08:00
1 parent c3328e7279
commit b340b77d5a
1 file changed
+16 -5
+16 -5
View File
@@ -402,7 +402,6 @@
return;
}
notyf(data.message || "支付成功", "success");
refreshView(state);
if (activeDetail(state, number)) openDetail(state, number);
}).catch(function (error) {
button.disabled = false;
@@ -426,7 +425,6 @@
var data = result.data || {};
invalidateOrder(number, data.order);
notyf("订单已关闭", "success");
refreshView(state);
if (activeDetail(state, number)) openDetail(state, number);
}).catch(function (error) {
button.disabled = false;
@@ -608,14 +606,27 @@
});
}
// refresh 供弹窗提交/取消后刷新列表与统计。
// refresh 供弹窗提交/取消后刷新列表与统计;列表重载由下方失效监听统一触发。
function refresh(orderNumber) {
invalidateOrder(orderNumber);
liveStates.forEach(function (state) {
refreshView(state);
}
function touchesOrders(tags) {
if (!Array.isArray(tags) || !tags.length) return true;
return tags.some(function (tag) {
tag = String(tag || "");
return tag === "orders" || tag.indexOf("order:") === 0;
});
}
// 任意入口(下单待支付 / 支付 / 关闭 / 刷新状态)使订单缓存失效时,重载已挂载的订单列表。
var refreshTimer = null;
document.addEventListener("aksrt:cache:invalidated", function (event) {
if (!liveStates.length || !touchesOrders(event.detail && event.detail.tags)) return;
window.clearTimeout(refreshTimer);
refreshTimer = window.setTimeout(function () { liveStates.forEach(refreshView); }, 300);
});
window.AKSRTOrderCenter = { init: init, destroy: destroy, refresh: refresh };
jQuery(document).off("auto_fun.aksrt-order-center").on("auto_fun.aksrt-order-center", function () { init(document); });
}());