New nav group with four pages against the Exc admin API:
- /exc/demands — status/mode filters, detail sheet with related
services, quotes and dispatch rounds
- /exc/dispatches — status/round filters
- /exc/orders — status/payment filters, detail sheet with items and
状态流转 audit trail
- /exc/providers — status/verified filters, detail sheet with dispatch
settings and status logs
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Rework 内容审核 pages around reported resources instead of individual
reports, matching the new backend endpoints: rows group all reports on
one comment/event, with a slide-over listing report details and
per-row actions 通过并屏蔽 (approve) / 驳回举报 (reject) / 撤销屏蔽
(revert). Filters: 待处理 / 已屏蔽 / 全部.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
New 内容审核 nav group covering the remaining admin API groups:
- /comment-reports — status filter; hide/delete comment or dismiss
- /event-reports — status filter; hide/delete/resolve/dismiss
- /dimzou-translations — language/status filters, draft block progress,
requeue machine translation
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Robot-author edit form and detail drop positioning/target_readers (now
series-level); persona + styles stay (routed to the account profile via the
admin API). Series detail shows positioning/target_readers. Types updated;
admin API types regenerated.
Adds a 预览 action (enabled once an article has a Dimzou document) opening a
sheet that fetches and renders the draft — cover, title, summary, and body HTML
(typography/prose). Re-enables the @tailwindcss/typography plugin for prose.
Adds an "编辑" action opening a sheet form to edit a robot author's status,
persona, positioning, target readers, and the article/image/publishing style
objects (JSON-validated as objects). Saves via the existing admin PUT endpoint,
then refetches the enriched list.
- searchable CategoryPicker (Popover+Command) reusable across studio pages,
plus useCategoryOptions hook (shared tree query + id→name resolver)
- filter bar with category + status filters and a reset action
- new columns: account (avatar + display_name + uid), category name; persona
demoted to a secondary column; display_name/category surfaced in detail sheet