代码质量优化:修复废弃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 = {
id: "default",
name: "默认",
name: "default",
settingsConfig: settingsConfig,
};
@@ -157,7 +157,7 @@ export async function importCurrentConfigAsDefault(): Promise<{ success: boolean
return { success: false };
}
console.log(`已导入当前配置为默认供应商配置文件settings-默认.json`);
console.log(`已导入当前配置为默认供应商配置文件settings-default.json`);
return { success: true, provider };
} catch (error: any) {
console.error("导入默认配置失败:", error);

View File

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