fix: 修复前端代码质量问题

- 创建 Toast 通知组件,替换所有 alert() 调用
- 修复 useReview hook 内存泄漏(setInterval 清理)
- 移除所有 console.error 和 console.log 语句
- 为复制操作失败添加用户友好的 toast 提示

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-02-09 12:48:22 +08:00
co-authored by Claude Opus 4.5
parent a5a005db0c
commit 37ac749071
33 changed files with 519 additions and 91 deletions
+5 -3
View File
@@ -2,6 +2,7 @@
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'
@@ -120,6 +121,7 @@ const mockCurrentCompany = {
export default function AgencyCompanyPage() {
const router = useRouter()
const toast = useToast()
const [isEditing, setIsEditing] = useState(false)
const [formData, setFormData] = useState(mockCurrentCompany)
const [isSaving, setIsSaving] = useState(false)
@@ -182,7 +184,7 @@ export default function AgencyCompanyPage() {
// 提交验证
const handleSubmitVerify = async () => {
if (!verifyCode.trim()) {
alert('请输入验证信息')
toast.error('请输入验证信息')
return
}
@@ -196,7 +198,7 @@ export default function AgencyCompanyPage() {
setVerifyMethod(null)
setVerifyStep(1)
setVerifyCode('')
alert('企业认证成功')
toast.success('企业认证成功')
}
const handleSave = async () => {
@@ -204,7 +206,7 @@ export default function AgencyCompanyPage() {
await new Promise(resolve => setTimeout(resolve, 1000))
setIsSaving(false)
setIsEditing(false)
alert('公司信息已保存')
toast.success('公司信息已保存')
}
// 认证状态显示
+5 -3
View File
@@ -2,6 +2,7 @@
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'
@@ -26,6 +27,7 @@ const mockUserData = {
export default function AgencyProfileEditPage() {
const router = useRouter()
const toast = useToast()
const [formData, setFormData] = useState(mockUserData)
const [isSaving, setIsSaving] = useState(false)
const [copied, setCopied] = useState(false)
@@ -35,8 +37,8 @@ export default function AgencyProfileEditPage() {
await navigator.clipboard.writeText(formData.agencyId)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
} catch (err) {
console.error('复制失败:', err)
} catch {
toast.error('复制失败,请重试')
}
}
@@ -44,7 +46,7 @@ export default function AgencyProfileEditPage() {
setIsSaving(true)
await new Promise(resolve => setTimeout(resolve, 1000))
setIsSaving(false)
alert('个人信息已保存')
toast.success('个人信息已保存')
router.back()
}
+4 -2
View File
@@ -17,6 +17,7 @@ import {
FileCheck
} from 'lucide-react'
import { cn } from '@/lib/utils'
import { useToast } from '@/components/ui/Toast'
// 代理商数据
const mockAgency = {
@@ -87,6 +88,7 @@ const menuItems = [
// 代理商卡片组件
function AgencyCard() {
const toast = useToast()
const [copied, setCopied] = useState(false)
// 复制代理商ID
@@ -95,8 +97,8 @@ function AgencyCard() {
await navigator.clipboard.writeText(mockAgency.agencyId)
setCopied(true)
setTimeout(() => setCopied(false), 2000)
} catch (err) {
console.error('复制失败:', err)
} catch {
toast.error('复制失败,请重试')
}
}