From b2c2f9db4b334427c34b2111a4b6609b7af0339b Mon Sep 17 00:00:00 2001 From: "Somhairle H. Marisol" Date: Fri, 18 Sep 2026 18:36:34 +0800 Subject: [实现方案] 结果页默认折叠 Collapsible「技术口径」渲染 result.assumptions 键值对;warnings Alert 仅显示真实警告(无 assumptions 字段不渲染) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ui/collapsible/collapsible-content.svelte | 7 +++++++ .../ui/collapsible/collapsible-trigger.svelte | 7 +++++++ .../lib/components/ui/collapsible/collapsible.svelte | 11 +++++++++++ frontend/src/lib/components/ui/collapsible/index.ts | 13 +++++++++++++ frontend/src/lib/types.ts | 1 + frontend/src/pages/ProjectBacktestTab.svelte | 18 ++++++++++++++++++ frontend/src/pages/ProjectResultsTab.svelte | 19 +++++++++++++++++++ 7 files changed, 76 insertions(+) create mode 100644 frontend/src/lib/components/ui/collapsible/collapsible-content.svelte create mode 100644 frontend/src/lib/components/ui/collapsible/collapsible-trigger.svelte create mode 100644 frontend/src/lib/components/ui/collapsible/collapsible.svelte create mode 100644 frontend/src/lib/components/ui/collapsible/index.ts (limited to 'frontend/src') diff --git a/frontend/src/lib/components/ui/collapsible/collapsible-content.svelte b/frontend/src/lib/components/ui/collapsible/collapsible-content.svelte new file mode 100644 index 0000000..bdabb55 --- /dev/null +++ b/frontend/src/lib/components/ui/collapsible/collapsible-content.svelte @@ -0,0 +1,7 @@ + + + diff --git a/frontend/src/lib/components/ui/collapsible/collapsible-trigger.svelte b/frontend/src/lib/components/ui/collapsible/collapsible-trigger.svelte new file mode 100644 index 0000000..ece7ad6 --- /dev/null +++ b/frontend/src/lib/components/ui/collapsible/collapsible-trigger.svelte @@ -0,0 +1,7 @@ + + + diff --git a/frontend/src/lib/components/ui/collapsible/collapsible.svelte b/frontend/src/lib/components/ui/collapsible/collapsible.svelte new file mode 100644 index 0000000..39cdd4e --- /dev/null +++ b/frontend/src/lib/components/ui/collapsible/collapsible.svelte @@ -0,0 +1,11 @@ + + + diff --git a/frontend/src/lib/components/ui/collapsible/index.ts b/frontend/src/lib/components/ui/collapsible/index.ts new file mode 100644 index 0000000..c0db268 --- /dev/null +++ b/frontend/src/lib/components/ui/collapsible/index.ts @@ -0,0 +1,13 @@ +import Content from "./collapsible-content.svelte"; +import Trigger from "./collapsible-trigger.svelte"; +import Root from "./collapsible.svelte"; + +export { + Root, + Content, + Trigger, + // + Root as Collapsible, + Content as CollapsibleContent, + Trigger as CollapsibleTrigger, +}; diff --git a/frontend/src/lib/types.ts b/frontend/src/lib/types.ts index db065e4..5444f2a 100644 --- a/frontend/src/lib/types.ts +++ b/frontend/src/lib/types.ts @@ -171,6 +171,7 @@ export interface BacktestResult { logs: string[]; engine: { name: string; version: string }; warnings: string[]; + assumptions?: Record; elapsed_ms?: number | null; peak_rss_kb?: number | null; data_manifest_hash?: string; diff --git a/frontend/src/pages/ProjectBacktestTab.svelte b/frontend/src/pages/ProjectBacktestTab.svelte index 7d5b172..dcde8d2 100644 --- a/frontend/src/pages/ProjectBacktestTab.svelte +++ b/frontend/src/pages/ProjectBacktestTab.svelte @@ -17,6 +17,7 @@ import type { Run, Dataset } from '../lib/types'; import { Alert } from '$lib/components/ui/alert'; import { Badge } from '$lib/components/ui/badge'; import * as Card from '$lib/components/ui/card'; + import * as Collapsible from '$lib/components/ui/collapsible'; import * as Textarea from '$lib/components/ui/textarea'; import * as Table from '$lib/components/ui/table'; import * as Select from '$lib/components/ui/select'; @@ -362,6 +363,23 @@ import * as Textarea from '$lib/components/ui/textarea'; {/if} + {#if latest.result?.assumptions && Object.keys(latest.result.assumptions).length} + + 技术口径 + +
+ {#each Object.entries(latest.result.assumptions) as [k, v] (k)} +
+
{k}
+
{v}
+
+ {/each} +
+
+
+ {/if} {#if latest.status === 'succeeded' && latest.result} {/if} diff --git a/frontend/src/pages/ProjectResultsTab.svelte b/frontend/src/pages/ProjectResultsTab.svelte index 860fab2..2afb7c1 100644 --- a/frontend/src/pages/ProjectResultsTab.svelte +++ b/frontend/src/pages/ProjectResultsTab.svelte @@ -18,6 +18,7 @@ import { Alert } from '$lib/components/ui/alert'; import { Badge } from '$lib/components/ui/badge'; import * as Card from '$lib/components/ui/card'; + import * as Collapsible from '$lib/components/ui/collapsible'; import * as Table from '$lib/components/ui/table'; import * as Select from '$lib/components/ui/select'; import * as Tabs from '$lib/components/ui/tabs'; @@ -197,6 +198,24 @@ import type { Run, BacktestResult } from '../lib/types'; {/if} + {#if result.assumptions && Object.keys(result.assumptions).length} + + 技术口径 + +
+ {#each Object.entries(result.assumptions) as [k, v] (k)} +
+
{k}
+
{v}
+
+ {/each} +
+
+
+ {/if} + {#if result.metrics} {@const mrow = result.metrics} -- cgit v1.2.3