docs: annotate cloud network and upgrade components

This commit is contained in:
cieanyau committed 2026-11-06 00:34:17 +08:00
1 parent 7f54cae497
commit 9166b1376d
7 files changed
+95

No files matched your search

+20
View File
@@ -1,4 +1,8 @@
<script>
/**
* 云实例 VPC 网络创建、分配/切换和删除;父级提供商品、机房、网络类型及实例活动态。
* 分配成功发 refresh 让父级重取实例资料;已有 host 的网络不可直接删除。
*/
import "~/assets/styles/MfCloudVpc.CpOEbuWs.css";
import { toDisplayString } from "vue";
import { onMounted } from "vue";
@@ -76,12 +80,14 @@ var ie = {
k = useApi(),
A = useId(),
j = ref(!1),
// 已是 VPC 的实例直接开放面板;经典网络需先通过商品配置确认支持 VPC。
M = computed(
() =>
cloud_instance_management_i(D.module) &&
(D.networkType === `vpc` || j.value),
),
N = computed(() => `/${D.module}/${D.hostId}/vpc_network`),
// P 是当前网络列表,F 是允许分配的网络,I 是可选实例,L 是允许的 CIDR 掩码。
P = ref([]),
F = ref([]),
I = ref([]),
@@ -100,6 +106,10 @@ var ie = {
Y = 0,
X = 0,
Z = !1;
/**
* 核对 VPC 能力后分页拉取全部网络,再按商品/机房查询可分配网络。
* 商品能力字段未返回时明确报错;确认不支持 VPC 时不继续查询网络列表。
*/
async function Q() {
let e = ++Y,
t = N.value;
@@ -168,6 +178,7 @@ var ie = {
!Z && e === Y && (R.value = !1);
}
}
// 打开新建表单前检查加载状态和活动态;名称/网段不沿用上一次输入。
function fe() {
!M.value ||
z.value ||
@@ -176,6 +187,7 @@ var ie = {
!D.active ||
((U.value = ``), (W.value = ``), (V.value = ``), (H.value = !0));
}
/** 统一校验 VPC 名称与 CIDR,网段留空交后端分配,创建完成后重读网络列表。 */
async function pe() {
if (z.value || !H.value || !M.value || !D.active) return;
let e;
@@ -199,6 +211,10 @@ var ie = {
!Z && t === N.value && (z.value = !1);
}
}
/**
* 先设置分配弹窗目标;转售模块仅提供当前实例,本地 mf_cloud 再完整加载可选实例。
* X 独立隔离分配目标列表请求,避免切换目标期间旧结果覆盖新弹窗。
*/
async function $(e) {
if (
!M.value ||
@@ -258,6 +274,7 @@ var ie = {
!Z && t === X && (J.value = !1);
}
}
/** 分配前同时确认实例与网络仍在各自候选集合,成功后通知父级更新实例网络信息。 */
async function me() {
let e = K.value,
t = q.value;
@@ -293,6 +310,7 @@ var ie = {
!Z && n === N.value && (z.value = !1);
}
}
/** 删除需要网络仍存在且无已分配实例;此处预检查不替代后端并发/权限校验。 */
async function he() {
let e = G.value;
if (
@@ -333,9 +351,11 @@ var ie = {
},
),
onMounted(Q),
// 销毁后拒绝列表与可分配实例的迟到结果;实例/商品切换也会关闭全部旧弹窗。
onBeforeUnmount(() => {
((Z = !0), Y++, X++);
}),
// 主表展示已分配实例;创建、切换和删除各有确认弹窗,网络切换额外提示连接影响。
(t, n) => {
let r = button,
i = message,