代理商端前端: - 新增达人管理页面(含任务申诉次数管理) - 新增消息中心(含申诉次数申请审批) - 新增 Brief 管理(列表、详情) - 新增审核中心(脚本审核、视频审核) - 新增数据报表页面 品牌方端前端: - 优化首页仪表盘布局 - 新增项目管理(列表、详情、创建) - 新增代理商管理页面 - 新增审核中心(脚本终审、视频终审) - 新增系统设置页面 文档更新: - 申诉次数改为按任务分配(每任务初始1次) - 更新 PRD、FeatureSummary、User_Role_Interfaces 等文档 - 更新 UI 设计规范和开发计划 Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1171 lines
28 KiB
Markdown
1171 lines
28 KiB
Markdown
# tasks.md - 秒思智能审核平台 开发任务清单
|
||
|
||
| 文档类型 | **Development Tasks (开发任务清单)** |
|
||
| --- | --- |
|
||
| **项目名称** | 秒思智能审核平台 (AI 营销内容合规审核平台) |
|
||
| **版本号** | V2.0 |
|
||
| **发布日期** | 2026-02-06 |
|
||
| **设计稿文件** | `pencil-new.pen` |
|
||
| **开发模式** | Pencil 设计稿 → 前端代码 → 后端 API 支撑 |
|
||
|
||
---
|
||
|
||
## 版本历史
|
||
|
||
| 版本 | 日期 | 作者 | 变更说明 |
|
||
| --- | --- | --- | --- |
|
||
| V1.0~V1.7 | 2026-02-02~04 | Claude | 历史版本(基于功能清单拆解) |
|
||
| **V2.0** | 2026-02-06 | Claude | **重构**:基于 pencil-new.pen 实际 UI 设计重新组织任务,按"设计稿→前端→后端"开发流程编排 |
|
||
|
||
---
|
||
|
||
## 0. 开发思路
|
||
|
||
### 0.1 核心流程
|
||
|
||
```
|
||
┌─────────────────┐ ┌─────────────────┐ ┌─────────────────┐
|
||
│ Pencil 设计稿 │ ──▶ │ 前端代码实现 │ ──▶ │ 后端 API 支撑 │
|
||
│ pencil-new.pen │ │ Next.js/React │ │ FastAPI │
|
||
└─────────────────┘ └─────────────────┘ └─────────────────┘
|
||
```
|
||
|
||
1. **设计稿驱动**:所有页面以 pencil-new.pen 为准
|
||
2. **前端先行**:根据设计稿直接实现前端页面
|
||
3. **后端支撑**:确保前端功能所需的 API 和数据逻辑成立
|
||
|
||
### 0.2 TDD 规范
|
||
|
||
| 任务类型 | TDD 要求 | 测试工具 |
|
||
| --- | --- | --- |
|
||
| 前端组件 | 组件级 TDD | Vitest + RTL |
|
||
| 前端页面 | 快照测试 + 交互测试 | Vitest + Playwright |
|
||
| 后端 API | 契约优先 + 测试验证 | pytest + httpx |
|
||
| 后端服务 | 严格 TDD(先写测试) | pytest |
|
||
|
||
### 0.3 完成标准 (DoD)
|
||
|
||
- [ ] 代码实现
|
||
- [ ] 单元测试通过
|
||
- [ ] 覆盖率达标(后端 ≥80%,前端 ≥70%)
|
||
- [ ] 与设计稿视觉一致
|
||
- [ ] 代码 Review 通过
|
||
|
||
---
|
||
|
||
## 1. 项目架构
|
||
|
||
### 1.1 前端技术栈
|
||
|
||
```
|
||
Next.js 14 + React 18 + TypeScript + Tailwind CSS
|
||
├── 状态管理: Zustand
|
||
├── 图标: Lucide React
|
||
├── 文件上传: Uppy (Tus 协议)
|
||
├── HTTP: Axios
|
||
├── 测试: Vitest + Testing Library
|
||
└── E2E: Playwright
|
||
```
|
||
|
||
### 1.2 后端技术栈
|
||
|
||
```
|
||
FastAPI + SQLAlchemy 2.0 + PostgreSQL + Redis + Celery
|
||
├── 认证: JWT
|
||
├── AI 服务: OpenAI SDK (支持多厂商)
|
||
├── 异步任务: Celery + Redis
|
||
├── 数据库迁移: Alembic
|
||
└── 测试: pytest + pytest-asyncio
|
||
```
|
||
|
||
### 1.3 三端页面清单
|
||
|
||
#### 品牌方端 (12 页面)
|
||
|
||
| 页面 | 节点ID | 功能 |
|
||
| --- | --- | --- |
|
||
| 项目看板 | xUM9m | 项目列表与数据概览 |
|
||
| 项目详情 | D1O6f | 单项目数据分析 |
|
||
| 创建项目 | fP5rY | 新建项目表单 |
|
||
| 终审台(列表) | afJEU | 脚本/视频待终审列表 |
|
||
| 脚本终审决策台 | Sw2hw | 简单模式(文件图标) |
|
||
| 脚本终审(预览) | cp5CE | 展开脚本内容审核 |
|
||
| 视频终审决策台 | aePi5 | 视频播放+问题标记 |
|
||
| 代理商管理 | 2jnnO | 代理商列表+邀请 |
|
||
| 邀请代理商弹窗 | GyUlM | 邀请模态框 |
|
||
| 规则配置 | nhHSF | 黑白名单管理 |
|
||
| AI配置 | 4ppiJ | AI服务配置 |
|
||
| 系统设置 | 4nVj4 | 通用设置 |
|
||
|
||
#### 代理商端 (13 页面)
|
||
|
||
| 页面 | 节点ID | 功能 |
|
||
| --- | --- | --- |
|
||
| 工作台 | RX8V9 | 待办统计+快捷入口 |
|
||
| 项目详情 | C7wfV | 项目数据和达人列表 |
|
||
| 审核台(列表) | zjiCT | 脚本/视频待审列表 |
|
||
| 脚本审核决策台 | f8HX9 | 简单模式 |
|
||
| 脚本审核(预览) | Wct5R | 展开脚本+AI分析 |
|
||
| 视频审核决策台 | 2u8Bq | 视频播放+问题标记 |
|
||
| Brief配置(列表) | Nicby | 待配置/已配置列表 |
|
||
| Brief配置(待配置) | jRsW5 | 上传+配置规则 |
|
||
| Brief配置(已配置) | b06fU | 查看/编辑配置 |
|
||
| 达人管理 | 5cFMX | 达人列表+邀请 |
|
||
| 邀请达人弹窗 | ADN10 | 邀请模态框 |
|
||
| 数据报表 | An8gw | 项目数据统计 |
|
||
| 消息中心 | PfMR0 | 通知列表 |
|
||
|
||
#### 达人端 (18+ 状态页面)
|
||
|
||
| 页面 | 节点ID | 功能 |
|
||
| --- | --- | --- |
|
||
| 任务列表 | HD3eK | 当前任务卡片列表 |
|
||
| 个人中心 | BgzAd | 个人设置 |
|
||
| 消息中心 | 8XKLP | 通知列表 |
|
||
| 脚本-上传 | lVL76 | 脚本上传页 |
|
||
| 脚本-AI审核中 | kcRxj | 等待AI审核 |
|
||
| 脚本-AI结果 | cjcZZ | AI审核结果 |
|
||
| 脚本-等待代理商 | KLHcb | 等待代理商审核 |
|
||
| 脚本-代理商驳回 | flniQ | 代理商驳回页 |
|
||
| 脚本-等待品牌方 | s3sWQ | 等待品牌方终审 |
|
||
| 脚本-品牌方通过 | KspeJ | 品牌方审核通过 |
|
||
| 脚本-品牌方驳回 | NeF4L | 品牌方驳回页 |
|
||
| 视频-上传 | g1RSX | 视频上传页 |
|
||
| 视频-AI审核中 | 0Qg21 | 等待AI审核 |
|
||
| 视频-AI结果 | YLFhx | AI审核结果 |
|
||
| 视频-等待代理商 | EkFap | 等待代理商审核 |
|
||
| 视频-代理商驳回 | A5fxU | 代理商驳回页 |
|
||
| 视频-等待品牌方 | RAJsF | 等待品牌方终审 |
|
||
| 视频-通过 | duYR2 | 审核通过页 |
|
||
| 视频-品牌方驳回 | zU3Op | 品牌方驳回页 |
|
||
|
||
---
|
||
|
||
## 2. Phase 1: 基础设施 (Week 1)
|
||
|
||
### FE-001: 前端项目初始化
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 1d |
|
||
| **状态** | ✅ 已完成 |
|
||
|
||
**现有代码评估:**
|
||
- ✅ Next.js 14 项目已搭建
|
||
- ✅ Tailwind CSS 已配置(含设计令牌)
|
||
- ✅ TypeScript 配置完成
|
||
- ✅ Vitest 测试框架已配置
|
||
|
||
**需要补充:**
|
||
- [ ] 确认路由结构与设计一致
|
||
- [ ] 更新 Tailwind 配色与 pencil-new.pen 一致
|
||
|
||
---
|
||
|
||
### FE-002: 基础 UI 组件库
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
| **状态** | ✅ 大部分已完成 |
|
||
|
||
**现有组件:**
|
||
- ✅ Button(含变体:primary/secondary/danger/success/ghost)
|
||
- ✅ Card(CardHeader/CardContent/CardTitle)
|
||
- ✅ Input(含变体和状态)
|
||
- ✅ Modal(ConfirmModal)
|
||
- ✅ Select
|
||
- ✅ Tag(SuccessTag/WarningTag/ErrorTag/PendingTag)
|
||
- ✅ ProgressBar
|
||
- ✅ ReviewSteps
|
||
|
||
**需要补充:**
|
||
- [ ] FileUploader 组件(支持拖拽上传)
|
||
- [ ] VideoPlayer 组件(含进度条问题标记)
|
||
- [ ] Timeline 组件(审核流程进度条)
|
||
- [ ] Table 组件(列表页使用)
|
||
- [ ] Tooltip 组件
|
||
- [ ] Toast/Notification 组件
|
||
|
||
---
|
||
|
||
### FE-003: 布局和导航组件
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
| **状态** | ⚠️ 需要更新 |
|
||
|
||
**现有组件:**
|
||
- ✅ DesktopLayout
|
||
- ✅ MobileLayout
|
||
- ✅ ResponsiveLayout
|
||
- ✅ Sidebar(需更新导航项)
|
||
- ✅ BottomNav
|
||
- ✅ StatusBar
|
||
|
||
**需要更新:**
|
||
- [ ] Sidebar 组件更新导航项配置(品牌方7项、代理商6项)
|
||
- [ ] 添加侧边栏高亮状态逻辑
|
||
- [ ] 添加页面标题组件
|
||
|
||
---
|
||
|
||
### BE-001: 后端项目初始化
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 1d |
|
||
| **状态** | ✅ 已完成 |
|
||
|
||
**现有代码评估:**
|
||
- ✅ FastAPI 项目已搭建
|
||
- ✅ 数据库连接配置(PostgreSQL)
|
||
- ✅ Redis 配置
|
||
- ✅ Celery 配置
|
||
- ✅ Docker Compose 配置
|
||
- ✅ 健康检查接口 `/api/v1/health`
|
||
|
||
---
|
||
|
||
### BE-002: 数据库模型
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
| **状态** | ⚠️ 需要扩展 |
|
||
|
||
**现有模型:**
|
||
- ✅ Tenant(租户)
|
||
- ✅ ReviewTask(AI审核任务)
|
||
- ✅ ManualTask(人工审核任务)
|
||
- ✅ Rule(规则)
|
||
- ✅ AIConfig(AI配置)
|
||
- ✅ RiskException(风控特例)
|
||
|
||
**需要新增:**
|
||
- [ ] User 模型(用户信息、角色)
|
||
- [ ] Brand 模型(品牌方)
|
||
- [ ] Agency 模型(代理商)
|
||
- [ ] Creator 模型(达人)
|
||
- [ ] Project 模型(项目)
|
||
- [ ] Brief 模型(Brief文档)
|
||
- [ ] BlacklistWord 模型(黑名单词)
|
||
- [ ] WhitelistWord 模型(白名单词)
|
||
- [ ] Message 模型(消息通知)
|
||
|
||
---
|
||
|
||
### BE-003: 认证系统
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
| **状态** | 🔴 待开发 |
|
||
|
||
**需要实现:**
|
||
- [ ] JWT 认证中间件
|
||
- [ ] 登录接口 `POST /api/v1/auth/login`
|
||
- [ ] 注册接口 `POST /api/v1/auth/register`
|
||
- [ ] 当前用户接口 `GET /api/v1/auth/me`
|
||
- [ ] 角色权限校验(brand/agency/creator)
|
||
- [ ] 刷新 Token 接口
|
||
|
||
**前端配套:**
|
||
- [ ] AuthContext 更新
|
||
- [ ] AuthGuard 组件更新
|
||
- [ ] 登录页面实现
|
||
|
||
---
|
||
|
||
## 3. Phase 2: 品牌方端 (Week 2-3)
|
||
|
||
### 3.1 项目看板模块
|
||
|
||
#### FE-B01: 项目看板页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | xUM9m |
|
||
| **路由** | `/brand` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 页面标题 + 搜索框 + 筛选器
|
||
- [ ] 项目卡片列表(项目名、状态、脚本数/视频数)
|
||
- [ ] 点击卡片 → 项目详情页
|
||
- [ ] 「+ 创建项目」按钮
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/projects` 项目列表
|
||
|
||
---
|
||
|
||
#### FE-B02: 项目详情页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | D1O6f |
|
||
| **路由** | `/brand/projects/[id]` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 项目基本信息
|
||
- [ ] 数据统计卡片(审核数、通过率等)
|
||
- [ ] 达人任务列表
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/projects/:id` 项目详情
|
||
- `GET /api/v1/projects/:id/stats` 项目统计
|
||
|
||
---
|
||
|
||
#### FE-B03: 创建项目页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | fP5rY |
|
||
| **路由** | `/brand/projects/create` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 项目名称输入框
|
||
- [ ] 截止日期选择器
|
||
- [ ] Brief 文件上传(拖拽区)
|
||
- [ ] 代理商选择(卡片多选)
|
||
- [ ] 创建按钮
|
||
|
||
**后端依赖:**
|
||
- `POST /api/v1/projects` 创建项目
|
||
- `GET /api/v1/agencies` 代理商列表
|
||
- `POST /api/v1/upload/brief` 文件上传
|
||
|
||
---
|
||
|
||
### 3.2 终审台模块
|
||
|
||
#### FE-B04: 终审台列表页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | afJEU |
|
||
| **路由** | `/brand/review` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 脚本待审列表(左侧)
|
||
- [ ] 视频待审列表(右侧)
|
||
- [ ] 任务卡片(达人名、项目名、状态标签)
|
||
- [ ] 点击任务 → 进入审核决策台
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/brand/review/scripts` 脚本待审列表
|
||
- `GET /api/v1/brand/review/videos` 视频待审列表
|
||
|
||
---
|
||
|
||
#### FE-B05: 脚本终审决策台
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | Sw2hw (简单模式), cp5CE (预览模式) |
|
||
| **路由** | `/brand/review/script/[id]` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**页面元素:**
|
||
- [ ] 审核流程进度条
|
||
- [ ] 脚本预览区(简单模式:文件图标;预览模式:展开内容)
|
||
- [ ] 代理商初审意见
|
||
- [ ] AI 分析结果(违规用词、合规检查)
|
||
- [ ] 决策按钮(通过/驳回)
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/brand/review/scripts/:id` 脚本详情
|
||
- `POST /api/v1/brand/review/scripts/:id/approve` 通过
|
||
- `POST /api/v1/brand/review/scripts/:id/reject` 驳回
|
||
|
||
---
|
||
|
||
#### FE-B06: 视频终审决策台
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | aePi5 |
|
||
| **路由** | `/brand/review/video/[id]` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**页面元素:**
|
||
- [ ] 审核流程进度条
|
||
- [ ] 视频播放器(居中播放按钮)
|
||
- [ ] 智能进度条(问题标记点:红色=硬性问题,橙色=舆情提示)
|
||
- [ ] 图例说明
|
||
- [ ] 代理商初审意见
|
||
- [ ] AI 分析结果
|
||
- [ ] 决策按钮(通过/驳回)
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/brand/review/videos/:id` 视频详情
|
||
- `POST /api/v1/brand/review/videos/:id/approve` 通过
|
||
- `POST /api/v1/brand/review/videos/:id/reject` 驳回
|
||
|
||
---
|
||
|
||
### 3.3 管理模块
|
||
|
||
#### FE-B07: 代理商管理页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 2jnnO, GyUlM |
|
||
| **路由** | `/brand/agencies` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 代理商列表(卡片或表格)
|
||
- [ ] 「+ 邀请代理商」按钮
|
||
- [ ] 邀请弹窗(搜索代理商ID、发送邀请)
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/brand/agencies` 代理商列表
|
||
- `POST /api/v1/brand/agencies/invite` 发送邀请
|
||
- `GET /api/v1/agencies/search?id=xxx` 搜索代理商
|
||
|
||
---
|
||
|
||
#### FE-B08: 规则配置页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | nhHSF |
|
||
| **路由** | `/brand/rules` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] Tab 切换(黑名单/白名单)
|
||
- [ ] 词条列表(表格形式)
|
||
- [ ] 添加词条按钮 + 弹窗
|
||
- [ ] 删除词条功能
|
||
- [ ] 批量导入/导出
|
||
|
||
**后端依赖:**
|
||
- `GET /api/v1/rules/blacklist` 黑名单列表
|
||
- `POST /api/v1/rules/blacklist` 添加黑名单词
|
||
- `DELETE /api/v1/rules/blacklist/:id` 删除
|
||
- `GET /api/v1/rules/whitelist` 白名单列表
|
||
- `POST /api/v1/rules/whitelist` 添加白名单词
|
||
- `DELETE /api/v1/rules/whitelist/:id` 删除
|
||
|
||
---
|
||
|
||
#### FE-B09: AI 配置页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 4ppiJ |
|
||
| **路由** | `/brand/ai-config` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
| **状态** | ✅ 已实现 |
|
||
|
||
**现有实现评估:**
|
||
- ✅ AI 提供商选择
|
||
- ✅ 三类模型配置(LLM/Vision/ASR)
|
||
- ✅ 连接配置(Base URL/API Key)
|
||
- ✅ 生成参数配置
|
||
- ✅ 测试连接功能
|
||
- ✅ 配置继承说明
|
||
|
||
**需要验证:**
|
||
- [ ] 与后端 API 对接
|
||
- [ ] 测试连接功能真实调用
|
||
|
||
---
|
||
|
||
#### FE-B10: 系统设置页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 4nVj4 |
|
||
| **路由** | `/brand/settings` |
|
||
| **优先级** | P2 |
|
||
| **预估工时** | 1d |
|
||
|
||
**页面元素:**
|
||
- [ ] 通知设置
|
||
- [ ] 账户安全
|
||
- [ ] 数据导出
|
||
|
||
---
|
||
|
||
### 3.4 品牌方后端 API
|
||
|
||
#### BE-B01: 项目管理 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
POST /api/v1/projects # 创建项目
|
||
GET /api/v1/projects # 项目列表(支持分页、筛选)
|
||
GET /api/v1/projects/:id # 项目详情
|
||
PUT /api/v1/projects/:id # 更新项目
|
||
DELETE /api/v1/projects/:id # 删除项目
|
||
GET /api/v1/projects/:id/stats # 项目统计数据
|
||
```
|
||
|
||
---
|
||
|
||
#### BE-B02: 品牌方终审 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
GET /api/v1/brand/review/scripts # 待终审脚本列表
|
||
GET /api/v1/brand/review/scripts/:id # 脚本详情
|
||
POST /api/v1/brand/review/scripts/:id/approve # 通过脚本
|
||
POST /api/v1/brand/review/scripts/:id/reject # 驳回脚本
|
||
|
||
GET /api/v1/brand/review/videos # 待终审视频列表
|
||
GET /api/v1/brand/review/videos/:id # 视频详情
|
||
POST /api/v1/brand/review/videos/:id/approve # 通过视频
|
||
POST /api/v1/brand/review/videos/:id/reject # 驳回视频
|
||
```
|
||
|
||
---
|
||
|
||
#### BE-B03: 规则管理 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
# 黑名单
|
||
GET /api/v1/rules/blacklist # 列表
|
||
POST /api/v1/rules/blacklist # 添加
|
||
DELETE /api/v1/rules/blacklist/:id # 删除
|
||
POST /api/v1/rules/blacklist/import # 批量导入
|
||
GET /api/v1/rules/blacklist/export # 导出
|
||
|
||
# 白名单
|
||
GET /api/v1/rules/whitelist # 列表
|
||
POST /api/v1/rules/whitelist # 添加
|
||
DELETE /api/v1/rules/whitelist/:id # 删除
|
||
POST /api/v1/rules/whitelist/import # 批量导入
|
||
GET /api/v1/rules/whitelist/export # 导出
|
||
```
|
||
|
||
---
|
||
|
||
## 4. Phase 3: 代理商端 (Week 4-5)
|
||
|
||
### 4.1 工作台与项目
|
||
|
||
#### FE-A01: 工作台页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | RX8V9 |
|
||
| **路由** | `/agency` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 我的项目卡片列表
|
||
- [ ] 紧急待办列表(品牌新任务/脚本审核/视频审核/申诉仲裁)
|
||
- [ ] 统计卡片
|
||
|
||
---
|
||
|
||
#### FE-A02: 项目详情页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | C7wfV |
|
||
| **路由** | `/agency/projects/[id]` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
### 4.2 审核台模块
|
||
|
||
#### FE-A03: 审核台列表页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | zjiCT |
|
||
| **路由** | `/agency/review` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
#### FE-A04: 脚本审核决策台
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | f8HX9 (简单), Wct5R (预览) |
|
||
| **路由** | `/agency/review/script/[id]` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
| **状态** | ⚠️ 部分实现 |
|
||
|
||
**现有代码评估:**
|
||
- ✅ ReviewSteps 组件已实现
|
||
- ⚠️ 页面路由已存在但需要更新
|
||
|
||
**需要实现:**
|
||
- [ ] 脚本内容展示区(开场白、产品介绍、使用演示、结尾引导)
|
||
- [ ] AI 分析结果区(违规用词、合规检查)
|
||
- [ ] 决策按钮(通过/驳回/强制通过)
|
||
|
||
---
|
||
|
||
#### FE-A05: 视频审核决策台
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 2u8Bq |
|
||
| **路由** | `/agency/review/video/[id]` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
---
|
||
|
||
### 4.3 Brief 配置模块
|
||
|
||
#### FE-A06: Brief 配置列表页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | Nicby |
|
||
| **路由** | `/agency/briefs` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
#### FE-A07: Brief 配置详情页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | jRsW5 (待配置), b06fU (已配置) |
|
||
| **路由** | `/agency/briefs/[id]` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
---
|
||
|
||
### 4.4 达人管理模块
|
||
|
||
#### FE-A08: 达人管理页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 5cFMX, ADN10 |
|
||
| **路由** | `/agency/creators` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
### 4.5 其他模块
|
||
|
||
#### FE-A09: 数据报表页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | An8gw |
|
||
| **路由** | `/agency/reports` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
#### FE-A10: 消息中心页面
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | PfMR0 |
|
||
| **路由** | `/agency/messages` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 1d |
|
||
|
||
---
|
||
|
||
### 4.6 代理商后端 API
|
||
|
||
#### BE-A01: 代理商审核 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
GET /api/v1/agency/review/scripts # 待审脚本列表
|
||
GET /api/v1/agency/review/scripts/:id # 脚本详情
|
||
POST /api/v1/agency/review/scripts/:id/approve # 通过
|
||
POST /api/v1/agency/review/scripts/:id/reject # 驳回
|
||
|
||
GET /api/v1/agency/review/videos # 待审视频列表
|
||
GET /api/v1/agency/review/videos/:id # 视频详情
|
||
POST /api/v1/agency/review/videos/:id/approve # 通过
|
||
POST /api/v1/agency/review/videos/:id/reject # 驳回
|
||
POST /api/v1/agency/review/videos/:id/force-pass # 强制通过
|
||
```
|
||
|
||
---
|
||
|
||
#### BE-A02: Brief 配置 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
GET /api/v1/agency/briefs # Brief 列表
|
||
GET /api/v1/agency/briefs/:id # Brief 详情
|
||
PUT /api/v1/agency/briefs/:id # 更新 Brief 配置
|
||
POST /api/v1/agency/briefs/:id/parse # AI 解析 Brief
|
||
```
|
||
|
||
---
|
||
|
||
#### BE-A03: 达人管理 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
GET /api/v1/agency/creators # 达人列表
|
||
POST /api/v1/agency/creators/invite # 邀请达人
|
||
GET /api/v1/creators/search?id=xxx # 搜索达人
|
||
POST /api/v1/agency/tasks/assign # 分配任务给达人
|
||
```
|
||
|
||
---
|
||
|
||
## 5. Phase 4: 达人端 (Week 6-7)
|
||
|
||
### 5.1 任务与导航
|
||
|
||
#### FE-C01: 任务列表页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | HD3eK |
|
||
| **路由** | `/creator` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
**页面元素:**
|
||
- [ ] 侧边栏导航
|
||
- [ ] 任务卡片列表(项目名、品牌、状态、截止日期)
|
||
- [ ] 状态筛选(全部/待提交/审核中/已完成)
|
||
|
||
---
|
||
|
||
#### FE-C02: 个人中心页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | BgzAd |
|
||
| **路由** | `/creator/profile` |
|
||
| **优先级** | P2 |
|
||
| **预估工时** | 1d |
|
||
|
||
---
|
||
|
||
#### FE-C03: 消息中心页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 8XKLP |
|
||
| **路由** | `/creator/messages` |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 1d |
|
||
|
||
---
|
||
|
||
### 5.2 脚本阶段页面
|
||
|
||
#### FE-C04: 脚本上传页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | lVL76 |
|
||
| **路由** | `/creator/task/[id]/script/upload` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
#### FE-C05: 脚本审核状态页(6个状态)
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | kcRxj, cjcZZ, KLHcb, flniQ, s3sWQ, KspeJ, NeF4L |
|
||
| **路由** | `/creator/task/[id]/script/status` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**状态页面:**
|
||
- [ ] AI审核中(透明思考UI)
|
||
- [ ] AI审核结果
|
||
- [ ] 等待代理商审核
|
||
- [ ] 代理商驳回(显示驳回原因)
|
||
- [ ] 等待品牌方终审
|
||
- [ ] 品牌方通过 / 品牌方驳回
|
||
|
||
---
|
||
|
||
### 5.3 视频阶段页面
|
||
|
||
#### FE-C06: 视频上传页
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | g1RSX |
|
||
| **路由** | `/creator/task/[id]/video/upload` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
|
||
---
|
||
|
||
#### FE-C07: 视频审核状态页(8个状态)
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 前端 |
|
||
| **设计稿** | 0Qg21, 6EX4Z, YLFhx, EkFap, A5fxU, RAJsF, duYR2, zU3Op |
|
||
| **路由** | `/creator/task/[id]/video/status` |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
---
|
||
|
||
### 5.4 达人端后端 API
|
||
|
||
#### BE-C01: 达人任务 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
GET /api/v1/creator/tasks # 我的任务列表
|
||
GET /api/v1/creator/tasks/:id # 任务详情
|
||
POST /api/v1/creator/tasks/:id/script # 提交脚本
|
||
POST /api/v1/creator/tasks/:id/video # 提交视频
|
||
GET /api/v1/creator/tasks/:id/status # 任务状态
|
||
```
|
||
|
||
---
|
||
|
||
#### BE-C02: 消息通知 API
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 2d |
|
||
|
||
**接口清单:**
|
||
|
||
```
|
||
GET /api/v1/messages # 消息列表
|
||
PUT /api/v1/messages/:id/read # 标记已读
|
||
PUT /api/v1/messages/read-all # 全部已读
|
||
```
|
||
|
||
---
|
||
|
||
## 6. Phase 5: AI 审核流水线 (Week 8)
|
||
|
||
### AI-001: 脚本 AI 审核服务
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
| **状态** | ⚠️ 部分实现 |
|
||
|
||
**现有代码评估:**
|
||
- ✅ 脚本审核 API 已存在
|
||
- ✅ AI 客户端已实现
|
||
- ⚠️ 需要与新的任务流程对接
|
||
|
||
**需要实现:**
|
||
- [ ] 脚本内容解析
|
||
- [ ] 违禁词检测
|
||
- [ ] 卖点覆盖检测
|
||
- [ ] 审核结果存储
|
||
|
||
---
|
||
|
||
### AI-002: 视频 AI 审核服务
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 5d |
|
||
| **状态** | ⚠️ 部分实现 |
|
||
|
||
**现有代码评估:**
|
||
- ✅ 视频审核 API 已存在
|
||
- ✅ ASR 服务已实现
|
||
- ✅ Vision 服务已实现
|
||
- ✅ 关键帧提取已实现
|
||
|
||
**需要完善:**
|
||
- [ ] 视频下载和预处理
|
||
- [ ] ASR 转文字 + 时间戳
|
||
- [ ] 画面检测(竞品Logo、风险场景)
|
||
- [ ] 审核报告生成
|
||
- [ ] 进度实时推送(WebSocket)
|
||
|
||
---
|
||
|
||
### AI-003: AI 配置动态加载
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 后端 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 2d |
|
||
| **状态** | ✅ 已实现 |
|
||
|
||
**现有代码评估:**
|
||
- ✅ AI 配置模型
|
||
- ✅ AI 配置 API
|
||
- ✅ 加密存储 API Key
|
||
|
||
---
|
||
|
||
## 7. Phase 6: 联调与测试 (Week 9-10)
|
||
|
||
### TEST-001: 前端组件测试
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 测试 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**测试范围:**
|
||
- [ ] 所有 UI 组件单元测试
|
||
- [ ] 布局组件测试
|
||
- [ ] 导航组件测试
|
||
- [ ] 覆盖率 ≥ 70%
|
||
|
||
---
|
||
|
||
### TEST-002: 后端 API 测试
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 测试 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 3d |
|
||
|
||
**测试范围:**
|
||
- [ ] 所有 API 端点测试
|
||
- [ ] 权限校验测试
|
||
- [ ] 业务逻辑测试
|
||
- [ ] 覆盖率 ≥ 80%
|
||
|
||
---
|
||
|
||
### TEST-003: E2E 测试
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 测试 |
|
||
| **优先级** | P1 |
|
||
| **预估工时** | 3d |
|
||
|
||
**测试场景:**
|
||
- [ ] 品牌方创建项目 → 分配代理商 → 终审流程
|
||
- [ ] 代理商配置 Brief → 分配达人 → 审核流程
|
||
- [ ] 达人提交脚本 → AI 审核 → 人工审核 → 提交视频 → 通过
|
||
|
||
---
|
||
|
||
### TEST-004: 前后端联调
|
||
|
||
| 属性 | 内容 |
|
||
| --- | --- |
|
||
| **类型** | 联调 |
|
||
| **优先级** | P0 |
|
||
| **预估工时** | 5d |
|
||
|
||
**联调内容:**
|
||
- [ ] 登录认证流程
|
||
- [ ] 品牌方全流程
|
||
- [ ] 代理商全流程
|
||
- [ ] 达人全流程
|
||
- [ ] AI 审核流程
|
||
- [ ] 消息通知推送
|
||
|
||
---
|
||
|
||
## 8. 任务统计
|
||
|
||
### 8.1 按阶段统计
|
||
|
||
| 阶段 | 前端任务 | 后端任务 | 测试任务 | 总计 |
|
||
| --- | --- | --- | --- | --- |
|
||
| Phase 1 基础设施 | 3 | 3 | - | 6 |
|
||
| Phase 2 品牌方端 | 10 | 3 | - | 13 |
|
||
| Phase 3 代理商端 | 10 | 3 | - | 13 |
|
||
| Phase 4 达人端 | 7 | 2 | - | 9 |
|
||
| Phase 5 AI 流水线 | - | 3 | - | 3 |
|
||
| Phase 6 联调测试 | - | - | 4 | 4 |
|
||
| **总计** | **30** | **14** | **4** | **48** |
|
||
|
||
### 8.2 按优先级统计
|
||
|
||
| 优先级 | 任务数 | 说明 |
|
||
| --- | --- | --- |
|
||
| P0 | 35 | 核心功能,MVP 必须 |
|
||
| P1 | 10 | 首版后快速迭代 |
|
||
| P2 | 3 | 中长期规划 |
|
||
|
||
### 8.3 预估总工时
|
||
|
||
| 类型 | 工时 |
|
||
| --- | --- |
|
||
| 前端开发 | ~50 人天 |
|
||
| 后端开发 | ~30 人天 |
|
||
| 测试 | ~15 人天 |
|
||
| **总计** | **~95 人天** |
|
||
|
||
---
|
||
|
||
## 9. 现有代码处理建议
|
||
|
||
### 9.1 可复用的代码
|
||
|
||
| 模块 | 代码位置 | 状态 | 建议 |
|
||
| --- | --- | --- | --- |
|
||
| 前端 UI 组件 | `/frontend/components/ui/` | ✅ 可用 | 直接使用 |
|
||
| 前端布局组件 | `/frontend/components/layout/` | ⚠️ 需更新 | 更新导航配置 |
|
||
| 后端 API 框架 | `/backend/app/` | ✅ 可用 | 直接使用 |
|
||
| 后端数据模型 | `/backend/app/models/` | ⚠️ 需扩展 | 新增用户/项目模型 |
|
||
| AI 服务 | `/backend/app/services/ai_*.py` | ✅ 可用 | 直接使用 |
|
||
| 测试配置 | `vitest.config.ts`, `conftest.py` | ✅ 可用 | 直接使用 |
|
||
|
||
### 9.2 需要重写的代码
|
||
|
||
| 模块 | 原因 | 建议 |
|
||
| --- | --- | --- |
|
||
| 前端路由结构 | 与新设计不完全匹配 | 按设计稿重新组织 |
|
||
| 任务状态管理 | 需要支持两阶段审核 | 重新设计状态机 |
|
||
| 权限系统 | 缺少完整的角色权限 | 重新实现 |
|
||
|
||
---
|
||
|
||
## 10. 下一步行动
|
||
|
||
### 立即开始 (本周)
|
||
|
||
1. **FE-003**: 更新 Sidebar 组件导航配置
|
||
2. **BE-002**: 完善数据库模型(User/Project/Brief)
|
||
3. **BE-003**: 实现认证系统
|
||
|
||
### 第二周
|
||
|
||
1. **FE-B01~FE-B06**: 品牌方端核心页面
|
||
2. **BE-B01~BE-B03**: 品牌方端 API
|
||
|
||
### 第三周
|
||
|
||
1. **FE-A01~FE-A05**: 代理商端核心页面
|
||
2. **BE-A01~BE-A02**: 代理商端 API
|
||
|
||
---
|
||
|
||
**文档维护者**: Claude
|
||
**最后更新**: 2026-02-06
|