const { app, BrowserWindow } = require("electron"); const { ipcMain } = require("electron"); // const { initSplashScreen } = require("electron-splashscreen"); const path = require("path"); const { updateConfig, getConfigValue, bulkInsertSystemMessages, stopProcess, startProcess, stopAllProcesses, stopChatProcesses, getAllSystemMessages, clearSystemMessages, updateMessageById } = require("./dbHandler"); // 注册IPC通信处理 function registerIpcHandlers() { // 更新backend_token ipcMain.handle("update-config", async (event, tableName, key, token) => { try { return await updateConfig(tableName, key, token); } catch (error) { console.error("更新backend_token失败:", error); throw error; } }); ipcMain.handle("get-config", async (event, tableName, key) => { try { return await getConfigValue(tableName, key); } catch (error) { console.error("获取失败:", error); throw error; } }); ipcMain.handle("bulk-insert-system-messages", async (event, messages) => { try { return await bulkInsertSystemMessages(messages); } catch (error) { console.error("更新失败:", error); throw error; } }); ipcMain.handle("clear-system-messages", async () => { try { return await clearSystemMessages(); } catch (error) { console.error("停止失败:", error); throw error; } }); ipcMain.handle("start-process", async (event, fileName, exeName) => { try { return await startProcess(fileName, exeName); } catch (error) { console.error("启动失败:", error); throw error; } }); ipcMain.handle("stop-process", async (event, fileName, exeName) => { try { return await stopProcess(fileName, exeName); } catch (error) { console.error("停止失败:", error); throw error; } }); ipcMain.handle("stop-all-process", async () => { try { return await stopAllProcesses(); } catch (error) { console.error("停止失败:", error); throw error; } }); ipcMain.handle("stop-chat-process", async () => { try { return await stopChatProcesses(); } catch (error) { console.error("停止失败:", error); throw error; } }); ipcMain.handle("get-all-system-messages", async () => { try { return await getAllSystemMessages(); } catch (error) { console.error("停止失败:", error); throw error; } }); ipcMain.handle("update-message", async (event, id, data) => { try { return await updateMessageById(id, data); } catch (error) { console.error("更新失败:", error); throw error; } }); } function createWindow() { const win = new BrowserWindow({ width: 1920, height: 1080, webPreferences: { preload: path.join(__dirname, "preload.js"), // 使用计算后的 __dirname nodeIntegration: false, contextIsolation: true } }); // 捕获 preload 加载错误 win.webContents.on("did-fail-load", (event, errorCode, errorDescription) => { console.error("Preload 加载失败:", errorDescription); }); // 加载应用 console.log(process.env.NODE_ENV); if (process.env.NODE_ENV === "development") { win.loadURL("http://localhost:8848/#/login"); win.webContents.openDevTools(); } else { // win.webContents.openDevTools(); win.loadFile("dist/index.html"); } } app.whenReady().then(() => { createWindow(); // 注册IPC处理 registerIpcHandlers(); app.on("activate", () => { if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); }); app.on("window-all-closed", () => { if (process.platform !== "darwin") app.quit(); });