代码质量优化:修复废弃API并改进ID生成

- 使用 crypto.randomUUID() 替换已废弃的 substr() 方法
- 将默认供应商名称从"默认"改为"default",提高国际化兼容性
- 优化 ID 生成算法,提供更可靠的唯一性保证
This commit is contained in:
farion1231
2025-08-07 23:58:07 +08:00
parent 100b3f6e21
commit 6021ad8b22
2 changed files with 20 additions and 20 deletions

View File

@@ -147,7 +147,7 @@ export async function importCurrentConfigAsDefault(): Promise<{ success: boolean
// 创建默认供应商对象 // 创建默认供应商对象
const provider: Provider = { const provider: Provider = {
id: "default", id: "default",
name: "默认", name: "default",
settingsConfig: settingsConfig, settingsConfig: settingsConfig,
}; };
@@ -157,7 +157,7 @@ export async function importCurrentConfigAsDefault(): Promise<{ success: boolean
return { success: false }; return { success: false };
} }
console.log(`已导入当前配置为默认供应商配置文件settings-默认.json`); console.log(`已导入当前配置为默认供应商配置文件settings-default.json`);
return { success: true, provider }; return { success: true, provider };
} catch (error: any) { } catch (error: any) {
console.error("导入默认配置失败:", error); console.error("导入默认配置失败:", error);

View File

@@ -74,7 +74,7 @@ function App() {
setProviders(loadedProviders); setProviders(loadedProviders);
setCurrentProviderId(currentId); setCurrentProviderId(currentId);
// 如果供应商列表为空,尝试自动导入现有配置为"默认"供应商 // 如果供应商列表为空,尝试自动导入现有配置为"default"供应商
if (Object.keys(loadedProviders).length === 0) { if (Object.keys(loadedProviders).length === 0) {
await handleAutoImportDefault(); await handleAutoImportDefault();
} }
@@ -87,7 +87,7 @@ function App() {
// 生成唯一ID // 生成唯一ID
const generateId = () => { const generateId = () => {
return Date.now().toString(36) + Math.random().toString(36).substr(2, 9); return crypto.randomUUID();
}; };
const handleAddProvider = async (provider: Omit<Provider, "id">) => { const handleAddProvider = async (provider: Omit<Provider, "id">) => {
@@ -100,6 +100,20 @@ function App() {
setIsAddModalOpen(false); setIsAddModalOpen(false);
}; };
const handleEditProvider = async (provider: Provider) => {
try {
await window.electronAPI.updateProvider(provider);
await loadProviders();
setEditingProviderId(null);
// 显示编辑成功提示
showNotification("供应商配置已保存", "success", 2000);
} catch (error) {
console.error("更新供应商失败:", error);
setEditingProviderId(null);
showNotification("保存失败,请重试", "error");
}
};
const handleDeleteProvider = async (id: string) => { const handleDeleteProvider = async (id: string) => {
const provider = providers[id]; const provider = providers[id];
setConfirmDialog({ setConfirmDialog({
@@ -130,28 +144,14 @@ function App() {
} }
}; };
const handleEditProvider = async (provider: Provider) => { // 自动导入现有配置为"default"供应商
try {
await window.electronAPI.updateProvider(provider);
await loadProviders();
setEditingProviderId(null);
// 显示编辑成功提示
showNotification("供应商配置已保存", "success", 2000);
} catch (error) {
console.error("更新供应商失败:", error);
setEditingProviderId(null);
showNotification("保存失败,请重试", "error");
}
};
// 自动导入现有配置为"默认"供应商
const handleAutoImportDefault = async () => { const handleAutoImportDefault = async () => {
try { try {
const result = await window.electronAPI.importCurrentConfigAsDefault() const result = await window.electronAPI.importCurrentConfigAsDefault()
if (result.success) { if (result.success) {
await loadProviders() await loadProviders()
showNotification("已自动导入现有配置为默认供应商", "success", 3000) showNotification("已自动导入现有配置为 default 供应商", "success", 3000)
} }
// 如果导入失败(比如没有现有配置),静默处理,不显示错误 // 如果导入失败(比如没有现有配置),静默处理,不显示错误
} catch (error) { } catch (error) {