9.15 布局系统
概述
布局系统(src/layout/)提供管理后台标准骨架:侧栏菜单、顶栏(面包屑/用户区)、标签页(tabsView)、内容区(keep-alive 页面缓存)、锁屏等,全部受 projectSetting 在线配置驱动。
布局骨架
text
┌───────┬──────────────────────────────────────────┐
│ │ 顶栏:折叠按钮 / 面包屑 / 全屏 / 用户头像 │
│ 侧栏 ├──────────────────────────────────────────┤
│ 菜单 │ 标签页(tabsView):多页签导航 + 缓存 │
│ ├──────────────────────────────────────────┤
│ │ │
│ │ 内容区 <router-view> + keep-alive │
│ │ │
└───────┴──────────────────────────────────────────┘组成
| 部分 | 说明 |
|---|---|
| 侧栏 | 菜单数据来自 asyncRoute(getMenus 生成);支持折叠;图标 router-icons 映射 |
| 顶栏 | 面包屑(路由层级)、主题/全屏工具、用户下拉(个人中心/退出) |
| tabsView | 多标签页导航;visitedTabs 记录;keep-alive name 对应缓存 |
| 内容区 | router-view;cachedTabs 内页面状态保留(列表筛选/页码不丢) |
| 锁屏 | lockscreen store(离开工位锁定) |
布局模式(projectSetting)
text
侧栏布局(默认)/ 顶部导航布局等模式切换
侧栏主题(深/浅)、固定头/侧栏、标签页开关、面包屑开关
响应式:窄屏侧栏自动折叠与路由/菜单的协作
text
asyncRoute.generateRoutes(getMenus)
→ 侧栏渲染菜单树(hide=1 不渲染,sort 排序)
→ 动态路由 addRoute
→ tabsView 记录访问页签
→ keep-alive 按 name 缓存页面状态keep-alive 与页面缓存
text
缓存条件:路由 meta.keepAlive + tabsView cachedTabs 包含
页面 component name 需与路由 name 一致(缓存键)
清除缓存:tabsView 右键"关闭其他/全部"或 delCachedTab
列表页需要保留筛选/页码时开启 keep-alive定制建议
- 品牌定制:logo(assets)、主题色(9.14 样式与主题定制)、系统名称(配置)
- 新布局组件放 layout/ 下,勿塞进页面
- 布局级权限:菜单驱动(未授权菜单不出现)——无需布局层额外判断
- iframe 页面:views/iframe(内嵌外部系统场景,路由 meta 指定 URL)