20260821230656

This commit is contained in:
oneao committed 2026-08-21 23:06:56 +08:00
1 parent 2e5d532f23
commit c43b4c8364
144 files changed
+7665 -242

No files matched your search

+17 -6
View File
@@ -192,11 +192,15 @@ function onSplitterResize(sizes) {
transition: none;
}
/* 主区面板:四周留 8px 间距,左侧 0。
* 左侧空隙改由侧栏内容自身的右 padding(8px)承担,与右侧 8px 对称;
* 左 0 后卡片阴影会外扩到面板边界外,须将主区面板 overflow 改为 visible 才不被裁。
/* 主区面板:四周留 8px 间距(含左侧),与侧栏拉开标准间隙。
* 折叠态(窄侧栏 48px)左侧归 0,白卡贴侧栏右缘,避免过窄时两侧都留间隙。
* 卡片阴影会外扩到面板边界外,须将主区面板 overflow 改为 visible 才不被裁。
* 卡片自身 overflow: hidden + .fms-content 内部滚动,内容不会真正外溢,改为 visible 安全 */
.fms-main-panel {
padding: 8px;
}
.fms-layout.is-collapsed .fms-main-panel {
padding: 8px 8px 8px 0;
}
@@ -229,18 +233,25 @@ function onSplitterResize(sizes) {
box-shadow: var(--fms-shadow);
}
/* 内容区:白卡内滚动区,顶部由 .fms-tabs 的底边线分隔 */
/* 内容区:白卡内滚动区,顶部由 .fms-tabs 的底边线分隔。
* flex column:让页面根可用 flex:1 撑满可视高度(百分比高度链在滚动容器内不可靠) */
.fms-content {
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
overflow: auto;
padding: 12px 16px 16px;
}
/* 页面过渡外层包裹:稳定的 DOM 根,供 transition 的 out-in 模式直接管理,
* 避免 keep-alive 直接作 Transition 子节点时在 patch 阶段访问 null.parentNode 报错 */
* 避免 keep-alive 直接作 Transition 子节点时在 patch 阶段访问 null.parentNode 报错。
* flex:1 撑满内容区:低内容页面占满剩余高度,高内容页面自然增高由 .fms-content 滚动 */
.fms-page-wrap {
min-height: 100%;
flex: 1;
min-height: 0;
display: flex;
flex-direction: column;
}
/* ---- 页面过渡 ---- */
@@ -8,6 +8,7 @@ import {
Component,
GalleryVerticalEnd,
LayoutGrid,
Settings,
} from '@lucide/vue'
import { useAppStore } from '@/stores/app'
import { usePermissionStore } from '@/stores/permissions'
@@ -49,6 +50,15 @@ const navMain = computed(() => {
],
})
// 系统管理分组(先静态配置,动态菜单/权限后续接入)
items.push({
title: '系统管理',
icon: Settings,
items: [
{ title: '模块管理', url: '/system/module-management' },
],
})
const menuModules = permissionStore.modules.filter(
(m) => m.b_canmenu === 1 && m.b_canuse === 1 && ['directory', 'page'].includes(m.b_module_type),
)