diff --git a/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue b/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue index d01b03c7..97aa27f0 100644 --- a/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue +++ b/web/hwlab-cloud-web/src/components/agent/TraceTimeline.vue @@ -116,7 +116,7 @@ function traceRecord(trace: RunnerTrace | null | undefined): Record -

等待后端事件。

+

思考中...

diff --git a/web/hwlab-cloud-web/src/components/workbench/SessionRail.vue b/web/hwlab-cloud-web/src/components/workbench/SessionRail.vue index 1d81f01d..1c67fa8d 100644 --- a/web/hwlab-cloud-web/src/components/workbench/SessionRail.vue +++ b/web/hwlab-cloud-web/src/components/workbench/SessionRail.vue @@ -2,7 +2,6 @@ import { computed, ref } from "vue"; import { useWorkbenchStore } from "@/stores/workbench"; import { useClipboard } from "@/composables/useClipboard"; -import { formatRelativeTime } from "@/utils"; const workbench = useWorkbenchStore(); const { copied, copy } = useClipboard(); @@ -51,6 +50,18 @@ function readWidth(): number { return 300; } } + +function formatSessionUpdatedTime(value: string | null | undefined): string { + if (!value) return "未记录"; + const date = new Date(value); + if (!Number.isFinite(date.getTime())) return value; + const delta = Date.now() - date.getTime(); + if (delta < 60_000) return "刚刚"; + if (delta < 3_600_000) return `${Math.max(1, Math.round(delta / 60_000))} 分`; + if (delta < 86_400_000) return `${Math.max(1, Math.round(delta / 3_600_000))} 时`; + if (delta < 604_800_000) return `${Math.max(1, Math.round(delta / 86_400_000))} 天`; + return date.toLocaleString(undefined, { month: "numeric", day: "numeric", hour: "2-digit", minute: "2-digit" }); +}