# 超管端内容管理模块 — 设计方案 > 所属端:超管端 > 状态:待开发 > 创建日期:2026-03-27 > 最后更新:2026-03-27 --- ## 1. 背景 用户端升级为 UGC 绘本创作社区后,超管端需要新增**内容管理**一级菜单,承担内容审核和安全治理职能。 --- ## 2. 菜单结构 ``` 内容管理(新增一级菜单) ├── 作品审核 — P0,审核用户发布的作品 ├── 作品管理 — P0,全平台已发布作品的查看/下架/置顶 ├── 标签管理 — P0,作品标签/分类的维护 ├── 评论审核 — P1,审核用户评论 └── 举报处理 — P1,处理用户举报 ``` --- ## 3. 作品审核(P0) ### 3.1 审核流程 ``` 用户点击"发布" → status 变为 pending_review → 机器预审(敏感词检测 + 图片安全检测)→ 标记预审结果 → 进入人工审核队列 → 审核员操作: 通过 → status 变为 published,通知用户 拒绝 → status 变为 rejected + 拒绝原因,通知用户 ``` ### 3.2 页面设计 ``` ┌─ 标题卡片 ──────────────────────────────────────────────┐ │ 作品审核 │ └─────────────────────────────────────────────────────────┘ ┌─ 统计卡片 ──────────────────────────────────────────────┐ │ [待审核 28] [今日已审 56] [今日通过 50] [今日拒绝 6] │ └─────────────────────────────────────────────────────────┘ ┌─ 筛选栏 ────────────────────────────────────────────────┐ │ 审核状态:[下拉] 提交时间:[日期范围] 作者:[______] │ │ 机器预审:[下拉] [搜索] [重置] │ └─────────────────────────────────────────────────────────┘ ┌─ 审核队列表格 ──────────────────────────────────────────┐ │ 封面 | 作品名称 | 页数 | 作者 | 标签 | 机器预审 | │ │ | 提交时间 | 审核状态 | 操作 │ └─────────────────────────────────────────────────────────┘ ``` ### 3.3 表格列 | 列 | 宽度 | 说明 | |----|------|------| | 封面 | 80 | 缩略图 | | 作品名称 | 180 | 标题,可点击预览 | | 页数 | 60 | 绘本页数 | | 作者 | 120 | 昵称,点击可查看作者信息 | | 标签 | 140 | Tag 列表 | | 机器预审 | 90 | Tag:安全(绿)/ 疑似违规(红)/ 未检测(灰)| | 提交时间 | 150 | YYYY-MM-DD HH:mm | | 审核状态 | 90 | Tag:待审核(橙)/ 已通过(绿)/ 已拒绝(红)| | 操作 | 180 | 快捷通过 / 快捷拒绝 / 查看详情 | ### 3.4 审核详情 Drawer 点击"查看详情"打开右侧 Drawer: ``` 作品信息区 ├── 作品名称 / 标签 / 可见性设置 ├── 作者信息(昵称 / 账号 / 是否子女账号) ├── 提交时间 └── 机器预审结果(安全/疑似违规 + 标记原因) 绘本内容预览区 ├── 封面大图 ├── 内页翻页浏览(每页:插图 + 文字 + 播放配音按钮) └── 页码指示器(1/8) 审核操作区 ├── [通过] 按钮 ├── [拒绝] 按钮 → 展开拒绝原因选择 │ ├── ○ 含不适宜未成年人的内容 │ ├── ○ 含个人隐私信息(姓名/地址/电话) │ ├── ○ 涉嫌抄袭/侵权 │ ├── ○ 内容质量不符合发布标准 │ └── ○ 其他:[自定义填写] └── 审核备注(可选文本框) ``` ### 3.5 快捷操作 - 列表中"快捷通过"按钮:一键通过,无需打开 Drawer - 列表中"快捷拒绝"按钮:弹出拒绝原因选择 Popover,选择后直接拒绝 - 支持键盘快捷键:Drawer 中按 A 通过、按 R 拒绝、按 → 下一个(提升审核效率) ### 3.6 后端 API ``` GET /api/content-review/works — 审核队列列表 参数:page, pageSize, status(pending/approved/rejected), startTime, endTime, keyword, machineResult GET /api/content-review/works/stats — 审核统计(待审核/今日已审/今日通过/今日拒绝) GET /api/content-review/works/:id — 审核详情(含绘本分页内容) POST /api/content-review/works/:id/approve — 通过 POST /api/content-review/works/:id/reject — 拒绝(body: { reason, note? }) GET /api/content-review/logs — 审核操作日志 ``` --- ## 4. 作品管理(P0) 管理全平台已发布的作品,可查看数据、下架违规内容、推荐优质作品。 ### 4.1 页面设计 ``` ┌─ 标题卡片 ──────────────────────────────────────────────┐ │ 作品管理 │ └─────────────────────────────────────────────────────────┘ ┌─ 统计卡片 ──────────────────────────────────────────────┐ │ [总作品数 520] [今日新增 12] [累计浏览 8.5万] [已下架 3] │ └─────────────────────────────────────────────────────────┘ ┌─ 筛选栏 ────────────────────────────────────────────────┐ │ 作品/作者:[______] 标签:[下拉] 发布时间:[日期范围] │ │ 排序:[最新/最热/浏览最多] [搜索] [重置] │ └─────────────────────────────────────────────────────────┘ ┌─ 作品表格 ──────────────────────────────────────────────┐ │ 封面 | 作品名称 | 作者 | 标签 | 浏览 | 点赞 | 收藏 | │ │ | 评论 | 发布时间 | 状态 | 操作 │ └─────────────────────────────────────────────────────────┘ ``` ### 4.2 表格列 | 列 | 宽度 | 说明 | |----|------|------| | 封面 | 80 | 缩略图 | | 作品名称 | 180 | 标题 | | 作者 | 120 | 昵称 | | 标签 | 140 | Tag 列表 | | 浏览 | 70 | viewCount | | 点赞 | 70 | likeCount | | 收藏 | 70 | favoriteCount | | 评论 | 70 | commentCount | | 发布时间 | 150 | | | 状态 | 80 | Tag:正常(绿)/ 已下架(红)| | 操作 | 140 | 查看详情 / 下架 或 恢复 / 置顶推荐 | ### 4.3 操作说明 | 操作 | 说明 | |------|------| | 查看详情 | Drawer 展示绘本内容 + 作者信息 + 互动数据 | | 下架 | 弹窗确认 + 选择下架原因,status 改为 taken_down,通知用户 | | 恢复 | 已下架的作品恢复为 published | | 置顶推荐 | 标记为推荐作品,在广场优先展示(P2 可做推荐配置页面) | ### 4.4 后端 API ``` GET /api/content-management/works — 已发布作品列表 参数:page, pageSize, keyword, tagId, sortBy(latest/hot/views), startTime, endTime, status(published/taken_down) GET /api/content-management/works/stats — 统计(总数/今日新增/累计浏览/已下架) GET /api/content-management/works/:id — 作品详情 POST /api/content-management/works/:id/takedown — 下架(body: { reason }) POST /api/content-management/works/:id/restore — 恢复 POST /api/content-management/works/:id/recommend — 置顶推荐/取消推荐 ``` --- ## 5. 标签管理(P0) 维护作品标签/分类体系,用户发布作品时选择标签。 ### 5.1 页面设计 ``` ┌─ 标题卡片 ──────────────────────────────────────────────┐ │ 标签管理 [新增标签] │ └─────────────────────────────────────────────────────────┘ ┌─ 标签表格 ──────────────────────────────────────────────┐ │ 标签名称 | 分类 | 使用次数 | 排序 | 状态 | 操作 │ └─────────────────────────────────────────────────────────┘ ``` ### 5.2 表格列 | 列 | 宽度 | 说明 | |----|------|------| | 标签名称 | 150 | | | 分类 | 120 | 一级分类(如:主题/风格/情感)| | 使用次数 | 100 | 有多少作品使用了该标签 | | 排序 | 80 | 数字,影响用户端展示顺序 | | 状态 | 80 | Tag:启用 / 禁用 | | 操作 | 150 | 编辑 / 启用或禁用 / 删除 | ### 5.3 新增/编辑弹窗 ``` 标签名称:[______] 所属分类:[下拉选择 / 新建分类] 排序权重:[数字] 状态: [启用/禁用] ``` ### 5.4 后端 API ``` GET /api/tags — 标签列表(超管端,含使用统计) POST /api/tags — 创建标签 PUT /api/tags/:id — 编辑标签 DELETE /api/tags/:id — 删除标签(无作品使用时才可删除) PATCH /api/tags/:id/status — 启用/禁用 GET /api/tags/categories — 标签分类列表 POST /api/tags/categories — 创建分类 ``` --- ## 6. 评论审核(P1) ### 6.1 页面设计 ``` ┌─ 标题卡片 ──────────────────────────────────────────────┐ │ 评论审核 │ └─────────────────────────────────────────────────────────┘ ┌─ 统计卡片 ──────────────────────────────────────────────┐ │ [待审核 15] [今日已审 42] [今日通过 38] [今日拒绝 4] │ └─────────────────────────────────────────────────────────┘ ┌─ 筛选栏 ────────────────────────────────────────────────┐ │ 审核状态:[下拉] 提交时间:[日期范围] 评论者:[______] │ │ [搜索] [重置] │ └─────────────────────────────────────────────────────────┘ ┌─ 审核队列表格 ──────────────────────────────────────────┐ │ 评论内容 | 评论者 | 所属作品 | 机器预审 | │ │ 提交时间 | 审核状态 | 操作 │ └─────────────────────────────────────────────────────────┘ ``` ### 6.2 表格列 | 列 | 宽度 | 说明 | |----|------|------| | 评论内容 | 250 | 评论文本,超长省略 | | 评论者 | 120 | 昵称 | | 所属作品 | 160 | 作品名称,可点击跳转 | | 机器预审 | 90 | Tag:安全/疑似违规 | | 提交时间 | 150 | | | 审核状态 | 90 | Tag | | 操作 | 160 | 通过 / 拒绝 / 查看上下文 | 支持批量操作:勾选多条 → 批量通过 / 批量拒绝 ### 6.3 后端 API ``` GET /api/content-review/comments — 评论审核队列 GET /api/content-review/comments/stats — 统计 POST /api/content-review/comments/:id/approve — 通过 POST /api/content-review/comments/:id/reject — 拒绝 POST /api/content-review/comments/batch — 批量操作(body: { ids, action }) ``` --- ## 7. 举报处理(P1) ### 7.1 页面设计 ``` ┌─ 标题卡片 ──────────────────────────────────────────────┐ │ 举报处理 │ └─────────────────────────────────────────────────────────┘ ┌─ 统计卡片 ──────────────────────────────────────────────┐ │ [待处理 8] [今日已处理 12] [已忽略 3] │ └─────────────────────────────────────────────────────────┘ ┌─ 筛选栏 ────────────────────────────────────────────────┐ │ 举报类型:[下拉] 处理状态:[下拉] 举报时间:[日期范围] │ │ [搜索] [重置] │ └─────────────────────────────────────────────────────────┘ ┌─ 举报队列表格 ──────────────────────────────────────────┐ │ 举报类型 | 举报原因 | 被举报内容摘要 | 举报人 | │ │ 被举报人 | 举报时间 | 处理状态 | 操作 │ └─────────────────────────────────────────────────────────┘ ``` ### 7.2 处理操作 点击"处理"打开 Drawer: ``` 举报信息 ├── 举报类型(作品/评论/用户) ├── 举报原因 ├── 举报人信息 ├── 举报时间 被举报内容 ├── 作品:展示绘本预览 ├── 评论:展示评论内容+上下文 ├── 用户:展示用户主页信息 处理操作 ├── [下架内容] — 将被举报的作品/评论下架 ├── [警告用户] — 向被举报用户发送警告通知 ├── [禁用账号] — 禁用被举报用户的账号 ├── [忽略举报] — 举报不成立,不做处理 └── 处理备注:[文本框] ``` ### 7.3 后端 API ``` GET /api/content-review/reports — 举报队列 GET /api/content-review/reports/stats — 统计 GET /api/content-review/reports/:id — 举报详情 POST /api/content-review/reports/:id/handle — 处理举报 body: { action: 'takedown'|'warn'|'ban'|'ignore', note? } ``` --- ## 8. 实施记录 (开发过程中记录)