From bc313d92aa5e22112e18ede34045d758d06212ac Mon Sep 17 00:00:00 2001 From: claw_bot Date: Sat, 14 Mar 2026 10:28:11 +0000 Subject: [PATCH] =?UTF-8?q?fix:=20=E7=AD=96=E7=95=A5=E7=BC=96=E8=BE=91?= =?UTF-8?q?=E9=A1=B5=E9=9D=A2=E8=B5=84=E4=BA=A7=E9=85=8D=E7=BD=AE=E5=A1=AB?= =?UTF-8?q?=E5=85=85=E9=97=AE=E9=A2=98=20-=20=E5=A2=9E=E5=BC=BA=E8=B0=83?= =?UTF-8?q?=E8=AF=95=E6=97=A5=E5=BF=97?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 添加 JSON 解析容错处理 - 增加详细调试日志输出 - 检查 config 是否为字符串类型再解析 --- pages/strategies/edit/edit.vue | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) diff --git a/pages/strategies/edit/edit.vue b/pages/strategies/edit/edit.vue index 61d7819..e0a7cc2 100755 --- a/pages/strategies/edit/edit.vue +++ b/pages/strategies/edit/edit.vue @@ -513,11 +513,17 @@ const loadStrategyDetail = async (id) => { let params = {}; if (data.parameters) { params = data.parameters; + console.log('📊 从 parameters 获取参数:', params); } else if (data.config) { - // 兼容旧格式 - params = JSON.parse(data.config); + try { + params = typeof data.config === 'string' ? JSON.parse(data.config) : data.config; + console.log('📊 从 config 解析参数:', params); + } catch (e) { + console.error('📊 config 解析失败:', e, '原始值:', data.config); + params = {}; + } } - console.log('📊 策略类型:', data.type, '参数:', params); + console.log('📊 策略类型:', data.type, '参数:', JSON.stringify(params)); switch (data.type) { case 'ma_trend': @@ -528,7 +534,7 @@ const loadStrategyDetail = async (id) => { case 'risk_parity': formData.value.lookbackPeriod = params.lookbackPeriod?.toString() || ''; formData.value.rebalanceThreshold = params.rebalanceThreshold?.toString() || ''; - console.log('📊 再平衡策略 assets:', params.assets); + console.log('📊 再平衡策略 assets:', JSON.stringify(params.assets)); if (params.assets && Array.isArray(params.assets) && params.assets.length > 0) { // 使用 splice 保持响应式引用 formData.value.assets.splice(0, formData.value.assets.length);