docs: annotate remaining routes layouts and view boundaries
This commit is contained in:
1 parent
408f8e5c98
commit
ab22d406c0
56 files changed
+403
No files matched your search
@@ -1,4 +1,7 @@
|
||||
<script>
|
||||
/**
|
||||
* 安全组:组列表、出入站规则与实例关联共用页面;主列表、规则、已关联和可关联主机分别用请求代次隔离,批量关联保留失败目标供重试。
|
||||
*/
|
||||
import "~/assets/styles/PageInfoNotice._16xRFrB.css";
|
||||
import "~/assets/styles/groups.Buw8nwl1.css";
|
||||
definePageMeta({
|
||||
@@ -244,6 +247,7 @@ var Te = {
|
||||
},
|
||||
],
|
||||
k = ref([]);
|
||||
// 常用端口快捷选择仅生成待确认的文本规则;默认 IP 为全网范围,生成并不立即下发。
|
||||
function dt() {
|
||||
$.value = ut
|
||||
.filter((e) => k.value.includes(e.port))
|
||||
@@ -253,9 +257,11 @@ var Te = {
|
||||
).join(`
|
||||
`);
|
||||
}
|
||||
// 打开新增规则弹窗,方向取当前入站/出站标签。
|
||||
function ft() {
|
||||
((R.value = null), (L.direction = D.value), (O.value = !0));
|
||||
}
|
||||
// 把已选规则复制到草稿后编辑,避免未保存时改动列表。
|
||||
function pt(e) {
|
||||
((R.value = e),
|
||||
Object.assign(L, {
|
||||
@@ -293,6 +299,7 @@ var Te = {
|
||||
}),
|
||||
R = ref(null),
|
||||
bt = computed(() => ht.value.filter((e) => e.direction === D.value));
|
||||
// 按关键词分页查询安全组,组件离开或新请求发起后废弃旧响应。
|
||||
async function z() {
|
||||
let e = ++x;
|
||||
((st.value = !0), (T.value = ``));
|
||||
@@ -313,6 +320,7 @@ var Te = {
|
||||
e === x && !b && (st.value = !1);
|
||||
}
|
||||
}
|
||||
// 新建组前清空上一次编辑目标和名称描述。
|
||||
function xt() {
|
||||
((j.value = null),
|
||||
(M.name = ``),
|
||||
@@ -320,6 +328,7 @@ var Te = {
|
||||
(T.value = ``),
|
||||
(A.value = !0));
|
||||
}
|
||||
// 编辑组时回填现有名称描述,保留原对象用于更新 ID。
|
||||
function St(e) {
|
||||
((j.value = e),
|
||||
(M.name = e.name),
|
||||
@@ -327,6 +336,7 @@ var Te = {
|
||||
(T.value = ``),
|
||||
(A.value = !0));
|
||||
}
|
||||
// 名称必填且同一时间只提交一次;新增/更新后重新读取组列表。
|
||||
async function Ct() {
|
||||
if (!mt.value) {
|
||||
if (((T.value = ``), !M.name.trim())) {
|
||||
@@ -352,6 +362,7 @@ var Te = {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 删除组后刷新列表,失败保留页面错误。
|
||||
async function wt(e) {
|
||||
try {
|
||||
(await y.del(`/security_group/${e.id}`), await z());
|
||||
@@ -359,6 +370,7 @@ var Te = {
|
||||
T.value = e instanceof Error ? e.message : `删除失败`;
|
||||
}
|
||||
}
|
||||
// 进入组详情时重置规则页码、草稿与当前标签,再加载该组规则。
|
||||
async function Tt(e) {
|
||||
((P.value = e),
|
||||
(N.value = !0),
|
||||
@@ -375,6 +387,7 @@ var Te = {
|
||||
}),
|
||||
await B());
|
||||
}
|
||||
// 规则响应必须匹配组 ID 与请求代次,避免切组后展示上一组规则。
|
||||
async function B() {
|
||||
if (!P.value) return;
|
||||
let e = ++tt,
|
||||
@@ -429,6 +442,7 @@ var Te = {
|
||||
G.value ||
|
||||
Ot.value,
|
||||
);
|
||||
// 读取当前组全部关联主机用于搜索与去重,而不是只拿关联列表第一页。
|
||||
async function Z() {
|
||||
if (!P.value) return;
|
||||
let e = P.value.id,
|
||||
@@ -453,6 +467,7 @@ var Te = {
|
||||
n() && (H.value = !1);
|
||||
}
|
||||
}
|
||||
// 分页收集可用主机,失败时清空旧候选,避免沿用已失效的关联资格。
|
||||
async function jt() {
|
||||
let e = ++rt,
|
||||
t = () => !b && e === rt;
|
||||
@@ -492,6 +507,7 @@ var Te = {
|
||||
value: e.id,
|
||||
})),
|
||||
);
|
||||
// 批量提交前核对所有选择仍可关联;解析部分成功结果后保留失败 ID,刷新已关联列表及组计数。
|
||||
async function Pt() {
|
||||
if (!P.value || !W.value.length || X.value) return;
|
||||
let e = P.value.id,
|
||||
@@ -524,6 +540,7 @@ var Te = {
|
||||
Ot.value = !1;
|
||||
}
|
||||
}
|
||||
// 单主机关联仅接受当前候选项,提交后刷新关联及组列表。
|
||||
async function Ft() {
|
||||
if (
|
||||
P.value &&
|
||||
@@ -544,6 +561,7 @@ var Te = {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 解除实例与组的关联后刷新状态,不在本地假定服务端已删除关系。
|
||||
async function It(e) {
|
||||
if (P.value && !X.value) {
|
||||
((G.value = !0), (T.value = ``));
|
||||
@@ -561,6 +579,7 @@ var Te = {
|
||||
let Q = ref(!1),
|
||||
$ = ref(``),
|
||||
Lt = ref(!1);
|
||||
// 每行按方向、协议、端口、IP 和可选描述解析;空行忽略,不足四列明确报格式错误。
|
||||
function Rt(e) {
|
||||
let t = [];
|
||||
for (let n of e.split(`
|
||||
@@ -580,6 +599,7 @@ var Te = {
|
||||
}
|
||||
return t;
|
||||
}
|
||||
// 批量规则先完整解析再提交,至少需要一条;成功后清空文本并刷新规则和组计数。
|
||||
async function zt() {
|
||||
if (!P.value || Lt.value) return;
|
||||
T.value = ``;
|
||||
@@ -617,6 +637,7 @@ var Te = {
|
||||
watch(V, (e) => {
|
||||
e === `host` && (Z(), jt());
|
||||
});
|
||||
// 单条规则按是否有编辑目标选择 PUT/POST;端口必填,成功后重置编辑器并刷新。
|
||||
async function Vt() {
|
||||
if (!yt.value) {
|
||||
if (((T.value = ``), !P.value)) {
|
||||
@@ -654,6 +675,7 @@ var Te = {
|
||||
}
|
||||
}
|
||||
}
|
||||
// 删除规则后同步规则列表与安全组统计。
|
||||
async function Ht(e) {
|
||||
try {
|
||||
(await y.del(`/security_group/rule/${e.id}`), await B(), await z());
|
||||
@@ -661,6 +683,7 @@ var Te = {
|
||||
T.value = e instanceof Error ? e.message : `删除规则失败`;
|
||||
}
|
||||
}
|
||||
// 把已知协议枚举转换为可读名称,未知协议保留大写标识。
|
||||
function Ut(e) {
|
||||
return (
|
||||
{
|
||||
@@ -678,12 +701,15 @@ var Te = {
|
||||
function Wt(e) {
|
||||
((C.value = e.page + 1), (w.value = e.rows), z());
|
||||
}
|
||||
// 确认搜索词后回到第一页查询组列表。
|
||||
function Gt() {
|
||||
((ct.value = E.value.trim()), (C.value = 1), z());
|
||||
}
|
||||
// 清空搜索草稿及已应用词,并恢复第一页。
|
||||
function Kt() {
|
||||
((E.value = ``), (ct.value = ``), (C.value = 1), z());
|
||||
}
|
||||
// 切换规则方向时恢复规则第一页,再按服务端方向筛选读取。
|
||||
function qt(e) {
|
||||
((V.value = `rule`), (D.value = e), (F.value = 1), B());
|
||||
}
|
||||
@@ -704,6 +730,7 @@ var Te = {
|
||||
},
|
||||
));
|
||||
}),
|
||||
// 组列表、规则详情、主机关联和批量规则各自使用独立草稿与提交锁,避免一个弹窗改变另一操作目标。
|
||||
(n, r) => {
|
||||
let i = button,
|
||||
te = PageInfoNotice,
|
||||
|
||||
Reference in new issue
Block a user