docs: annotate all shared frontend modules in Chinese

This commit is contained in:
cieanyau committed 2026-11-06 00:30:15 +08:00
1 parent 2be21c1c62
commit 408f8e5c98
55 files changed
+349

No files matched your search

+13
View File
@@ -1,7 +1,13 @@
/**
* 服务器列表分类适配:优先使用后端 classified-v1 分页,旧协议才完整拉取后在前端分类。
* 分类结果和请求只在当前工厂实例内缓存,invalidate 作废在途结果对应的代次。
*/
// 这些既有通用商品在当前业务中按独立服务器展示;变更须与商品配置约定一起核对。
var e = new Set([3997, 5174, 5226, 5227, 5631, 5914, 6243]);
function t(t) {
return t.module === `idcsmart_common` && e.has(Number(t.product_id));
}
/** e 为 API,n 为目标模块集合,r 可选后端菜单 id;有菜单时由 /home/host 决定分类。 */
function n(e, n, r) {
if (r !== void 0 && (!Number.isSafeInteger(r) || r <= 0))
throw Error(`服务器导航参数无效`);
@@ -20,6 +26,7 @@ function n(e, n, r) {
f,
p,
m = new Map();
// 相同参数的正在进行请求共用 Promise;完成即释放,不把分页响应无限期存储。
function h(t) {
let i =
r === void 0
@@ -52,6 +59,7 @@ function n(e, n, r) {
}
return o;
}
// 通用模块需读取实例详情确认实际模块;同商品共用分类结果,缺 product_id 时按实例区分。
async function g(t, n) {
let a = t.product_id || -t.id;
if (c.has(a)) return c.get(a);
@@ -68,6 +76,7 @@ function n(e, n, r) {
l.get(a) === o && l.delete(a);
}
}
/** 旧协议完整加载列表并去重,最多四个并发详情请求补齐分类,再按目标模块筛选。 */
async function _(n, o, c) {
let l = [],
u = {},
@@ -142,6 +151,7 @@ function n(e, n, r) {
r === void 0
? l.filter((e) => (t(e) ? a.has(`mf_dcim`) : a.has(i(e.module || ``))))
: l;
// 跨分类全量结果按自然中文/数字顺序排序后再分页,避免每页内部排序冒充全局排序。
if (n.orderby === `dedicate_ip` || n.orderby === `name`) {
let e = n.orderby;
b.sort(
@@ -156,6 +166,7 @@ function n(e, n, r) {
list: b,
};
}
/** 对外列表加载入口;探测后端能力后选择直接分页或 30 秒的完整分类缓存。 */
async function v(t) {
if (!o) return e.get(`/host`, t);
let n = Object.fromEntries(
@@ -212,6 +223,7 @@ function n(e, n, r) {
Number(s.count) === s.list.length &&
(a = s));
}
// 老协议缓存最多四组筛选条件;加载中共用 Promise,失败移除,成功后才开始 30 秒 TTL。
let s = Date.now();
for (let [e, t] of u) t.expires <= s && u.delete(e);
let c = u.get(r);
@@ -245,6 +257,7 @@ function n(e, n, r) {
};
}
return Object.assign(v, {
// 常规失效保留商品分类;参数为 true 时连分类缓存也清空(例如商品/模块归属已变化)。
invalidate(e = !1) {
(d++, u.clear(), m.clear(), (p = void 0), e && (c.clear(), l.clear()));
},