53 lines
1.5 KiB
JavaScript
53 lines
1.5 KiB
JavaScript
/** 余额/推广提现入口可用性;按场景分别缓存规则,复用提现对话框中的规则判定。 */
|
|
import { computed } from "vue";
|
|
import { useState } from "#app";
|
|
import { useApi } from "~/lib/auth.js";
|
|
import { n as WithdrawDialog_n } from "~/components/WithdrawDialog.vue";
|
|
function i(i = ``) {
|
|
let a = useState(
|
|
`withdraw-availability:${i ? `recommend` : `credit`}`,
|
|
() => ({
|
|
rule: null,
|
|
loading: !1,
|
|
loaded: !1,
|
|
error: ``,
|
|
}),
|
|
),
|
|
o = computed(() => WithdrawDialog_n(a.value.rule, i ? `recommend` : ``)),
|
|
s = computed(() => a.value.loading),
|
|
c = computed(() => a.value.loaded),
|
|
l = computed(() => a.value.error);
|
|
// 已成功加载默认不重取,e 可强制刷新;失败保持 loaded=false,允许后续重试。
|
|
async function u(e = !1) {
|
|
if (!(a.value.loading || (a.value.loaded && !e))) {
|
|
((a.value.loading = !0), (a.value.error = ``));
|
|
try {
|
|
let e = await useApi().get(
|
|
`/withdraw/rule/credit`,
|
|
i
|
|
? {
|
|
scene: `recommend`,
|
|
}
|
|
: void 0,
|
|
);
|
|
((a.value.rule = e ?? null), (a.value.loaded = !0));
|
|
} catch (e) {
|
|
((a.value.rule = null),
|
|
(a.value.loaded = !1),
|
|
(a.value.error =
|
|
e instanceof Error ? e.message : `加载提现设置失败`));
|
|
} finally {
|
|
a.value.loading = !1;
|
|
}
|
|
}
|
|
}
|
|
return {
|
|
enabled: o,
|
|
loading: s,
|
|
loaded: c,
|
|
error: l,
|
|
load: u,
|
|
};
|
|
}
|
|
export { i as t };
|