From 45ecb4e9dfe225bc982e9af9315590bcb0783df7 Mon Sep 17 00:00:00 2001
From: "Somhairle H. Marisol"
Date: Fri, 18 Sep 2026 08:26:57 +0800
Subject: feat(frontend): 结果/实验/策略/数据页迁移 shadcn 与新 Chart API
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
[变更性质]
四个业务标签页与数据集卡片迁移 shadcn 组件,图表消费切换到
layerchart 长格式 API,功能与数据语义不变。
[新增功能]
结果页权益曲线(策略权益/现金/基准,基准可缺省)与回撤曲线(desc
面积)改由 Chart.svelte data/series 渲染;实验记录页多回测归一对比
曲线改为快速长格式行构造。空数据行允许 undefined 列(基准缺口),
Chart data 类型放宽 [key:string]: string|number|undefined。
[实现方案]
RunsPage:查看入口改 shadcn Button(href 语义保留 hash 路由),
对比图数据由 compareOption(echarts option)化为 compare。
ProjectResultsTab:图表开关、日志折叠用 Button;equityData/
drawdownData $derived 计算峰值回撤。ProjectStrategyTab:快照输入、
冲突/AI/版本操作迁移 Button/Input。ProjectDataTab 与 DatasetCard:
shadcn 组件 + 保留 banner error/warn/info、retry-row 等 legacy class,
"使用相同请求重新获取"重试入口与 onRecreated 逻辑不变,配套
datasetCardRetry/datasetCardWarnings/projectDataTabRecreated 回归
测试。resultsAccounting.test.ts:layerchart 在 jsdom 挂载约 3 秒,
suite 全量下易撞默认 5s 超时,首测提高至 20s。
[影响范围]
npm run check 0 error、58 tests 全绿、npm run build 通过;真浏览器
375/768/1440 图表页零溢出(artifacts/ui-shadcn 截图与探针 JSON)。
---
frontend/src/pages/ProjectStrategyTab.svelte | 35 ++++++++++++++--------------
1 file changed, 18 insertions(+), 17 deletions(-)
(limited to 'frontend/src/pages/ProjectStrategyTab.svelte')
diff --git a/frontend/src/pages/ProjectStrategyTab.svelte b/frontend/src/pages/ProjectStrategyTab.svelte
index 5f2e242..0df9f1a 100644
--- a/frontend/src/pages/ProjectStrategyTab.svelte
+++ b/frontend/src/pages/ProjectStrategyTab.svelte
@@ -3,6 +3,8 @@
import CodeEditor from '../components/CodeEditor.svelte';
import DiffView from '../components/DiffView.svelte';
import Modal from '../components/Modal.svelte';
+ import { Button } from '$lib/components/ui/button';
+ import { Input } from '$lib/components/ui/input';
import { projectsStore } from '../lib/listsStore.svelte';
import {
getProject,
@@ -274,7 +276,7 @@
-
-
@@ -304,8 +306,8 @@
- 保留本机修改(覆盖服务器)
- 采用服务器版本
+ 保留本机修改(覆盖服务器)
+ 采用服务器版本
{/if}
@@ -316,9 +318,9 @@
-
+
{aiBusy ? 'AI 处理中…' : '获取建议'}
-
+
{#if aiErr}
@@ -341,15 +343,14 @@
与当前草稿的差异
-
{aiAcceptBusy ? '接受中…' : '接受为新版本'}
-
-
放弃建议
+
+
放弃建议
{#if aiResult.base_generation !== baseGeneration}
草稿代 {aiResult.base_generation} 与当前 {baseGeneration} 不一致,接受会失败;请重新发起说明
{/if}
@@ -395,11 +396,11 @@
{versionSourceLabel[v.source]} |
- void compareWithDraft(v)}>对比当前
+ void compareWithDraft(v)}>对比当前
{#if i + 1 < versions.length}
- void compareTwoVersions(i)}>与相邻旧版对比
+ void compareTwoVersions(i)}>与相邻旧版对比
{/if}
- void restore(v)}>恢复为新草稿
+ void restore(v)}>恢复为新草稿
|
--
cgit v1.2.3