From 95d621874f395abd82a2f60c87fe1e2c00da40dd Mon Sep 17 00:00:00 2001 From: claude_dev Date: Thu, 13 Aug 2026 20:40:03 +0800 Subject: [PATCH] =?UTF-8?q?feat(strategy):=20=E6=96=87=E4=BB=B6=E6=A0=91?= =?UTF-8?q?=E5=88=86=E7=BB=84=E6=94=AF=E6=8C=81=E7=82=B9=E5=87=BB=E6=8A=98?= =?UTF-8?q?=E5=8F=A0/=E5=B1=95=E5=BC=80(=E7=AE=AD=E5=A4=B4=E6=97=8B?= =?UTF-8?q?=E8=BD=AC=E5=8A=A8=E6=95=88)=20[nas]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/views/strategy/Code.vue | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) diff --git a/frontend/src/views/strategy/Code.vue b/frontend/src/views/strategy/Code.vue index f3a8ee8..dc60618 100644 --- a/frontend/src/views/strategy/Code.vue +++ b/frontend/src/views/strategy/Code.vue @@ -26,11 +26,15 @@ const syntaxOk = ref(null) const active = computed(() => files.value.find((f) => f.name === activeName.value)) -// 文件树按类型分组:组合策略在前(常用),个股策略在后 +// 文件树按类型分组:组合策略在前(常用),个股策略在后;组头可点击折叠/展开 const fileGroups = computed(() => [ { label: '组合策略', items: files.value.filter((f) => f.type === 'portfolio') }, { label: '个股策略', items: files.value.filter((f) => f.type !== 'portfolio') }, ].filter((g) => g.items.length)) +const collapsed = ref>({}) +function toggleGroup(label: string): void { + collapsed.value = { ...collapsed.value, [label]: !collapsed.value[label] } +} onMounted(async () => { try { @@ -122,12 +126,14 @@ function runBacktest(): void { 策略文件