资源菜单

要将资源配置为边栏菜单,您需要在资源中定义元参数。该系统支持多级子关系,最多三个级别。

菜单创建

添加资源时应完成菜单配置,才上下级关系使用 parent 来确定上级资源名。以下是定义二级菜单的示例:

import { appContext, createApp } from '@duxweb/dux-refine'

const register = (context: appContext) => {
  const app = context.getApp('admin')

  // Add admin resources
  app.addResources([
    {
      name: 'content',
      meta: {
        label: 'Content Management',
        icon: 'i-tabler:book',
        sort: 0
      },
    },
    {
      name: 'article',
      list: 'article',
      meta: {
        label: 'Article Management',
        parent: 'content',
        sort: 0
      },
    },
  ])
}

菜单参数

菜单的配置为资源的 meta 参数,下面是参数定义:

labelstring
资源的标签,将显示在菜单和面包屑导航中,标签需要为语言包的字段路径。
parentstring
上级资源名,用于定义上下级关系。它对应于父资源名参数。
listComponentReact.ReactNode | null
列表页面的组件
iconstring
菜单图标,dux-refine 集成了 tabler icon 作为主要图标,可以使用 i-tabler:图标名 作为图标值。
sortnumber
菜单顺序,按从小到大的升序排序。

菜单翻译

框架将自动自动使用 label 对应的语言包变量值。默认情况下,使用以下格式对应的语言包的字段路径:

{label}.name

因此,您需要在语言包中配置它,如下所示:

// zh-CN
{
  "article": {
    "name": "文章"
  }
}