fix: 修复网关选择器显示ID和保存后网关类型不正确的问题
This commit is contained in:
@@ -313,11 +313,7 @@ func (s assetService) UpdateById(id string, m maps.Map) error {
|
||||
}
|
||||
|
||||
if item.AccessGatewayId == "" {
|
||||
if gatewayId, ok := m["gatewayId"]; ok && gatewayId != "" && gatewayId != "-" {
|
||||
item.AccessGatewayId = gatewayId.(string)
|
||||
} else {
|
||||
item.AccessGatewayId = "-"
|
||||
}
|
||||
item.AccessGatewayId = "-"
|
||||
}
|
||||
|
||||
return s.Transaction(context.Background(), func(ctx context.Context) error {
|
||||
|
||||
@@ -86,14 +86,33 @@ const AssetsPost = function ({assetId, groupId, copy, onClose}: AssetsInfoProps)
|
||||
} else if (!asset.tags) {
|
||||
asset.tags = [] as any;
|
||||
}
|
||||
// 处理网关类型
|
||||
if (asset.accessGatewayId && asset.accessGatewayId !== '-') {
|
||||
asset.gatewayType = 'ssh';
|
||||
setTimeout(() => {
|
||||
formRef.current?.setFieldsValue({
|
||||
gatewayType: 'ssh',
|
||||
accessGatewayId: asset.accessGatewayId
|
||||
});
|
||||
}, 100);
|
||||
// 获取网关名称
|
||||
try {
|
||||
const gateways = await sshGatewayApi.getAll();
|
||||
const gateway = gateways.find(g => g.id === asset.accessGatewayId);
|
||||
if (gateway) {
|
||||
asset.gatewayType = 'ssh';
|
||||
// 使用 setTimeout 确保表单已加载完成
|
||||
setTimeout(() => {
|
||||
formRef.current?.setFieldsValue({
|
||||
gatewayType: 'ssh',
|
||||
accessGatewayId: { value: asset.accessGatewayId, label: gateway.name }
|
||||
});
|
||||
}, 100);
|
||||
} else {
|
||||
// 网关不存在,设置为不使用网关
|
||||
asset.gatewayType = '';
|
||||
asset.accessGatewayId = undefined;
|
||||
}
|
||||
} catch (e) {
|
||||
asset.gatewayType = '';
|
||||
asset.accessGatewayId = undefined;
|
||||
}
|
||||
} else {
|
||||
asset.gatewayType = '';
|
||||
asset.accessGatewayId = undefined;
|
||||
}
|
||||
return asset;
|
||||
}
|
||||
@@ -109,6 +128,7 @@ const AssetsPost = function ({assetId, groupId, copy, onClose}: AssetsInfoProps)
|
||||
},
|
||||
groupId: groupId,
|
||||
tags: [],
|
||||
gatewayType: '',
|
||||
} as Asset;
|
||||
}
|
||||
|
||||
@@ -120,6 +140,9 @@ const AssetsPost = function ({assetId, groupId, copy, onClose}: AssetsInfoProps)
|
||||
// 处理网关字段
|
||||
if (!values['gatewayType']) {
|
||||
values['accessGatewayId'] = '-';
|
||||
} else if (values['accessGatewayId'] && typeof values['accessGatewayId'] === 'object') {
|
||||
// 如果是对象,提取 value
|
||||
values['accessGatewayId'] = values['accessGatewayId'].value;
|
||||
}
|
||||
delete values['gatewayType'];
|
||||
if (!copy && values['id']) {
|
||||
|
||||
Reference in New Issue
Block a user