Skip to content

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)

小蚂蚁云团队 · 提供技术支持