feat(downloads): fold download plans into download panel (DL-3)
- Waiting plans (approval / disk space / automation off / queued) are
active-segment rows on /download-tasks/board, merged by created_at,
counted, with approve / cancel actions; ?plan= deep links and legacy
/downloads/plans routes redirect to the panel
- Download detail shows "why this download" (source, purpose, replaced
version, reasons); raw evaluation in tech info
- Failed / cancelled / expired plans appear in the entity download
history; rejected / revoked / expired approvals close draft plans
- New GET /acquisition-plans/{id}/why, POST /acquisition-plans/{id}/cancel
- User-facing copy no longer says 下载计划; glossary updated
Co-Authored-By: Claude Opus 5.5 <[email protected]>
This commit is contained in:
1 parent
c0522f2531
commit
a9147e647d
50 files changed
+1535
-348
No files matched your search
@@ -106,10 +106,10 @@ export function businessLink(b: EngineRun["business"], input?: unknown): { to: s
|
||||
case "subscription":
|
||||
return { to: consolePath("subscriptions"), label: "订阅" };
|
||||
case "download": {
|
||||
// 计划还没提交时 refId 是下载计划
|
||||
// 还没提交到下载器时 refId 是计划 id(下载面板按 ?plan= 打开对应行)
|
||||
const i = (input ?? {}) as { downloadTaskId?: unknown; acquisitionPlanId?: unknown };
|
||||
if (!i.downloadTaskId && i.acquisitionPlanId === b.refId)
|
||||
return { to: consolePath("downloads", "plans"), label: "下载计划" };
|
||||
return { to: `${consolePath("downloads")}?plan=${id}`, label: "下载" };
|
||||
return { to: `/console/downloads/${id}`, label: "下载任务" };
|
||||
}
|
||||
case "organization":
|
||||
|
||||
Reference in new issue
Block a user