docs: explain common, dcim and kky resource upgrades
This commit is contained in:
1 parent
5ba081550c
commit
1e9f2d786b
3 files changed
+28
No files matched your search
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// 通用模块升级及展示适配:归一化按钮、镜像、图表和配置项,并管理配置/商品升级流程。
|
||||||
import "~/assets/styles/CommonUpgrade.C8sZ-ExM.css";
|
import "~/assets/styles/CommonUpgrade.C8sZ-ExM.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
import { renderList } from "vue";
|
import { renderList } from "vue";
|
||||||
@@ -46,6 +47,7 @@ var j = (e) => (e && typeof e == `object` && !Array.isArray(e) ? e : {}),
|
|||||||
`rescue_system`,
|
`rescue_system`,
|
||||||
]),
|
]),
|
||||||
F = new Set([`on`, `off`, `reboot`, `hard_off`, `hard_reboot`, `vnc`]);
|
F = new Set([`on`, `off`, `reboot`, `hard_off`, `hard_reboot`, `vnc`]);
|
||||||
|
// 兼容单项或 console/control 分组按钮;仅开放已适配动作,重复项有禁用标记时从严合并。
|
||||||
function I(e, t) {
|
function I(e, t) {
|
||||||
let n = (Array.isArray(e) ? e : [e])
|
let n = (Array.isArray(e) ? e : [e])
|
||||||
.flatMap((e) => {
|
.flatMap((e) => {
|
||||||
@@ -89,6 +91,7 @@ function I(e, t) {
|
|||||||
: e,
|
: e,
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// 将配置项→系统→版本的嵌套镜像结构展开,保留版本所属 optionId 供重装接口使用。
|
||||||
function L(e) {
|
function L(e) {
|
||||||
return (Array.isArray(e) ? e : [e]).flatMap((e) => {
|
return (Array.isArray(e) ? e : [e]).flatMap((e) => {
|
||||||
let t = j(e);
|
let t = j(e);
|
||||||
@@ -113,6 +116,7 @@ function L(e) {
|
|||||||
});
|
});
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 将模块提供的图表类型及下拉选项转换为统一展示结构。
|
||||||
function R(e) {
|
function R(e) {
|
||||||
return (Array.isArray(e) ? e : []).flatMap((e) => {
|
return (Array.isArray(e) ? e : []).flatMap((e) => {
|
||||||
let t = j(e);
|
let t = j(e);
|
||||||
@@ -133,6 +137,7 @@ function R(e) {
|
|||||||
];
|
];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 兼容多序列 value 列表与 in_bw/out_bw 列表;按首序列时间对齐,缺失采样保留 null。
|
||||||
function z(e) {
|
function z(e) {
|
||||||
let t = j(e);
|
let t = j(e);
|
||||||
if (!Array.isArray(t.list)) throw Error(`图表数据格式暂未适配`);
|
if (!Array.isArray(t.list)) throw Error(`图表数据格式暂未适配`);
|
||||||
@@ -191,6 +196,7 @@ function z(e) {
|
|||||||
series: l,
|
series: l,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
// 当前配置按类型展示数量、级联路径或子项文本,镜像和网络标签沿用统一格式化规则。
|
||||||
function B(e) {
|
function B(e) {
|
||||||
let t = e.unit ? ` ${e.unit}` : ``;
|
let t = e.unit ? ` ${e.unit}` : ``;
|
||||||
if (e.option_type === `cascade`) return String(e.cascade_path || `--`) + t;
|
if (e.option_type === `cascade`) return String(e.cascade_path || `--`) + t;
|
||||||
@@ -213,6 +219,7 @@ function B(e) {
|
|||||||
.filter(Boolean);
|
.filter(Boolean);
|
||||||
return r.length ? r.join(`、`) + t : String(e.sub_name || `--`);
|
return r.length ? r.join(`、`) + t : String(e.sub_name || `--`);
|
||||||
}
|
}
|
||||||
|
// 递归展开可见级联叶子为完整路径,深度上限避免异常后台树导致无限递归。
|
||||||
function V(e, t = [], n = 0) {
|
function V(e, t = [], n = 0) {
|
||||||
return !Array.isArray(e) || n > 20
|
return !Array.isArray(e) || n > 20
|
||||||
? []
|
? []
|
||||||
@@ -234,6 +241,7 @@ function V(e, t = [], n = 0) {
|
|||||||
: [];
|
: [];
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
// 归一化可升级配置;数量区间按步长对齐,隐藏选项过滤后再判定是否支持编辑。
|
||||||
function H(e) {
|
function H(e) {
|
||||||
return Array.isArray(e)
|
return Array.isArray(e)
|
||||||
? e.flatMap((e) => {
|
? e.flatMap((e) => {
|
||||||
@@ -323,6 +331,7 @@ function H(e) {
|
|||||||
})
|
})
|
||||||
: [];
|
: [];
|
||||||
}
|
}
|
||||||
|
// 校验表单成员、数量区间/步长和重复数量,分别生成普通与级联配置请求字段。
|
||||||
function U(e, t, n) {
|
function U(e, t, n) {
|
||||||
let r = {},
|
let r = {},
|
||||||
i = {};
|
i = {};
|
||||||
@@ -383,6 +392,7 @@ function U(e, t, n) {
|
|||||||
cascade_configoption: i,
|
cascade_configoption: i,
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
// 升级状态机:配置升级通用于已适配模块,跨商品升级仅由 idcsmart_common 开放。
|
||||||
function W(e, t) {
|
function W(e, t) {
|
||||||
let n = useApi(),
|
let n = useApi(),
|
||||||
a = ref(`config`),
|
a = ref(`config`),
|
||||||
@@ -504,6 +514,7 @@ function W(e, t) {
|
|||||||
function W() {
|
function W() {
|
||||||
(L++, (F.value = ``), (P.value = ``), (O.value = !1), (M.value = !1));
|
(L++, (F.value = ``), (P.value = ``), (O.value = !1), (M.value = !1));
|
||||||
}
|
}
|
||||||
|
// 应用商品高级规则并同步联动后的表单;同步锁阻止 watch 再入递归。
|
||||||
function G() {
|
function G() {
|
||||||
if (!z) {
|
if (!z) {
|
||||||
if (_.value.error) throw Error(_.value.error);
|
if (_.value.error) throw Error(_.value.error);
|
||||||
@@ -517,6 +528,7 @@ function W(e, t) {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 配置升级优先使用实例当前值,换商品则使用目标默认值,并初始化周期和级联数量。
|
||||||
function K() {
|
function K() {
|
||||||
let e = Array.isArray(u.value.configoptions)
|
let e = Array.isArray(u.value.configoptions)
|
||||||
? u.value.configoptions.map(j)
|
? u.value.configoptions.map(j)
|
||||||
@@ -555,6 +567,7 @@ function W(e, t) {
|
|||||||
W(),
|
W(),
|
||||||
G());
|
G());
|
||||||
}
|
}
|
||||||
|
// 按升级模式选择配置接口,实例或模式切换后通过代次废弃旧结果。
|
||||||
async function q() {
|
async function q() {
|
||||||
if (!I || D.value || !e().allowed) return;
|
if (!I || D.value || !e().allowed) return;
|
||||||
if (!c.value) {
|
if (!c.value) {
|
||||||
@@ -589,6 +602,7 @@ function W(e, t) {
|
|||||||
I && t === R && (E.value = !1);
|
I && t === R && (E.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 统一构建报价/下单载荷;尚未适配含子商品组合的升级,不能只提交父商品。
|
||||||
function J() {
|
function J() {
|
||||||
if (!c.value) throw Error(`此模块未开放更换商品`);
|
if (!c.value) throw Error(`此模块未开放更换商品`);
|
||||||
if (_.value.error) throw Error(_.value.error);
|
if (_.value.error) throw Error(_.value.error);
|
||||||
@@ -605,6 +619,7 @@ function W(e, t) {
|
|||||||
}
|
}
|
||||||
return e;
|
return e;
|
||||||
}
|
}
|
||||||
|
// 高级规则联动完成后再记录快照;价格必须有效且非负,改动表单立即废弃报价。
|
||||||
async function Y() {
|
async function Y() {
|
||||||
if (
|
if (
|
||||||
!I ||
|
!I ||
|
||||||
@@ -644,6 +659,7 @@ function W(e, t) {
|
|||||||
I && t === L && (O.value = !1);
|
I && t === L && (O.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 需要有效报价和用户确认;商品升级将配置包裹进 config_options,与配置升级载荷区分。
|
||||||
async function X() {
|
async function X() {
|
||||||
if (!I || !V.value || !M.value) return;
|
if (!I || !V.value || !M.value) return;
|
||||||
let r = B.value;
|
let r = B.value;
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// DCIM 资源升级表单:基于当前线路选择带宽、流量、IP、防御及可选硬件数量。
|
||||||
import "~/assets/styles/ConfigBandwidth.CWSH1WJZ.css";
|
import "~/assets/styles/ConfigBandwidth.CWSH1WJZ.css";
|
||||||
import "~/assets/styles/DcimUpgrade.DaLApYFa.css";
|
import "~/assets/styles/DcimUpgrade.DaLApYFa.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
@@ -119,6 +120,7 @@ var T = {
|
|||||||
},
|
},
|
||||||
].filter((e) => e.options.length),
|
].filter((e) => e.options.length),
|
||||||
);
|
);
|
||||||
|
// 档位既可能是离散值,也可能是区间;区间需要同时满足上下限和步长。
|
||||||
function ie(e, t) {
|
function ie(e, t) {
|
||||||
return (
|
return (
|
||||||
Number.isFinite(e) &&
|
Number.isFinite(e) &&
|
||||||
@@ -146,6 +148,7 @@ var T = {
|
|||||||
function Z() {
|
function Z() {
|
||||||
(H++, (B.value = ``), (V.value = ``), (G = ``), (L.value = !1));
|
(H++, (B.value = ``), (V.value = ``), (G = ``), (L.value = !1));
|
||||||
}
|
}
|
||||||
|
// 从当前实例恢复初值并保存基准快照,只有与基准不同的配置才需要询价。
|
||||||
function ae() {
|
function ae() {
|
||||||
for (let e of [`bw`, `flow`, `ip_num`, `peak_defence`])
|
for (let e of [`bw`, `flow`, `ip_num`, `peak_defence`])
|
||||||
F[e] = Number(O.current[e] ?? 0);
|
F[e] = Number(O.current[e] ?? 0);
|
||||||
@@ -180,6 +183,7 @@ var T = {
|
|||||||
e === U && (I.value = !1);
|
e === U && (I.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 硬件数量只允许已有/可选项目,新增数量不得超剩余槽位;网络变更需匹配线路档位。
|
||||||
function oe() {
|
function oe() {
|
||||||
for (let e of N) {
|
for (let e of N) {
|
||||||
let t = F[`optional_${e}`],
|
let t = F[`optional_${e}`],
|
||||||
@@ -221,6 +225,7 @@ var T = {
|
|||||||
)
|
)
|
||||||
throw Error(`请选择有效的${t.label}档位`);
|
throw Error(`请选择有效的${t.label}档位`);
|
||||||
}
|
}
|
||||||
|
// 询价接口使用扁平 optional_*[id] 参数,返回价格仅对当前配置快照有效。
|
||||||
async function $() {
|
async function $() {
|
||||||
if (O.upgradeAllowed === !1 || R.value || W || !J.value) return;
|
if (O.upgradeAllowed === !1 || R.value || W || !J.value) return;
|
||||||
((z.value = ``), Z());
|
((z.value = ``), Z());
|
||||||
@@ -264,6 +269,7 @@ var T = {
|
|||||||
e === H && (L.value = !1);
|
e === H && (L.value = !1);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 下单使用完整嵌套配置,并在报价、配置快照一致后把有效订单交给支付入口。
|
||||||
async function se() {
|
async function se() {
|
||||||
if (
|
if (
|
||||||
O.upgradeAllowed === !1 ||
|
O.upgradeAllowed === !1 ||
|
||||||
|
|||||||
@@ -1,4 +1,5 @@
|
|||||||
<script>
|
<script>
|
||||||
|
// KKY ECS 分项升级入口:实例规格、带宽、防护、新增硬盘和已有磁盘扩容分别调用对应接口。
|
||||||
import "~/assets/styles/ConfigBandwidth.CWSH1WJZ.css";
|
import "~/assets/styles/ConfigBandwidth.CWSH1WJZ.css";
|
||||||
import "~/assets/styles/KkyUpgrade.CkDmxFBM.css";
|
import "~/assets/styles/KkyUpgrade.CkDmxFBM.css";
|
||||||
import { toDisplayString } from "vue";
|
import { toDisplayString } from "vue";
|
||||||
@@ -263,6 +264,7 @@ var ue = {
|
|||||||
protect: Xe,
|
protect: Xe,
|
||||||
disk: Ze,
|
disk: Ze,
|
||||||
};
|
};
|
||||||
|
// 各页签首次进入时按需加载规格,已尝试加载的页签不重复发起初始化请求。
|
||||||
async function Y(e) {
|
async function Y(e) {
|
||||||
if (
|
if (
|
||||||
x.upgradeAllowed !== !1 &&
|
x.upgradeAllowed !== !1 &&
|
||||||
@@ -278,6 +280,7 @@ var ue = {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 扩容配置必须匹配所选磁盘 identity;切换磁盘或页签后丢弃旧配置响应。
|
||||||
async function $e(e) {
|
async function $e(e) {
|
||||||
if (J || x.upgradeAllowed === !1 || W.value) return;
|
if (J || x.upgradeAllowed === !1 || W.value) return;
|
||||||
let t = ++q,
|
let t = ++q,
|
||||||
@@ -309,6 +312,7 @@ var ue = {
|
|||||||
e instanceof Error ? e.message : `该磁盘暂不支持扩容`);
|
e instanceof Error ? e.message : `该磁盘暂不支持扩容`);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
// 根据当前页签组装请求体;新增磁盘发送列表,扩容发送类型、目标容量与唯一标识。
|
||||||
function X() {
|
function X() {
|
||||||
return E.value === `ins`
|
return E.value === `ins`
|
||||||
? A.value
|
? A.value
|
||||||
@@ -360,6 +364,7 @@ var ue = {
|
|||||||
},
|
},
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
// 询价记录页签、实例和请求体快照,只让仍对应当前选择的结果更新界面。
|
||||||
async function Z() {
|
async function Z() {
|
||||||
if (x.upgradeAllowed === !1) return;
|
if (x.upgradeAllowed === !1) return;
|
||||||
let e = ++K,
|
let e = ++K,
|
||||||
@@ -394,6 +399,7 @@ var ue = {
|
|||||||
bandwidth: `bandwidth_order`,
|
bandwidth: `bandwidth_order`,
|
||||||
protect: `protect_upgrade_order`,
|
protect: `protect_upgrade_order`,
|
||||||
};
|
};
|
||||||
|
// 按升级种类选择订单接口,返回后由父级统一处理支付。
|
||||||
async function tt() {
|
async function tt() {
|
||||||
if (x.upgradeAllowed === !1 || W.value || U.value || !H.value)
|
if (x.upgradeAllowed === !1 || W.value || U.value || !H.value)
|
||||||
return;
|
return;
|
||||||
|
|||||||
Reference in new issue
Block a user