refactor: 清理无用模块、修复前后端对齐、添加注册页面

- 删除后端 risk_exceptions 模块(API/Model/Schema/迁移/测试)
- 删除后端 metrics 模块(API/测试)
- 删除后端 ManualTask 模型和相关 Schema
- 修复搜索接口响应缺少 total 字段的问题
- 统一 Platform 枚举(前端去掉后端不支持的 weibo/wechat)
- 新增前端注册页面 /register,登录页添加注册链接

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
Your Name
2026-02-09 14:51:17 +08:00
co-authored by Claude Opus 4.6
parent a32102f583
commit 4a3c7e7923
22 changed files with 725 additions and 1298 deletions
+15 -15
View File
@@ -5,7 +5,7 @@ import { api } from '@/lib/api'
import type {
VideoReviewRequest,
ReviewTask,
TaskStatus,
ReviewTaskStatus,
} from '@/types/review'
interface UseReviewOptions {
@@ -36,11 +36,11 @@ export function useReview(options: UseReviewOptions = {}) {
try {
const response = await api.submitVideoReview(data)
setTask({
reviewId: response.reviewId,
review_id: response.review_id,
status: response.status,
createdAt: new Date().toISOString(),
created_at: new Date().toISOString(),
})
return response.reviewId
return response.review_id
} catch (err) {
const error = err instanceof Error ? err : new Error('提交失败')
setError(error)
@@ -59,11 +59,11 @@ export function useReview(options: UseReviewOptions = {}) {
const progress = await api.getReviewProgress(reviewId)
setTask((prev) => ({
...prev,
reviewId: progress.reviewId,
review_id: progress.review_id,
status: progress.status,
progress: progress.progress,
currentStep: progress.currentStep,
createdAt: prev?.createdAt || new Date().toISOString(),
current_step: progress.current_step,
created_at: prev?.created_at || new Date().toISOString(),
}))
return progress
} catch (err) {
@@ -80,14 +80,14 @@ export function useReview(options: UseReviewOptions = {}) {
try {
const result = await api.getReviewResult(reviewId)
const updatedTask: ReviewTask = {
reviewId: result.reviewId,
review_id: result.review_id,
status: result.status,
score: result.score,
summary: result.summary,
violations: result.violations,
softWarnings: result.softWarnings,
createdAt: task?.createdAt || new Date().toISOString(),
completedAt: new Date().toISOString(),
soft_warnings: result.soft_warnings,
created_at: task?.created_at || new Date().toISOString(),
completed_at: new Date().toISOString(),
}
setTask(updatedTask)
return updatedTask
@@ -96,7 +96,7 @@ export function useReview(options: UseReviewOptions = {}) {
setError(error)
throw error
}
}, [task?.createdAt])
}, [task?.created_at])
/**
* 清除轮询定时器
@@ -203,13 +203,13 @@ export function useReviewResult(reviewId: string | null) {
try {
const result = await api.getReviewResult(reviewId)
setTask({
reviewId: result.reviewId,
review_id: result.review_id,
status: result.status,
score: result.score,
summary: result.summary,
violations: result.violations,
softWarnings: result.softWarnings,
createdAt: new Date().toISOString(),
soft_warnings: result.soft_warnings,
created_at: new Date().toISOString(),
})
} catch (err) {
setError(err instanceof Error ? err : new Error('查询失败'))