refactor(plugins): 将导航/友链/关于/统计 4 模块迁出 framework 至 plugins
- 在 applications/config.py 中通过 PLUGIN_ENABLE_FOLDERS 启用 4 个业务插件
- 删除 framework 内 applications/view/system/nav.py 与 templates/system/nav/* 模板
- applications/extensions/init_plugs 移除重复的 broadcast_execute('event_init'/'event_finish')
(由 init_bps / init_script 触发,避免 Blueprint 注册冲突)
- applications/view/system/index.py:未登录访问 / 直接渲染前台公开聚合页
- templates/system/index.html:移动端首屏即折叠侧边栏
- 新增 5 个 model(Nav 字段 status→enable 兼容、NavCategory、About、Friend、VisitLog/PageStat、NavClick)
- 新增 2 个 schema(NavCategorySchema、FriendOutSchema/ManageSchema)
- admin_about/admin_friend/admin_nav_category 在 init.json 中以「网站管理」分组挂载
- .gitignore 补充一次性备份、调试截图、探针截图不入库
This commit is contained in:
@@ -8,6 +8,14 @@
|
||||
</head>
|
||||
<!-- 结 构 代 码 -->
|
||||
<body class="layui-layout-body pear-admin">
|
||||
<!-- 首屏即折叠侧边栏:避免移动端加载期间 sidebar 展开遮挡内容(后续 admin.js 会再次同步状态) -->
|
||||
<script>
|
||||
(function () {
|
||||
if (window.innerWidth <= 768) {
|
||||
document.body.classList.add('pear-mini');
|
||||
}
|
||||
})();
|
||||
</script>
|
||||
<!-- 布 局 框 架 -->
|
||||
<div class="layui-layout layui-layout-admin">
|
||||
<!-- 顶 部 样 式 -->
|
||||
@@ -145,6 +153,32 @@
|
||||
// 渲染
|
||||
admin.render();
|
||||
|
||||
// 移动端初始化:窗口较窄时默认折叠左侧菜单,避免内容被侧边栏挡住
|
||||
(function () {
|
||||
function foldSidebar() {
|
||||
if ($(window).width() > 768) return;
|
||||
var body = $('body');
|
||||
var admin = $('.pear-admin');
|
||||
// 直接加 class:不依赖 .collapse 按钮是否存在或是否响应点击
|
||||
if (!admin.hasClass('pear-mini')) {
|
||||
admin.addClass('pear-mini');
|
||||
body.addClass('pear-mini');
|
||||
}
|
||||
// 同步 menu 实例状态,防止后续交互异常
|
||||
if (window.PearAdmin && window.PearAdmin.instances && window.PearAdmin.instances.menu) {
|
||||
try {
|
||||
window.PearAdmin.instances.menu.collapse();
|
||||
} catch (e) {}
|
||||
window.PearAdmin.instances.menu.isCollapse = true;
|
||||
}
|
||||
}
|
||||
// 立即 + 多次延迟:覆盖 admin.js 异步初始化和菜单渲染滞后
|
||||
foldSidebar();
|
||||
setTimeout(foldSidebar, 300);
|
||||
setTimeout(foldSidebar, 800);
|
||||
setTimeout(foldSidebar, 1500);
|
||||
})();
|
||||
|
||||
// 注销
|
||||
admin.logout(function () {
|
||||
let loading = layer.load()
|
||||
|
||||
Reference in New Issue
Block a user