fix: 编辑策略页面资产配置自动填充问题
- 使用 splice/push 替代直接赋值,保持 Vue 响应式引用 - 修复 tags 字段类型不一致(数组 -> 字符串) - 使用 String() 安全转换 targetWeight 数字类型 - 添加 Array.isArray 检查增强健壮性
This commit is contained in:
parent
fc05840e40
commit
4bb9efa495
@ -273,7 +273,7 @@ const formData = ref({
|
|||||||
name: '',
|
name: '',
|
||||||
description: '',
|
description: '',
|
||||||
riskLevel: 'medium',
|
riskLevel: 'medium',
|
||||||
tags: [],
|
tags: '',
|
||||||
maType: 'SMA',
|
maType: 'SMA',
|
||||||
shortPeriod: '',
|
shortPeriod: '',
|
||||||
longPeriod: '',
|
longPeriod: '',
|
||||||
@ -529,12 +529,16 @@ const loadStrategyDetail = async (id) => {
|
|||||||
formData.value.lookbackPeriod = params.lookbackPeriod?.toString() || '';
|
formData.value.lookbackPeriod = params.lookbackPeriod?.toString() || '';
|
||||||
formData.value.rebalanceThreshold = params.rebalanceThreshold?.toString() || '';
|
formData.value.rebalanceThreshold = params.rebalanceThreshold?.toString() || '';
|
||||||
console.log('📊 再平衡策略 assets:', params.assets);
|
console.log('📊 再平衡策略 assets:', params.assets);
|
||||||
if (params.assets && params.assets.length > 0) {
|
if (params.assets && Array.isArray(params.assets) && params.assets.length > 0) {
|
||||||
formData.value.assets = params.assets.map(asset => ({
|
// 使用 splice 保持响应式引用
|
||||||
|
formData.value.assets.splice(0, formData.value.assets.length);
|
||||||
|
params.assets.forEach(asset => {
|
||||||
|
formData.value.assets.push({
|
||||||
symbol: asset.symbol || '',
|
symbol: asset.symbol || '',
|
||||||
targetWeight: asset.targetWeight?.toString() || ''
|
targetWeight: asset.targetWeight != null ? String(asset.targetWeight) : ''
|
||||||
}));
|
});
|
||||||
console.log('📊 填充后的 formData.assets:', formData.value.assets);
|
});
|
||||||
|
console.log('📊 填充后的 formData.assets:', JSON.stringify(formData.value.assets));
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
case 'chandelier_exit':
|
case 'chandelier_exit':
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user