docs: annotate funds, backups and loading states
This commit is contained in:
1 parent
179c6febf0
commit
74e94730e0
8 files changed
+24
No files matched your search
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 统一备份/快照面板,兼容云模块与财务模块的列表格式、磁盘来源及数量额度升级。
|
||||||
import "~/assets/styles/MfCloudBackupPanel.BTlEe-fy.css";
|
import "~/assets/styles/MfCloudBackupPanel.BTlEe-fy.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
import { onMounted } from "vue";
|
import { onMounted } from "vue";
|
||||||
@@ -201,6 +202,7 @@ var Se = {
|
|||||||
function tt() {
|
function tt() {
|
||||||
et &&= (clearTimeout(et), null);
|
et &&= (clearTimeout(et), null);
|
||||||
}
|
}
|
||||||
|
// 列表中仍有未完成任务时每两秒复查;卸载时停止调度并使请求失效。
|
||||||
function nt() {
|
function nt() {
|
||||||
(tt(),
|
(tt(),
|
||||||
!H &&
|
!H &&
|
||||||
@@ -216,6 +218,7 @@ var Se = {
|
|||||||
size: e.size,
|
size: e.size,
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
// 规范化历史字段及任务状态;财务模块需另读支持标记、额度和可选磁盘。
|
||||||
function it(e) {
|
function it(e) {
|
||||||
let t = instance_data_l(e),
|
let t = instance_data_l(e),
|
||||||
n = [`list`, v.kind, `${v.kind}s`].find((e) =>
|
n = [`list`, v.kind, `${v.kind}s`].find((e) =>
|
||||||
@@ -287,6 +290,7 @@ var Se = {
|
|||||||
e === B && (E.value = !1);
|
e === B && (E.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 打开创建表单前重新确认额度并取得磁盘,不能使用其他实例留下的磁盘选项。
|
||||||
async function at() {
|
async function at() {
|
||||||
if (Qe.value) return;
|
if (Qe.value) return;
|
||||||
let e = ++V,
|
let e = ++V,
|
||||||
@@ -327,6 +331,7 @@ var Se = {
|
|||||||
e === V && (Ye.value = !1);
|
e === V && (Ye.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 创建接口只代表任务已提交,随后刷新列表跟踪状态,不直接宣称备份已完成。
|
||||||
async function ot() {
|
async function ot() {
|
||||||
if (!O.value) {
|
if (!O.value) {
|
||||||
if (!P.name.trim()) {
|
if (!P.name.trim()) {
|
||||||
@@ -359,6 +364,7 @@ var Se = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 还原使用已确认的目标记录,并按 backup/snapshot 类型传递对应 ID 字段。
|
||||||
async function st() {
|
async function st() {
|
||||||
let e = F.value;
|
let e = F.value;
|
||||||
if (e) {
|
if (e) {
|
||||||
@@ -478,6 +484,7 @@ var Se = {
|
|||||||
watch($, gt, {
|
watch($, gt, {
|
||||||
flush: `sync`,
|
flush: `sync`,
|
||||||
});
|
});
|
||||||
|
// 额度升级规格来自商品订单页;空间计费或禁止升级时不提供数量升级入口。
|
||||||
async function _t() {
|
async function _t() {
|
||||||
let e = ++X;
|
let e = ++X;
|
||||||
if (
|
if (
|
||||||
@@ -531,6 +538,7 @@ var Se = {
|
|||||||
(G.value = !0),
|
(G.value = !0),
|
||||||
await yt());
|
await yt());
|
||||||
}
|
}
|
||||||
|
// 报价绑定实例、类型、当前数量及目标额度,任一条件变化都会废弃旧报价。
|
||||||
async function yt() {
|
async function yt() {
|
||||||
if (
|
if (
|
||||||
(gt(),
|
(gt(),
|
||||||
@@ -556,6 +564,7 @@ var Se = {
|
|||||||
!H && e === U && (lt.value = !1);
|
!H && e === U && (lt.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 仅提交有效快照下的额度订单,校验订单 ID 后再交给父级支付流程。
|
||||||
async function bt() {
|
async function bt() {
|
||||||
if (!ht.value || O.value || H) return;
|
if (!ht.value || O.value || H) return;
|
||||||
let e = $.value,
|
let e = $.value,
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 余额充值分为创建充值订单和渠道支付两步;支付成功事件再通知父级更新余额。
|
||||||
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
|
import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
|
||||||
import "~/assets/styles/RechargeDialog.DpsMly4r.css";
|
import "~/assets/styles/RechargeDialog.DpsMly4r.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
@@ -58,6 +59,7 @@ var E = {
|
|||||||
I = ref(!1),
|
I = ref(!1),
|
||||||
L = ref(null),
|
L = ref(null),
|
||||||
R = ref(``);
|
R = ref(``);
|
||||||
|
// 创建订单后保存订单 ID 与金额,关闭金额表单并打开通用支付弹窗。
|
||||||
async function z() {
|
async function z() {
|
||||||
if (!P.value) {
|
if (!P.value) {
|
||||||
if (((F.value = ``), !N.value || N.value <= 0)) {
|
if (((F.value = ``), !N.value || N.value <= 0)) {
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 提现表单共用余额与推荐奖励两个场景,规则、手续费和可提现余额均按场景校验。
|
||||||
import "~/assets/styles/WithdrawDialog.ks0wdKEK.css";
|
import "~/assets/styles/WithdrawDialog.ks0wdKEK.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
import { useId } from "vue";
|
import { useId } from "vue";
|
||||||
@@ -49,6 +50,7 @@ function w(e, t = ``) {
|
|||||||
? C(e)
|
? C(e)
|
||||||
: e?.status === 1 || e?.status === `1` || e?.status === !0;
|
: e?.status === 1 || e?.status === `1` || e?.status === !0;
|
||||||
}
|
}
|
||||||
|
// 金额最多两位小数,先转为安全整数“分”,避免用浮点金额直接比较限额。
|
||||||
function T(e) {
|
function T(e) {
|
||||||
if (typeof e != `string` && typeof e != `number`) return null;
|
if (typeof e != `string` && typeof e != `number`) return null;
|
||||||
let t = String(e).trim();
|
let t = String(e).trim();
|
||||||
@@ -57,6 +59,7 @@ function T(e) {
|
|||||||
i = Number(n) * 100 + Number(r.padEnd(2, `0`));
|
i = Number(n) * 100 + Number(r.padEnd(2, `0`));
|
||||||
return Number.isSafeInteger(i) ? i : null;
|
return Number.isSafeInteger(i) ? i : null;
|
||||||
}
|
}
|
||||||
|
// 百分比允许六位小数,用 BigInt 计算手续费并向下取整到分。
|
||||||
function E(e, t) {
|
function E(e, t) {
|
||||||
let n = String(t ?? ``).trim();
|
let n = String(t ?? ``).trim();
|
||||||
if (!/^\d+(?:\.\d{1,6})?$/.test(n) || Number(n) > 100) return null;
|
if (!/^\d+(?:\.\d{1,6})?$/.test(n) || Number(n) > 100) return null;
|
||||||
@@ -221,6 +224,7 @@ var ce = {
|
|||||||
notes: ``,
|
notes: ``,
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 加载可用渠道及规则;奖励场景额外读取奖励专属限额和手续费,代次隔离旧响应。
|
||||||
async function $() {
|
async function $() {
|
||||||
if (!G || !x.value || V.value) return;
|
if (!G || !x.value || V.value) return;
|
||||||
let e = ++W,
|
let e = ++W,
|
||||||
@@ -292,6 +296,7 @@ var ce = {
|
|||||||
G && e === W && (V.value = !1);
|
G && e === W && (V.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 提交前重新校验渠道、金额区间、可用余额和收款账号,只发送当前渠道需要的字段。
|
||||||
async function Oe() {
|
async function Oe() {
|
||||||
if (!G || !x.value || H.value || V.value || !Q(B.value)) return;
|
if (!G || !x.value || H.value || V.value || !Q(B.value)) return;
|
||||||
let e = B.value;
|
let e = B.value;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 为 mf_cloud/remf_cloud 的 Windows 实例提供 RDP 文件下载,其他模块或镜像不启用。
|
||||||
import "~/assets/styles/CloudAccessExtras.CnBJlFAZ.css";
|
import "~/assets/styles/CloudAccessExtras.CnBJlFAZ.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
import { onBeforeUnmount } from "vue";
|
import { onBeforeUnmount } from "vue";
|
||||||
@@ -53,6 +54,7 @@ var y = {
|
|||||||
D = ref(``),
|
D = ref(``),
|
||||||
O = 0,
|
O = 0,
|
||||||
k = !1;
|
k = !1;
|
||||||
|
// 将接口文本转成临时下载链接,净化文件名并释放 Blob URL;实例变更后忽略旧响应。
|
||||||
async function A() {
|
async function A() {
|
||||||
if (!w.value || !T.value || E.value || k) return;
|
if (!w.value || !T.value || E.value || k) return;
|
||||||
let e = O;
|
let e = O;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 查询 DCIM 重装任务进度;有任务时有限轮询,实例或刷新版本变化后重新开始。
|
||||||
import "~/assets/styles/DcimReinstallStatus.CuXeXmZ3.css";
|
import "~/assets/styles/DcimReinstallStatus.CuXeXmZ3.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
import { onMounted } from "vue";
|
import { onMounted } from "vue";
|
||||||
@@ -42,6 +43,7 @@ var m = {
|
|||||||
C = !1,
|
C = !1,
|
||||||
w = 0,
|
w = 0,
|
||||||
T;
|
T;
|
||||||
|
// 每十秒调度;页面隐藏或存在弹窗时暂缓查询,减少后台流量及界面干扰。
|
||||||
function E() {
|
function E() {
|
||||||
T = setTimeout(() => {
|
T = setTimeout(() => {
|
||||||
if (!C) {
|
if (!C) {
|
||||||
@@ -56,6 +58,7 @@ var m = {
|
|||||||
}
|
}
|
||||||
}, 1e4);
|
}, 1e4);
|
||||||
}
|
}
|
||||||
|
// 仅接受 task_type 有效的任务数组,发现进行中任务后最多推进 60 轮查询。
|
||||||
async function D(e = !0) {
|
async function D(e = !0) {
|
||||||
if (v.value || C) return;
|
if (v.value || C) return;
|
||||||
(clearTimeout(T), e && (w = 0));
|
(clearTimeout(T), e && (w = 0));
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 实例详情加载占位:保持页签与卡片布局,用 aria-busy 告知辅助技术正在加载。
|
||||||
import "~/assets/styles/InstanceLoadingShell.CwfiUwdU.css";
|
import "~/assets/styles/InstanceLoadingShell.CwfiUwdU.css";
|
||||||
import { renderList } from "vue";
|
import { renderList } from "vue";
|
||||||
import { normalizeClass } from "vue";
|
import { normalizeClass } from "vue";
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 监控加载占位按模块展示一张 DCIM 图或四张云监控图,不触发任何监控请求。
|
||||||
import "~/assets/styles/InstanceMonitorSkeleton.C0FT51jJ.css";
|
import "~/assets/styles/InstanceMonitorSkeleton.C0FT51jJ.css";
|
||||||
import { renderList } from "vue";
|
import { renderList } from "vue";
|
||||||
import { normalizeClass } from "vue";
|
import { normalizeClass } from "vue";
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 优先展示调用方已归一化的状态,否则结合电源状态与生命周期生成统一状态标签。
|
||||||
import { createBlock } from "vue";
|
import { createBlock } from "vue";
|
||||||
import { computed } from "vue";
|
import { computed } from "vue";
|
||||||
import { unref } from "vue";
|
import { unref } from "vue";
|
||||||
|
|||||||
Reference in new issue
Block a user