From f1d6e9ceb4e857a5c680daa48f2ed86971d7a996 Mon Sep 17 00:00:00 2001 From: qing <1776177662@qq.com> Date: Wed, 12 Aug 2026 20:48:50 +0800 Subject: [PATCH] =?UTF-8?q?feat(dnfs):=20=E7=94=A8=E6=88=B7=E9=9D=A2?= =?UTF-8?q?=E6=9D=BF=E5=A2=9E=E5=8A=A0=E7=B3=BB=E7=BB=9F=E8=8A=82=E7=82=B9?= =?UTF-8?q?=E6=98=BE=E9=9A=90=E5=BC=80=E5=85=B3=EF=BC=8ClocalStorage=20?= =?UTF-8?q?=E6=8C=81=E4=B9=85=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- fsys/public/js/dnfs.js | 25 ++++++++++++++++++++++--- 1 file changed, 22 insertions(+), 3 deletions(-) diff --git a/fsys/public/js/dnfs.js b/fsys/public/js/dnfs.js index 05bdb88..40996c0 100644 --- a/fsys/public/js/dnfs.js +++ b/fsys/public/js/dnfs.js @@ -476,6 +476,10 @@ function renderContent(container, item) { var sp_effects_disabled = (function() { try { return localStorage.getItem('sp_effects_disabled') === '1'; } catch (e) { return false; } })(); +/* __ 隐藏节点可见:true 时 __ 前缀节点正常显示(用户面板开关控制,localStorage 持久化) */ +var __show_hidden = (function() { + try { return localStorage.getItem('dnfs_show_hidden') === '1'; } catch (e) { return false; } +})(); /* 清除当前页面已运行的全部特效沙箱与注入样式(进入新节点 / 关闭特效时调用) */ function clearAllEffects() { document.querySelectorAll('.sp-effect-frame').forEach(function(f) { f.remove(); }); @@ -1067,8 +1071,7 @@ function renderCards(list) { for (let i in list) { let item = list[i] if (item.title && typeof item.title === 'string' && item.title.indexOf('__') === 0) { - applyHiddenNodeEffects(item); - continue; + if (!__show_hidden) { applyHiddenNodeEffects(item); continue; } } console.log(item) let card = document.createElement('div'); @@ -1254,7 +1257,7 @@ function loadMap(children_json) { for (let i in children_json) { let item = children_json[i]; let title = item.title; - if (title && typeof title === 'string' && title.indexOf('__') === 0) continue; + if (title && typeof title === 'string' && title.indexOf('__') === 0 && !__show_hidden) continue; let tag = document.createElement("div"); tag.className = "tag"; tag.textContent = title; @@ -1341,6 +1344,22 @@ function renderUserPanel() { }); userpanel.appendChild(effect_btn); + /* __ 系统节点显隐开关(所有用户) */ + let hidden_btn = document.createElement("div"); + hidden_btn.className = "tag"; + hidden_btn.textContent = __show_hidden ? "隐藏系统节点" : "显示系统节点"; + hidden_btn.addEventListener("click", () => { + __show_hidden = !__show_hidden; + try { localStorage.setItem('dnfs_show_hidden', __show_hidden ? '1' : '0'); } catch (e) {} + /* 切换时重新渲染当前层卡片和 minimap */ + clearAllEffects(); + renderCards(current_children); + var cur = (stack.length == 0) ? 0 : stack[stack.length - 1]; + getNode(cur).then(function(r) { loadMap(r); }); + renderUserPanel(); + }); + userpanel.appendChild(hidden_btn); + /* 管理员专属入口:运维机器人 / 进程管理器 */ if (current_user.is_admin) { let ops_btn = document.createElement("div");