/** * 麵包屑導航組件 */ 'use client' import Link from 'next/link' import { usePathname } from 'next/navigation' interface BreadcrumbItem { name: string href?: string } export function Breadcrumb() { const pathname = usePathname() // 定義路徑對應的顯示名稱 const pathMap: Record = { dashboard: '系統首頁', employees: '員工管理', new: '新增員工', edit: '編輯員工', departments: '部門管理', organization: '組織架構', 'system-functions': '系統功能管理', 'company-info': '公司資料維護', } // 解析路徑生成麵包屑 const generateBreadcrumbs = (): BreadcrumbItem[] => { const paths = pathname.split('/').filter((path) => path) const breadcrumbs: BreadcrumbItem[] = [] paths.forEach((path, index) => { // 跳過數字 ID (例如 /employees/123) if (/^\d+$/.test(path)) { breadcrumbs.push({ name: `#${path}`, href: paths.slice(0, index + 1).join('/'), }) return } const name = pathMap[path] || path const href = '/' + paths.slice(0, index + 1).join('/') breadcrumbs.push({ name, href }) }) return breadcrumbs } const breadcrumbs = generateBreadcrumbs() // 如果只有一層(例如只在 /dashboard),不顯示麵包屑 if (breadcrumbs.length <= 1) { return null } return ( ) }