diff --git a/.DS_Store b/.DS_Store index 05fc10e..cbe3743 100644 Binary files a/.DS_Store and b/.DS_Store differ diff --git a/dist.zip b/dist.zip deleted file mode 100644 index 040f48b..0000000 Binary files a/dist.zip and /dev/null differ diff --git a/src/components/Breadcrumb.css b/src/components/Breadcrumb.css new file mode 100644 index 0000000..cefd491 --- /dev/null +++ b/src/components/Breadcrumb.css @@ -0,0 +1,79 @@ +/* 面包屑导航容器 */ +.breadcrumb-container { + background: white; + border-bottom: 1px solid #e2e8f0; + box-shadow: 0 1px 3px rgba(0, 0, 0, 0.05); +} + +.breadcrumb-content { + max-width: 1400px; + margin: 0 auto; + padding: 0.875rem 2rem; + display: flex; + align-items: center; + gap: 0.5rem; +} + +/* 面包屑项 */ +.breadcrumb-item { + display: flex; + align-items: center; + gap: 0.5rem; + font-size: 0.9rem; + font-weight: 500; + transition: all 0.2s ease; +} + +/* 首页链接 */ +.breadcrumb-home { + color: #667eea; + background: none; + border: none; + padding: 0.375rem 0.75rem; + border-radius: 6px; + cursor: pointer; + transition: all 0.2s ease; +} + +.breadcrumb-home:hover { + background: #eff6ff; + color: #5568d3; + transform: translateY(-1px); +} + +/* 分隔符 */ +.breadcrumb-separator { + color: #cbd5e1; + flex-shrink: 0; +} + +/* 当前页 */ +.breadcrumb-current { + color: #1e293b; + padding: 0.375rem 0.75rem; + background: #f8fafc; + border-radius: 6px; +} + +.breadcrumb-current svg { + color: #667eea; +} + +/* 响应式 */ +@media (max-width: 768px) { + .breadcrumb-content { + padding: 0.75rem 1rem; + } + + .breadcrumb-item { + font-size: 0.85rem; + } + + .breadcrumb-item span { + display: none; + } + + .breadcrumb-separator { + margin: 0 0.25rem; + } +} diff --git a/src/components/Breadcrumb.jsx b/src/components/Breadcrumb.jsx new file mode 100644 index 0000000..c3078fa --- /dev/null +++ b/src/components/Breadcrumb.jsx @@ -0,0 +1,35 @@ +import React from 'react'; +import { Home, ChevronRight } from 'lucide-react'; +import { useNavigate } from 'react-router-dom'; +import './Breadcrumb.css'; + +/** + * 面包屑导航组件 + * @param {string} currentPage - 当前页面名称 + * @param {string} icon - 当前页面图标(可选,lucide-react组件) + */ +const Breadcrumb = ({ currentPage, icon: Icon }) => { + const navigate = useNavigate(); + + const handleHomeClick = () => { + navigate('/dashboard'); + }; + + return ( +