docs: explain dcim services and purchase flows

This commit is contained in:
cieanyau committed 2026-11-06 00:39:01 +08:00
1 parent 9eadc36b62
commit f50693a674
7 files changed
+20 -1

No files matched your search

+1 -1
View File
@@ -690,7 +690,7 @@ var Ye = {
wn = Cn.statusOf, wn = Cn.statusOf,
Tn = T?.scrollY ?? null; Tn = T?.scrollY ?? null;
function En() { function En() {
// 离开详情前保存筛选、分页及滚动位置;快照仅存在当前账号的内存中。 // 离开列表前保存筛选、分页及滚动位置;快照仅存在当前账号的内存中。
Oe.save({ Oe.save({
tab: A.value, tab: A.value,
keywords: j.value, keywords: j.value,
+4
View File
@@ -1,4 +1,5 @@
<script> <script>
// DCIM 计费入口集中处理自动续费和停用申请,停用操作可进入安全验证后重试。
import "~/assets/styles/InstanceRenewDialog.BHDAL6d3.css"; import "~/assets/styles/InstanceRenewDialog.BHDAL6d3.css";
import "~/assets/styles/GeetestField.DiieTibK.css"; import "~/assets/styles/GeetestField.DiieTibK.css";
import "~/assets/styles/CaptchaField.BSN3ZbsD.css"; import "~/assets/styles/CaptchaField.BSN3ZbsD.css";
@@ -149,6 +150,7 @@ var he = {
Y = !1, Y = !1,
X = (e, t) => X = (e, t) =>
!Y && e === C.hostId && String(C.host.id) === e && t === J; !Y && e === C.hostId && String(C.host.id) === e && t === J;
// 三项信息独立加载,自动续费失败不遮蔽退款规则或现有停用记录的错误。
async function Z() { async function Z() {
let e = ++q, let e = ++q,
t = C.hostId; t = C.hostId;
@@ -210,6 +212,7 @@ var he = {
!B.value && !B.value &&
((I.value = null), (M.value = ``), (H.value = null)); ((I.value = null), (M.value = ``), (H.value = null));
} }
// 根据确认动作分派自动续费、撤销或提交停用;提交前校验实例及原因有效性。
async function Me() { async function Me() {
if ( if (
P.value || P.value ||
@@ -280,6 +283,7 @@ var he = {
r() && (P.value = !1); r() && (P.value = !1);
} }
} }
// 只给当前实例保留的申请补充验证字段;后台再次要求挑战时继续保留验证状态。
async function Ne(e) { async function Ne(e) {
let t = H.value, let t = H.value,
n = C.hostId, n = C.hostId,
+4
View File
@@ -1,4 +1,5 @@
<script> <script>
// 按实例 IP 管理防御升级:先获取可选规格,再询价下单,成功后进入订单详情。
import "~/assets/styles/DcimDefence.BYaQccXZ.css"; import "~/assets/styles/DcimDefence.BYaQccXZ.css";
import { toDisplayString } from "vue"; import { toDisplayString } from "vue";
import { onMounted } from "vue"; import { onMounted } from "vue";
@@ -104,6 +105,7 @@ var T = {
X = computed(() => X = computed(() =>
L.value.filter((e) => String(e.value) !== String(R.value)), L.value.filter((e) => String(e.value) !== String(R.value)),
); );
// 每个 IP 的当前防御和可升级档位独立加载,禁止升级时不请求配置。
async function Z() { async function Z() {
let e = ++q, let e = ++q,
t = F.value, t = F.value,
@@ -148,6 +150,7 @@ var T = {
function Q() { function Q() {
H.value || ((V.value = !1), J++, (W.value = !1), (K.value = null)); H.value || ((V.value = !1), J++, (W.value = !1), (K.value = null));
} }
// 报价绑定所选档位、IP 与实例,且价格必须为有效非负数。
async function $() { async function $() {
if (x.upgradeAllowed === !1) return; if (x.upgradeAllowed === !1) return;
let e = ++J, let e = ++J,
@@ -186,6 +189,7 @@ var T = {
!Y && e === J && (W.value = !1); !Y && e === J && (W.value = !1);
} }
} }
// 只有活动实例、可选档位及已返回报价同时满足时才允许创建升级订单。
async function se() { async function se() {
if ( if (
x.upgradeAllowed === !1 || x.upgradeAllowed === !1 ||
+2
View File
@@ -1,4 +1,5 @@
<script> <script>
// DCIM 域名白名单只读面板,先识别实例是否开通白名单,再按页读取关联记录。
import "~/assets/styles/DcimDomains.BT2s5hGW.css"; import "~/assets/styles/DcimDomains.BT2s5hGW.css";
import { toDisplayString } from "vue"; import { toDisplayString } from "vue";
import { onMounted } from "vue"; import { onMounted } from "vue";
@@ -53,6 +54,7 @@ var E = {
F = ref(0), F = ref(0),
I = 0, I = 0,
L = !1; L = !1;
// 页码控件从 0 开始,接口从 1 开始;实例切换或卸载后丢弃旧页面结果。
async function R() { async function R() {
let e = ++I, let e = ++I,
t = y.hostId; t = y.hostId;
+3
View File
@@ -1,4 +1,5 @@
<script> <script>
// DCIM 带宽监控根据时间范围查询入/出站曲线,图表组件按需加载。
import "~/assets/styles/DcimMonitor.CiStTCbZ.css"; import "~/assets/styles/DcimMonitor.CiStTCbZ.css";
import { toDisplayString } from "vue"; import { toDisplayString } from "vue";
import { onMounted } from "vue"; import { onMounted } from "vue";
@@ -97,6 +98,7 @@ var T = defineAsyncComponent(() =>
L = 0, L = 0,
R = !1, R = !1,
z = ``; z = ``;
// 时间以秒提交;实例、模块或范围变化时清空旧曲线,并用代次阻止旧请求覆盖。
async function B() { async function B() {
let e = ++L, let e = ++L,
t = h.hostId, t = h.hostId,
@@ -123,6 +125,7 @@ var T = defineAsyncComponent(() =>
!R && e === L && (N.value = !1); !R && e === L && (N.value = !1);
} }
} }
// 缺失采样转为 null 而不是 0,配合 connectNulls:false 保留采集中断的空隙。
function V(e) { function V(e) {
return e != null && e !== `` && Number.isFinite(Number(e)) return e != null && e !== `` && Number.isFinite(Number(e))
? Number(e) ? Number(e)
@@ -1,4 +1,5 @@
<script> <script>
// 实例流量包面板:展示可购规格与已购包,在弹窗模式中按需加载购买列表。
import "~/assets/styles/FlowPacketPanel.-RJSx13z.css"; import "~/assets/styles/FlowPacketPanel.-RJSx13z.css";
import { toDisplayString } from "vue"; import { toDisplayString } from "vue";
import { renderList } from "vue"; import { renderList } from "vue";
@@ -142,6 +143,7 @@ var oe = {
let K = 0, let K = 0,
q = 0, q = 0,
J = !1; J = !1;
// 可购规格与云模块已购流量包并行读取,各自保留错误,避免一项失败遮蔽另一项。
async function Y() { async function Y() {
if (J || !I.hostId) return; if (J || !I.hostId) return;
let e = ++K, let e = ++K,
@@ -202,6 +204,7 @@ var oe = {
async function $() { async function $() {
((Q.value = ``), (X.value = !0), await Y()); ((Q.value = ``), (X.value = !0), await Y());
} }
// 仅允许当前列表中未达月限购的单次规格下单,订单 ID 校验后交给父级支付。
async function pe(e) { async function pe(e) {
if ( if (
J || J ||
@@ -1,4 +1,5 @@
<script> <script>
// 付费镜像授权弹窗:复查实时价格、复用本组件已建订单,并在支付后重新检查授权。
import "~/assets/styles/PaymentDialog.BNFKQF1U.css"; import "~/assets/styles/PaymentDialog.BNFKQF1U.css";
import { toDisplayString } from "vue"; import { toDisplayString } from "vue";
import { onBeforeUnmount } from "vue"; import { onBeforeUnmount } from "vue";
@@ -58,6 +59,7 @@ var C = {
throw Error(`镜像费用信息无效,请重试`); throw Error(`镜像费用信息无效,请重试`);
return Number(e).toFixed(2); return Number(e).toFixed(2);
} }
// 免费或已授权镜像直接放行;价格变化需用户重新确认,不能沿用旧金额创建订单。
async function I() { async function I() {
let e = w.value; let e = w.value;
if (!e || D.value || N) return; if (!e || D.value || N) return;
@@ -100,6 +102,7 @@ var C = {
t === M && (D.value = !1); t === M && (D.value = !1);
} }
} }
// 支付回调不等于授权已生效,只有检查接口费用变为 0 才通知调用方继续操作。
async function L() { async function L() {
let e = w.value; let e = w.value;
if (!e || N) return; if (!e || N) return;