WIP-312 接真深化核验证据 — a端 Cms / Dashboard + b端 SiteTexts

一、现状核查(逐文件,基于 main 实际代码,非任务描述)

1. a端 Cms.tsx —— 已全套 CRUD 接真(非「仅 1 个 API」)

2. a端 Dashboard.tsx —— 已接真(原是埋点事件看板,非静态)

3. b端 SiteTexts.tsx —— 已完整接真(非静态)

二、本单真实增量(纯前端)

Cms.tsx / Cms.css

  1. 类型筛选深化:在状态筛选旁新增 post_type 下拉(不限/攻略/公告/帮助),走后端已支持的 post_type 查询参数。
  2. 正文丢失数据安全加固(修复真实隐患):后端 GET /cms/posts 列表 SELECT 不返回 content 字段,而编辑旧文章时原代码用 post.content ?? form.content 回显——列表项 content 恒为 undefined,正文框为空;若运营者未察觉直接保存,PUT(content 必填)会用空正文覆盖线上正文。
  3. 防护:编辑文章且列表项未带回 content 时,正文域显示醒目警示条「列表接口未返回正文,直接保存将清空线上正文」,并禁用保存按钮(新建文章不受影响)。
  4. 根治需后端列表补返回 content(见 BLK-1)。

Dashboard.tsx / Dashboard.css

  1. 新增「业务概览(近 200 单)」分区,复用已就绪的 GET /api/admin/orders?limit=200,对返回订单做真实前端聚合:
  2. 快照订单数、真实单/测试单笔数、GMV/真实 GMV(total_fen 求和 ÷100,仅统计 total_fen>0);
  3. 订单状态分布(中文标签,未支付/已支付待确认/已确认/已完成/退款中/已退款/已取消)。
  4. 诚实口径:
  5. 卡片与区头明确标注「近 200 单快照,非全量」,不冒充全量 GMV;
  6. 不显示核销数/商户数:后端无对应端点,显示「待后端聚合端点」,绝不填 0 或编造(BLK-2);
  7. 订单拉取失败显示独立错误条,不影响埋点看板渲染;测试单单独区分避免污染真实 GMV。

三、后端阻塞项(登记,coze2 不改 backend/)

四、验证