docs: annotate all shared frontend modules in Chinese
This commit is contained in:
1 parent
2be21c1c62
commit
408f8e5c98
55 files changed
+349
No files matched your search
@@ -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()));
|
||||
},
|
||||
|
||||
Reference in new issue
Block a user