'use client' import { useState } from 'react' import { useRouter } from 'next/navigation' import { useToast } from '@/components/ui/Toast' import { Card, CardContent, CardHeader, CardTitle } from '@/components/ui/Card' import { Button } from '@/components/ui/Button' import { Input } from '@/components/ui/Input' import { ArrowLeft, Lock, Shield, Smartphone, Mail, Key, Eye, EyeOff, CheckCircle, AlertTriangle } from 'lucide-react' import { USE_MOCK } from '@/contexts/AuthContext' import { api } from '@/lib/api' export default function AgencyAccountSettingsPage() { const router = useRouter() const toast = useToast() const [showOldPassword, setShowOldPassword] = useState(false) const [showNewPassword, setShowNewPassword] = useState(false) const [showConfirmPassword, setShowConfirmPassword] = useState(false) const [passwordForm, setPasswordForm] = useState({ oldPassword: '', newPassword: '', confirmPassword: '', }) const [isSaving, setIsSaving] = useState(false) // 模拟账号安全状态 const securityStatus = { phone: { bound: true, value: '138****8888' }, email: { bound: true, value: 'zhang@starmedia.com' }, twoFactor: { enabled: false }, } const handleChangePassword = async () => { if (!passwordForm.oldPassword || !passwordForm.newPassword || !passwordForm.confirmPassword) { toast.error('请填写完整密码信息') return } if (passwordForm.newPassword !== passwordForm.confirmPassword) { toast.error('两次输入的新密码不一致') return } if (passwordForm.newPassword.length < 8) { toast.error('新密码长度不能少于8位') return } setIsSaving(true) if (USE_MOCK) { await new Promise(resolve => setTimeout(resolve, 1000)) setIsSaving(false) toast.success('密码修改成功') setPasswordForm({ oldPassword: '', newPassword: '', confirmPassword: '' }) return } try { await api.changePassword({ old_password: passwordForm.oldPassword, new_password: passwordForm.newPassword, }) toast.success('密码修改成功') setPasswordForm({ oldPassword: '', newPassword: '', confirmPassword: '' }) } catch (err: any) { toast.error(err.message || '密码修改失败') } finally { setIsSaving(false) } } return (
管理密码和账号安全
手机绑定
{securityStatus.phone.bound ? securityStatus.phone.value : '未绑定'}
邮箱绑定
{securityStatus.email.bound ? securityStatus.email.value : '未绑定'}
两步验证
{securityStatus.twoFactor.enabled ? '已开启' : '未开启,建议开启以增强安全'}