修复财务冻结记录请求乱序与列表离页回写

This commit is contained in:
cieanyau committed 2026-11-07 01:02:07 +08:00
1 parent 1fe68cc8dd
commit 30415593a6
2 files changed
+184 -4

No files matched your search

+18 -4
View File
@@ -13,6 +13,7 @@ definePageMeta({
});
import { toDisplayString } from "vue";
import { onMounted } from "vue";
import { onScopeDispose } from "vue";
import { watch } from "vue";
import { createBlock } from "vue";
import { ref } from "vue";
@@ -315,9 +316,11 @@ var je = {
pt = ref(!1),
G = ref(``),
K = ref(`0.00`),
q = 0;
q = 0,
disposed = !1;
// 交易流水使用独立请求序号,快速筛选时忽略更早的结果。
async function J() {
if (disposed) return;
let e = ++q;
((ut.value = !0), (U.value = ``));
try {
@@ -341,6 +344,7 @@ var je = {
let Y = 0;
// 余额流水与累计金额同步更新;失败时不保留旧金额冒充新结果。
async function X() {
if (disposed) return;
let e = ++Y;
((pt.value = !0), (G.value = ``));
try {
@@ -412,6 +416,7 @@ var je = {
Ct = 0;
// 按服务端状态分页查询提现记录;本地关键词筛选仅作用于当前返回页。
async function Q() {
if (disposed) return;
let e = ++Ct;
((bt.value = !0), (xt.value = ``));
try {
@@ -442,28 +447,37 @@ var je = {
Dt = ref(0),
Ot = ref(1),
kt = ref(!1),
$ = ref(``);
// 冻结余额独立分页读取;异常时清空旧列表并显示错误。
$ = ref(``),
freezeRequestVersion = 0;
// 冻结记录与其他流水遵守同一代次规则,旧请求不能改写结果、错误或加载状态。
async function At() {
if (disposed) return;
let requestVersion = ++freezeRequestVersion;
((kt.value = !0), ($.value = ``));
try {
let e = await _.get(`/account/credit/freeze`, {
page: Ot.value,
limit: T.value,
});
if (requestVersion !== freezeRequestVersion) return;
((Et.value = e.list ?? []), (Dt.value = e.count ?? 0));
} catch (e) {
if (requestVersion !== freezeRequestVersion) return;
(($.value = e instanceof Error ? e.message : `加载冻结记录失败`),
(Et.value = []),
(Dt.value = 0));
} finally {
kt.value = !1;
requestVersion === freezeRequestVersion && (kt.value = !1);
}
}
function jt(e) {
((Ot.value = e.page + 1), (T.value = e.rows), At());
}
return (
// 与共用列表加载器一致:销毁后拒绝新读取,并作废各列表全部在途响应。
onScopeDispose(() => {
((disposed = !0), q++, Y++, Ct++, freezeRequestVersion++);
}),
watch(
() => x.query.tab,
(e) => {