Skip to content

组件

AdminLayout

主布局组件,包含侧边栏、顶部栏和内容区域。

属性

参数说明类型默认值
siteTitle站点标题string | (() => string)'Admin Dashboard'
pageTitle页面标题string | (() => string)-
copyright版权信息string | (() => string)-
logoLogo 图片地址string-
showPageHeader是否显示页面头部booleantrue
showBreadcrumb是否显示面包屑booleantrue
breadcrumbItems面包屑配置BreadcrumbItem[]-
sidebarItems侧边栏菜单配置SidebarItem[][]
showFooter是否显示底部booleantrue
showThemeSwitch是否显示主题切换booleantrue
currentTheme当前主题'light' | 'dark' | 'auto'-
showLanguageSelect是否显示语言切换booleantrue
currentLanguage当前语言string | number-
languages可选语言配置string[] | Record<string, string | number>[]

事件

事件名说明回调参数
toggleTheme切换主题时触发(theme: Theme) => void
changeLanguage切换语言时触发(language: string) => void
menuSelect选择菜单项时触发(key: string) => void
sidebarCollapsed侧边栏展开/收起时触发(collapsed: boolean) => void

插槽

插槽名说明
default内容区域
logo自定义 Logo 区域
header-actions顶部栏右侧操作区
footer-content自定义底部内容
breadcrumb-items自定义面包屑项
page-header-extra页面头部额外内容

面包屑导航组件,用于显示当前页面在网站层级结构中的位置。

属性

参数说明类型默认值
items面包屑项配置AppBreadcrumbItem[]根据路由自动生成

AppBreadcrumbItem 类型

ts
interface AppBreadcrumbItem {
  title: string | (() => string) // 显示的标题
  path: string  // 链接路径
  icon?: any    // 图标
  lastRouteName?: string | (() => string) // 上一级路由名称
}

路由配置

面包屑会自动从路由配置中获取数据。您可以在路由的 meta 中配置以下属性:

ts
{
  meta: {
    title: '页面标题',      // 页面标题,也用于面包屑
    breadcrumb: '自定义标题', // 面包屑中显示的自定义标题(可选)
    lastRouteName: 'home'  // 上一级路由名称(可选)
  }
}

Composables

您可以使用 useBreadcrumbs() 直接获取和修改面包屑:

ts
import { useBreadcrumbs } from '@uozi-admin/layout-antdv'

// 在组件中使用
const breadcrumbs = useBreadcrumbs()

// 修改面包屑
breadcrumbs.value = [
  { title: '首页', path: '/' },
  { title: '产品列表', path: '/products' },
  { title: '产品详情', path: '/products/1' }
]

插槽

插槽名说明插槽参数
default自定义面包屑项内容{ item: AppBreadcrumbItem }

使用示例

vue
<template>
  <Breadcrumb :items="customItems">
    <template #default="{ item }">
      <!-- 自定义面包屑项渲染 -->
      <CustomIcon :icon="item.icon" />
      {{ item.title }}
    </template>
  </Breadcrumb>
</template>

根据 Apache-2.0 许可发布。