From b340b77d5a9c6abdd42f54d37ffd789d8f55a0c6 Mon Sep 17 00:00:00 2001 From: unknown Date: Thu, 29 Oct 2026 11:21:51 +0800 Subject: [PATCH] =?UTF-8?q?fix(pay):=20=E8=AE=A2=E5=8D=95=E7=BC=93?= =?UTF-8?q?=E5=AD=98=E5=A4=B1=E6=95=88=E6=97=B6=E8=AE=A2=E5=8D=95=E5=88=97?= =?UTF-8?q?=E8=A1=A8=E6=97=A0=E5=88=B7=E6=96=B0=E9=87=8D=E8=BD=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Co-Authored-By: Claude Fable 5 --- assets/js/order-center.js | 21 ++++++++++++++++----- 1 file changed, 16 insertions(+), 5 deletions(-) diff --git a/assets/js/order-center.js b/assets/js/order-center.js index 7e89d231..70f1cd76 100644 --- a/assets/js/order-center.js +++ b/assets/js/order-center.js @@ -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); }); }());