代码质量优化:修复废弃API并改进ID生成
- 使用 crypto.randomUUID() 替换已废弃的 substr() 方法 - 将默认供应商名称从"默认"改为"default",提高国际化兼容性 - 优化 ID 生成算法,提供更可靠的唯一性保证
This commit is contained in:
@@ -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);
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user