feat(web): 网站底部悬挂工信部备案号

- 新增 IcpFooter 组件: 豫ICP备2026009947号-2, 链接 https://beian.miit.gov.cn/
- 登录页底部固定显示(访客可见, 备案审查入口)
- 主布局内容区底部显示(登录后所有页面可见)
This commit is contained in:
Sisyphus 2026-10-16 16:37:25 +08:00
parent 855d4c3f00
commit 029c629b3b
3 changed files with 23 additions and 2 deletions

View File

@ -16,6 +16,7 @@ import ReportCenterPage from '@/components/ReportCenterPage'
import RuleCenterPage from '@/components/RuleCenterPage'
import SystemMonitorPage from '@/components/SystemMonitorPage'
import AdminPage from '@/components/AdminPage'
import IcpFooter from '@/components/IcpFooter'
type Page = 'overview' | 'inquiry' | 'image' | 'product' | 'comparison' | 'lead-detail' | 'report-center' | 'rule-center' | 'system-monitor' | 'admin-tenants' | 'admin-users' | 'admin-stats' | 'admin-configs' | 'admin-plans'
@ -43,7 +44,7 @@ export default function Home() {
<ToastProvider>
<div className="flex min-h-screen">
<Sidebar current={page} onNavigate={setPage} user={user} onLogout={logout} />
<main className="flex-1 ml-64 p-8">
<main className="flex-1 ml-64 p-8 flex flex-col">
<ErrorBoundary>
{page === 'overview' && <OverviewPage onNavigate={(p) => setPage(p as Page)} />}
{page === 'inquiry' && <InquiryPage onLeadDetail={handleLeadDetail} />}
@ -56,6 +57,8 @@ export default function Home() {
{page === 'system-monitor' && <SystemMonitorPage />}
{page.startsWith('admin-') && <AdminPage section={page.replace('admin-', '') as any} />}
</ErrorBoundary>
<div className="flex-1" />
<IcpFooter />
</main>
</div>
</ToastProvider>

View File

@ -0,0 +1,14 @@
export default function IcpFooter() {
return (
<div className="py-4 text-center">
<a
href="https://beian.miit.gov.cn/"
target="_blank"
rel="noreferrer noopener"
className="text-xs text-on-surface-variant hover:text-secondary transition-colors"
>
豫ICP备2026009947号-2
</a>
</div>
)
}

View File

@ -2,6 +2,7 @@
import { useState } from 'react'
import { useAuth } from './AuthProvider'
import IcpFooter from './IcpFooter'
export default function LoginPage() {
const { login } = useAuth()
@ -24,7 +25,7 @@ export default function LoginPage() {
}
return (
<div className="min-h-screen bg-[#f7f9fb] flex items-center justify-center">
<div className="min-h-screen bg-[#f7f9fb] relative flex items-center justify-center">
<div className="w-full max-w-md">
<div className="bg-white rounded-2xl shadow-sm border border-border-subtle p-10">
<div className="text-center mb-10">
@ -82,6 +83,9 @@ export default function LoginPage() {
</div>
</div>
</div>
<div className="absolute bottom-0 left-0 right-0">
<IcpFooter />
</div>
</div>
)
}