对齐 outlook/分享 type=star/报告页运势面板与测试;流程上关闭 Ops-B/C 两张 ECR。真支付仍后置。 Co-authored-by: Cursor <cursoragent@cursor.com>
2.7 KiB
2.7 KiB
Feature Spec: 运营内容配置(Ops-C)
Status:
Active· Map:§7 运营后台· Phase:Ops-C
ESS:docs/ECR/ECR-008-ops-content.md(Closed · L2)· BD-2026-008 Approved
关联:ops-admin.md · ops-analytics.md · home.md · explore-test.md
ESS 门禁
- Change Level = L2 → ECR Approved + Feature Spec Active + BACKEND_DESIGN Approved — 已满足(2026-08-07)
- 实现顺序以
docs/ENGINEERING_SPEC/ECR-008-ops-content.md为准 - 完成后:TEST_REPORT · CODE_REVIEW ·
ess-validate --phase review
1. 目标
让运营在后台配置:
- 首页宫格工具:增删改排序、显隐、角标(替代写死
homeCatalog.ts) - 测评上下架:
scales.status=published/draft,C 端列表只见已发布
2. In / Out
| In | Out |
|---|---|
| 首页宫格 CRUD(最多约 24 项;默认 12) | 首页 Feeds 信息流 CMS(本 ECR 后置,仍用静态 homeFeeds) |
| 工具 path / icon 白名单校验 | 任意外链、自定义 SVG 上传 |
| scales 列表 + 上架/下架 + 审计 | 新建量表题目编辑器 · 探索目录全量 CMS |
| Admin「内容」页 | RBAC / 封禁 / 推送(Ops-E) |
3. 数据模型
home_tools
id, row_index (1|2), sort_order, path, icon, label,
badge?, badge_tone? (hot|new|null), enabled, updated_at
scales(已有)
status: published | draft
种子:与当前 homeGridRow1/2 一致。
4. API
| Method | Path | 意图 |
|---|---|---|
| GET | /api/v1/home/tools |
C 端宫格(仅 enabled;DeviceAuth) |
| GET | /api/v1/admin/home/tools |
管理端全量 |
| PUT | /api/v1/admin/home/tools |
整表替换保存(排序+字段)+ 审计 |
| GET | /api/v1/admin/scales |
全部量表(含 draft) |
| PATCH | /api/v1/admin/scales/:id |
{ status } + 审计 |
C 端既有 GET /scales 继续只返回 published。
5. 管理端「内容」页
侧栏:概览 · 数据 · 内容 · 用户 · 订单 · 审计
- Tab「首页宫格」:两行列表、拖拽/上下移、编辑 label/path/icon/badge、启用开关、保存
- Tab「测评」:列表 · 上架/下架
6. C 端行为
useHomePage优先拉GET /home/tools;失败回退静态homeCatalog- 下架 scale:列表不可见;直链 slug 返回 404/不可用(与现 Get 行为对齐)
7. 验收
Given Admin 将某宫格 disabled 并保存
When H5 刷新首页
Then 该项不出现
Given Admin 将 mbti-lite 置 draft
When GET /scales
Then 列表不含该 slug