菜单配置

分为目录菜单, 前者不需要配置视图路径

Meta配置说明

typingopen in new window

interface RouteMeta extends Record<string | number | symbol, unknown> {
    /**
     * 如果为真,那么不会在菜单栏进行显示
     */
    hidden?: boolean

    /**
     * 菜单标题
     */
    title?: string

    /**
     * 菜单icon,约定仅一级菜单需要icon,次级菜单均无需要配置
     */
    icon?: string

    /**
     * 路由过渡动画
     */
    transitionName?: RouterTransitionEnum

    /**
     * 内链菜单下的链接地址
     */
    iframeSrc?: string

    /**
     * 前端角色模式下使用(纯前端)
     */
    roles?: RoleEnum[]

    /**
     * 当前激活的菜单
     */
    currentActiveMenu?: string
  }

视图路径

所有的菜单视图(view)都是动态加载的,视图文件路径会自动扫描/@/views/下所有定义的index.vue或者index.tsx

视图路径也可以填写外部链接地址,系统会以内嵌iframe的方式加载。

实现方式可查看routeHelper.tsopen in new window

菜单Icon

系统图标方案选择了UnoCss preset-iconsopen in new window方案。

由于UnoCSS使用静态提取在构建时工作,在编译时无法知道这些菜单Icon导致不会被编译其中,需要在icon.data.ts中加入,这些图标会自动添加到safeList,加入后即可正常使用。

icon.data.ts文件定义在src/components/Icon/data