改进添加供应商界面:实现自动提取官网地址功能
- 新增 extractWebsiteUrl 函数,从 JSON 配置中自动解析 ANTHROPIC_BASE_URL - 智能处理 URL 前缀,自动去掉 "api." 前缀生成官网地址 - 优化用户体验:仅在官网地址为空时自动填入,不覆盖用户手动输入 - 支持实时解析,用户输入 JSON 配置时立即更新官网地址字段
This commit is contained in:
@@ -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 = (
|
const handleChange = (
|
||||||
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>
|
e: React.ChangeEvent<HTMLInputElement | HTMLTextAreaElement>
|
||||||
) => {
|
) => {
|
||||||
const { name, value } = e.target;
|
const { name, value } = e.target;
|
||||||
|
|
||||||
|
if (name === 'settingsConfig') {
|
||||||
|
// 当用户修改配置时,尝试自动提取官网地址
|
||||||
|
const extractedWebsiteUrl = extractWebsiteUrl(value);
|
||||||
|
|
||||||
|
setFormData({
|
||||||
|
...formData,
|
||||||
|
[name]: value,
|
||||||
|
// 只有在官网地址为空时才自动填入
|
||||||
|
websiteUrl: formData.websiteUrl || extractedWebsiteUrl,
|
||||||
|
});
|
||||||
|
} else {
|
||||||
setFormData({
|
setFormData({
|
||||||
...formData,
|
...formData,
|
||||||
[name]: value,
|
[name]: value,
|
||||||
});
|
});
|
||||||
|
}
|
||||||
};
|
};
|
||||||
|
|
||||||
const applyPreset = (preset: typeof presets[0]) => {
|
const applyPreset = (preset: typeof presets[0]) => {
|
||||||
|
|||||||
Reference in New Issue
Block a user