修复工单内容格式与财务页面接口契约

This commit is contained in:
cieanyau committed 2026-11-07 08:12:28 +08:00
1 parent 90989f8f8a
commit d330ad01cc
8 files changed
+551 -149

No files matched your search

+43 -15
View File
@@ -137,7 +137,13 @@ var je = {
let _ = useApi(),
x = useRoute(),
S = useAuth(),
{ rechargeClosed: Qe, load: C } = useSiteConfig_t(),
{
config: siteConfig,
error: siteConfigError,
on: configOn,
rechargeClosed: Qe,
load: C,
} = useSiteConfig_t(),
{ enabled: $e, load: w } = useWithdrawAvailability_t(),
T = ref(20),
E = ref(!1),
@@ -149,6 +155,19 @@ var je = {
et = ref(!1),
M = ref(null),
N = ref(``);
// 只有站点明确开启时才允许修改;加载、缺项与失败均保留可见说明。
const reminderEnabled = computed(() =>
configOn(siteConfig.value?.balance_notice_show),
);
const reminderStatus = computed(() => {
if (!siteConfig.value)
return siteConfigError.value
? `站点配置加载失败,暂时无法修改余额提醒。请刷新后重试。`
: `正在加载余额提醒配置…`;
if (siteConfig.value.balance_notice_show == null)
return `站点尚未提供余额提醒配置,暂时无法修改。`;
return reminderEnabled.value ? `` : `站点已关闭余额提醒。`;
});
// 账户总览变化时同步余额提醒设置,仅回填本地草稿。
function tt() {
let e = S.overview;
@@ -161,6 +180,7 @@ var je = {
});
// 开启余额提醒必须填写正的有限阈值;关闭时发送零阈值,成功后同步账户总览。
async function nt() {
if (A.value || !reminderEnabled.value) return;
((j.value = ``), (et.value = !1));
let e = Number(k.value ?? 0);
if (O.value && (!Number.isFinite(e) || e <= 0)) {
@@ -441,34 +461,34 @@ var je = {
(S.refreshOverview(), Q(), X());
}
let Et = ref([]),
Dt = ref(0),
Ot = ref(1),
kt = ref(!1),
$ = 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,
});
let e = await _.get(`/account/credit/freeze`);
if (requestVersion !== freezeRequestVersion) return;
((Et.value = e.list ?? []), (Dt.value = e.count ?? 0));
Et.value = e.list ?? [];
Ot.value = Math.min(
Ot.value,
Math.max(1, Math.ceil(Et.value.length / T.value)),
);
} catch (e) {
if (requestVersion !== freezeRequestVersion) return;
(($.value = e instanceof Error ? e.message : `加载冻结记录失败`),
(Et.value = []),
(Dt.value = 0));
(Ot.value = 1));
} finally {
requestVersion === freezeRequestVersion && (kt.value = !1);
}
}
function jt(e) {
((Ot.value = e.page + 1), (T.value = e.rows), At());
((Ot.value = e.page + 1), (T.value = e.rows));
}
return (
// 与共用列表加载器一致:销毁后拒绝新读取,并作废各列表全部在途响应。
@@ -699,7 +719,7 @@ var je = {
"onUpdate:modelValue": (n[2] ||= (e) =>
isRef(O) ? (O.value = e) : null),
inputId: `credit-reminder-enabled`,
disabled: unref(A),
disabled: unref(A) || !unref(reminderEnabled),
},
null,
8,
@@ -725,7 +745,8 @@ var je = {
minFractionDigits: 2,
maxFractionDigits: 2,
suffix: ` 元`,
disabled: !unref(O) || unref(A),
disabled:
!unref(O) || unref(A) || !unref(reminderEnabled),
},
null,
8,
@@ -737,13 +758,22 @@ var je = {
label: `保存`,
icon: `pi pi-check`,
loading: unref(A),
disabled: unref(A) || !unref(reminderEnabled),
onClick: nt,
},
null,
8,
[`loading`],
[`loading`, `disabled`],
),
]),
unref(reminderStatus)
? createElementVNode(
`p`,
{ class: `reminder-status`, role: `status` },
toDisplayString(unref(reminderStatus)),
1,
)
: createCommentVNode(``, !0),
unref(j)
? (openBlock(),
createBlock(
@@ -1791,10 +1821,8 @@ var je = {
{
value: unref(Et),
loading: unref(kt),
lazy: ``,
paginator: ``,
rows: unref(T),
totalRecords: unref(Dt),
first: (unref(Ot) - 1) * unref(T),
rowsPerPageOptions: [20, 50, 100],
dataKey: `id`,