You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
125 lines
3.1 KiB
JavaScript
125 lines
3.1 KiB
JavaScript
const { app, BrowserWindow } = require("electron");
|
|
const { ipcMain } = require("electron");
|
|
const path = require("path");
|
|
const {
|
|
updateConfig,
|
|
getConfigValue,
|
|
bulkInsertSystemMessages,
|
|
stopProcess,
|
|
startProcess,
|
|
stopAllProcesses,
|
|
getAllSystemMessages,
|
|
clearSystemMessages
|
|
} = 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("get-all-system-messages", async () => {
|
|
try {
|
|
return await getAllSystemMessages();
|
|
} 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();
|
|
});
|