const { app, BrowserWindow, ipcMain } = require('electron'); const path = require('path'); const i18n = require('i18n-js'); // 设置默认语言和路径 i18n.defaultLocale = 'zh'; // 默认语言改为中文 i18n.locale = 'zh'; // 当前语言环境改为中文 i18n.fallbacks = true; // 启用回退到默认语言 i18n.translations = { zh: require('./locales/zh.json') // 中文翻译文件 // 可以添加更多语言文件 }; // Odoo服务器URL - 请替换为你的Odoo实例地址 const ODOO_URL = 'https://www.gzsjfz.top'; let mainWindow; function createWindow() { // 创建浏览器窗口 mainWindow = new BrowserWindow({ width: 1200, height: 800, webPreferences: { nodeIntegration: false, // 禁用Node.js集成以增强安全性 contextIsolation: true, // 启用上下文隔离 preload: path.join(__dirname, 'preload.js') // 使用预加载脚本 } }); // 加载Odoo URL mainWindow.loadURL(ODOO_URL); // 打开开发者工具(可选) // mainWindow.webContents.openDevTools(); } // 当Electron完成初始化并准备创建浏览器窗口时调用此方法 app.whenReady().then(() => { createWindow(); // 处理来自渲染进程的打印请求 ipcMain.handle('print', (event, options) => { return new Promise((resolve) => { mainWindow.webContents.print(options || {}, (success, errorType) => { resolve({ success, errorType }); }); }); }); // 处理PDF打印请求 ipcMain.handle('print-to-pdf', (event, options) => { return new Promise((resolve, reject) => { mainWindow.webContents.printToPDF(options || {}) .then(data => resolve(data)) .catch(error => reject(error)); }); }); // 在macOS上,当点击dock图标并且没有其他窗口打开时,通常会重新创建应用程序窗口 app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createWindow(); }); }); // 在Windows和Linux上,当所有窗口关闭时退出应用程序 app.on('window-all-closed', function () { if (process.platform !== 'darwin') app.quit(); });