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: '',
|
||||
description: '',
|
||||
riskLevel: 'medium',
|
||||
tags: [],
|
||||
tags: '',
|
||||
maType: 'SMA',
|
||||
shortPeriod: '',
|
||||
longPeriod: '',
|
||||
@ -529,12 +529,16 @@ const loadStrategyDetail = async (id) => {
|
||||
formData.value.lookbackPeriod = params.lookbackPeriod?.toString() || '';
|
||||
formData.value.rebalanceThreshold = params.rebalanceThreshold?.toString() || '';
|
||||
console.log('📊 再平衡策略 assets:', params.assets);
|
||||
if (params.assets && params.assets.length > 0) {
|
||||
formData.value.assets = params.assets.map(asset => ({
|
||||
if (params.assets && Array.isArray(params.assets) && params.assets.length > 0) {
|
||||
// 使用 splice 保持响应式引用
|
||||
formData.value.assets.splice(0, formData.value.assets.length);
|
||||
params.assets.forEach(asset => {
|
||||
formData.value.assets.push({
|
||||
symbol: asset.symbol || '',
|
||||
targetWeight: asset.targetWeight?.toString() || ''
|
||||
}));
|
||||
console.log('📊 填充后的 formData.assets:', formData.value.assets);
|
||||
targetWeight: asset.targetWeight != null ? String(asset.targetWeight) : ''
|
||||
});
|
||||
});
|
||||
console.log('📊 填充后的 formData.assets:', JSON.stringify(formData.value.assets));
|
||||
}
|
||||
break;
|
||||
case 'chandelier_exit':
|
||||
|
||||
Loading…
Reference in New Issue
Block a user