改进添加供应商界面:实现自动提取官网地址功能

- 新增 extractWebsiteUrl 函数,从 JSON 配置中自动解析 ANTHROPIC_BASE_URL
- 智能处理 URL 前缀,自动去掉 "api." 前缀生成官网地址
- 优化用户体验:仅在官网地址为空时自动填入,不覆盖用户手动输入
- 支持实时解析,用户输入 JSON 配置时立即更新官网地址字段
This commit is contained in:
farion1231
2025-08-07 22:20:03 +08:00
parent db28ccb27b
commit b0d4537398

View File

@@ -82,14 +82,43 @@ const AddProviderModal: React.FC<AddProviderModalProps> = ({
});
};
// 从JSON配置中提取并处理官网地址
const extractWebsiteUrl = (jsonString: string): string => {
try {
const config = JSON.parse(jsonString);
const baseUrl = config?.env?.ANTHROPIC_BASE_URL;
if (baseUrl && typeof baseUrl === 'string') {
// 去掉 "api." 前缀
return baseUrl.replace(/^https?:\/\/api\./, 'https://');
}
} catch (err) {
// 忽略JSON解析错误
}
return '';
};
const handleChange = (
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>
) => {
const { name, value } = e.target;
setFormData({
...formData,
[name]: value,
});
if (name === 'settingsConfig') {
// 当用户修改配置时,尝试自动提取官网地址
const extractedWebsiteUrl = extractWebsiteUrl(value);
setFormData({
...formData,
[name]: value,
// 只有在官网地址为空时才自动填入
websiteUrl: formData.websiteUrl || extractedWebsiteUrl,
});
} else {
setFormData({
...formData,
[name]: value,
});
}
};
const applyPreset = (preset: typeof presets[0]) => {