'use client' import React, { useState } from 'react' import { useRouter } from 'next/navigation' import { CircleUser, Settings, BellRing, History, MessageCircleQuestion, PlusCircle, ChevronRight, LogOut, Copy, Check } from 'lucide-react' import { ResponsiveLayout } from '@/components/layout/ResponsiveLayout' import { cn } from '@/lib/utils' // 用户数据 const mockUser = { name: '李小红', initial: '李', creatorId: 'CR123456', // 达人ID role: '抖音达人 · 已认证', stats: { completed: 28, passRate: 92, inProgress: 3, }, } // 菜单项数据 const menuItems = [ { id: 'personal', icon: CircleUser, iconColor: 'text-accent-indigo', bgColor: 'bg-accent-indigo', title: '个人信息', subtitle: '头像、昵称、绑定账号', }, { id: 'account', icon: Settings, iconColor: 'text-accent-green', bgColor: 'bg-accent-green', title: '账户设置', subtitle: '修改密码、账号安全', }, { id: 'notification', icon: BellRing, iconColor: 'text-accent-blue', bgColor: 'bg-accent-blue', title: '消息设置', subtitle: '通知开关、提醒偏好', }, { id: 'history', icon: History, iconColor: 'text-accent-coral', bgColor: 'bg-accent-coral', title: '历史记录', subtitle: '已完成和过期的任务', }, { id: 'help', icon: MessageCircleQuestion, iconColor: 'text-text-secondary', bgColor: 'bg-bg-elevated', title: '帮助与反馈', subtitle: '常见问题、联系客服', }, { id: 'appeal', icon: PlusCircle, iconColor: 'text-accent-indigo', bgColor: 'bg-accent-indigo', title: '申诉次数', subtitle: '查看各任务申诉次数 · 申请增加', }, ] // 用户卡片组件 function UserCard() { const [copied, setCopied] = useState(false) // 复制达人ID const handleCopyId = async () => { try { await navigator.clipboard.writeText(mockUser.creatorId) setCopied(true) setTimeout(() => setCopied(false), 2000) } catch (err) { console.error('复制失败:', err) } } return (
{/* 头像和信息 */}
{/* 头像 */}
{mockUser.initial}
{/* 用户信息 */}
{mockUser.name} {mockUser.role} {/* 达人ID */}
达人ID:
{mockUser.creatorId}
{copied && ( 已复制 )}
{/* 统计数据 */}
{mockUser.stats.completed} 完成任务
{mockUser.stats.passRate}% 通过率
{mockUser.stats.inProgress} 进行中
) } // 菜单项组件 function MenuItem({ item, onClick }: { item: typeof menuItems[0]; onClick: () => void }) { const Icon = item.icon const isPlainBg = item.bgColor === 'bg-bg-elevated' return ( ) } // 菜单卡片组件 function MenuCard({ onMenuClick }: { onMenuClick: (id: string) => void }) { return (
{menuItems.map((item, index) => (
onMenuClick(item.id)} /> {index < menuItems.length - 1 && (
)}
))}
) } // 退出卡片组件 function LogoutCard({ onLogout }: { onLogout: () => void }) { return (
) } export default function CreatorProfilePage() { const router = useRouter() // 菜单项点击处理 const handleMenuClick = (menuId: string) => { const routes: Record = { personal: '/creator/profile/edit', account: '/creator/settings/account', notification: '/creator/settings/notification', history: '/creator/history', help: '/creator/help', appeal: '/creator/appeal-quota', } const route = routes[menuId] if (route) { router.push(route) } } // 退出登录 const handleLogout = () => { // TODO: 实际退出逻辑 router.push('/login') } return (
{/* 顶部栏 */}

个人中心

管理您的账户信息和偏好设置

{/* 内容区 - 响应式布局 */}
{/* 用户卡片 */}
{/* 菜单和退出 */}
) }