feat(web): 显示 Job 工程来源关系
This commit is contained in:
parent
2be9528967
commit
172e0dbdaf
|
|
@ -46,6 +46,9 @@ class StaticVendorTests(unittest.TestCase):
|
|||
self.assertIn("深入分析", source)
|
||||
self.assertIn("查看结果", source)
|
||||
self.assertIn("Job ID", source)
|
||||
self.assertIn("工程关系:${escapeHtml(workspaceRelation)}", source)
|
||||
self.assertIn("续接自 Job ${sourceJobId.slice(0, 8)}", source)
|
||||
self.assertIn("<dt>来源 Job</dt>", source)
|
||||
self.assertIn("refreshCurrentTaskAfterSoftwareJob(job.task_id)", source)
|
||||
self.assertIn("job.execution_runtime", source)
|
||||
self.assertIn("执行版本未记录", source)
|
||||
|
|
|
|||
|
|
@ -261,6 +261,10 @@ function jobCard(job) {
|
|||
const formats = (summary.formats || []).filter(Boolean).join("、");
|
||||
const elapsed = elapsedText(job);
|
||||
const shortId = String(job.job_id || "").slice(0, 8);
|
||||
const sourceJobId = String(job.source_job_id || "");
|
||||
const workspaceRelation = sourceJobId
|
||||
? `续接自 Job ${sourceJobId.slice(0, 8)}`
|
||||
: (job.workspace_id ? "新建工程" : "独立任务");
|
||||
return `<article class="sj-card ${escapeHtml(job.status)}" data-job-id="${escapeHtml(job.job_id)}">
|
||||
<div class="sj-title"><div class="sj-title-main"><strong>${escapeHtml(summary.display_name || job.capability)}</strong></div>
|
||||
<span class="sj-status">${statusIcon(job.status)}${escapeHtml(statusLabel[job.status] || job.status)}</span></div>
|
||||
|
|
@ -269,12 +273,14 @@ function jobCard(job) {
|
|||
${active ? `<div class="sj-progress"><i style="width:${progress}%"></i></div>` : ""}
|
||||
<div class="sj-facts">
|
||||
${inputNames ? `<span>输入:${escapeHtml(inputNames)}</span>` : ""}
|
||||
<span>工程关系:${escapeHtml(workspaceRelation)}</span>
|
||||
${job.status === "succeeded" ? `<span>${job.workspace_id ? `预览:${previews.length} 个 · 工程保存在节点` : `输出:${artifacts.length} 个文件${formats ? ` · ${escapeHtml(formats)}` : ""}`}</span>` : ""}
|
||||
<span>完成方式:${escapeHtml(followupLabel(job))}</span>
|
||||
<span>${active ? `创建于 ${escapeHtml(fmtDate(job.created_at))}` : `${elapsed ? `耗时 ${escapeHtml(elapsed)} · ` : ""}${job.terminal_at ? `完成于 ${escapeHtml(fmtDate(job.terminal_at))}` : `创建于 ${escapeHtml(fmtDate(job.created_at))}`}`}</span>
|
||||
</div>
|
||||
<details class="sj-details"><summary>任务详情</summary><dl>
|
||||
<div><dt>Job ID</dt><dd><code>${escapeHtml(job.job_id)}</code><button type="button" class="sj-copy" data-job-action="copy">${icons.copy}复制</button></dd></div>
|
||||
<div><dt>来源 Job</dt><dd>${sourceJobId ? `<code>${escapeHtml(sourceJobId)}</code>` : "—(新建工程)"}</dd></div>
|
||||
<div><dt>Capability</dt><dd><code>${escapeHtml(job.capability)}</code></dd></div>
|
||||
<div><dt>${job.workspace_id ? "Workspace ID" : "输出目录"}</dt><dd><code>${escapeHtml(job.workspace_id || job.output_dir || "—")}</code></dd></div>
|
||||
<div><dt>执行版本</dt><dd>${escapeHtml(jobRuntimeText(job))}</dd></div>
|
||||
|
|
|
|||
Loading…
Reference in New Issue