Documentation
¶
Overview ¶
Package console 把 Vite 构建出的 Console SPA 嵌入二进制并提供静态资源服务。
dist 目录由 `task console:build` 生成(见 Taskfile.yml),不入库。 仓库只保留 dist/.gitkeep 占位,保证未构建前端时后端依然可以编译。
本包的 Handler 期望被挂载在 MountPath 下,调用方需自行 StripPrefix。
Index ¶
Constants ¶
View Source
const MountPath = "/console/"
MountPath 是 Console 的挂载前缀,必须与 console/vite.config.ts 的 base 一致。
NavPath 是菜单接口的路径,挂在 Console 平面之下。
Variables ¶
This section is empty.
Functions ¶
Types ¶
type NavHandler ¶
type NavHandler struct {
// contains filtered or unexported fields
}
NavHandler 提供 Console 的菜单。
菜单为什么由服务端给而不是前端写死:插件的页面要出现在侧边栏里, 而前端不可能事先知道有哪些插件。清单一旦写死在前端, 它就必须与后端的模块构成保持同步,而那种同步只能靠人记着。
**权限在这里不过滤**:本接口对所有已登录用户开放,携带每一项所需的权限串, 由前端决定显示与否。理由是菜单的过滤规则与前端已有的 can() 必须是同一套—— 服务端过滤一遍、前端再判一遍,两套规则迟早分叉。 菜单不是安全边界,真正的拦截在各页面的服务端接口上。
func NewNavHandler ¶
func NewNavHandler(navigation func() app.Navigation) *NavHandler
NewNavHandler 构造菜单处理器。
接受一个取菜单的函数而不是一份清单:设置分组的登记要等模块 Start, 而设置页的入口是从那份分组列表推导出来的。构造时取一次会漏掉它们。
Click to show internal directories.
Click to hide internal directories.