From 3dc478e724496db96927cba01d75bfdc07de2c89 Mon Sep 17 00:00:00 2001 From: lyc Date: Mon, 22 Jul 2024 16:24:32 +0800 Subject: [PATCH] =?UTF-8?q?=E6=89=93=E5=BC=80=E6=96=B0=E7=BD=91=E9=A1=B5?= =?UTF-8?q?=E7=AA=97=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/main/index.js | 76 +++++++++++++++++++++++++++++++++++++---------- 1 file changed, 60 insertions(+), 16 deletions(-) diff --git a/src/main/index.js b/src/main/index.js index 8ef847e..03fe72a 100644 --- a/src/main/index.js +++ b/src/main/index.js @@ -1,4 +1,4 @@ -import { app, shell, BrowserWindow, ipcMain } from 'electron' +import { app, shell, BrowserWindow, ipcMain, session } from 'electron' import { join } from 'path' import { electronApp, optimizer, is } from '@electron-toolkit/utils' import icon from '../../resources/icon.png?asset' @@ -9,8 +9,8 @@ File({ app, shell, BrowserWindow, ipcMain }) let mainWindow, loginWindow //登录窗口 -function createLoginWindow(){ - if(loginWindow) return +function createLoginWindow() { + if (loginWindow) return loginWindow = new BrowserWindow({ width: 888, height: 520, @@ -23,7 +23,6 @@ function createLoginWindow(){ sandbox: false, nodeIntegration: true } - }) const loginURL = is.dev ? `http://localhost:5173/#/login` : `file://${__dirname}/index.html/login` loginWindow.loadURL(loginURL) @@ -68,8 +67,52 @@ function createMainWindow() { } } +// 作业窗口相关-开发中 +let workWindow +function createWork(data) { + if (workWindow) return + workWindow = new BrowserWindow({ + width: 650, + height: 500, + show: false, + frame: true, + + autoHideMenuBar: true, + ...(process.platform === 'linux' ? { icon } : {}), + webPreferences: { + sandbox: false, + nodeIntegration: true + } + }) + + workWindow.webContents.session.cookies.set( + { + url: 'https://file.ysaix.com:7868', + name: 'Admin-Token', + value: data + }, + function (error) { + if (error) { + console.error('Set cookie failed:', error) + } else { + console.log('Cookie set successfully.') + } + } + ) + workWindow.loadURL( + 'https://file.ysaix.com:7868/teaching/classtaskassign?titleName=%E4%BD%9C%E4%B8%9A%E5%B8%83%E7%BD%AE' + ) + + workWindow.once('ready-to-show', () => { + workWindow.show() + }) + workWindow.on('closed', () => { + workWindow = null + }) +} + // 初始化完成 -app.on('ready',()=>{ +app.on('ready', () => { // 设置应用程序用户模型标识符 electronApp.setAppUserModelId('com.electron') @@ -86,12 +129,12 @@ app.on('ready',()=>{ if (mainWindow) { mainWindow.minimize() } - }); - + }) + ipcMain.on('maximize-window', () => { - mainWindow.isMaximized() ? mainWindow.unmaximize() : mainWindow.maximize(); - }); - + mainWindow.isMaximized() ? mainWindow.unmaximize() : mainWindow.maximize() + }) + ipcMain.on('close-window', () => { if (loginWindow) { loginWindow.destroy() @@ -99,15 +142,14 @@ app.on('ready',()=>{ if (mainWindow) { mainWindow.destroy() } - }); - + }) // 打开主窗口 ipcMain.on('openMainWindow', () => { if (!mainWindow) { createMainWindow() } - + loginWindow.destroy() loginWindow = null }) @@ -121,15 +163,17 @@ app.on('ready',()=>{ loginWindow.focus() }) + //打开作业窗口 + ipcMain.on('openWork', (e, data) => { + createWork(data) + }) + createLoginWindow() app.on('activate', function () { if (BrowserWindow.getAllWindows().length === 0) createLoginWindow() }) - }) - - // Quit when all windows are closed, except on macOS. There, it's common // for applications and their menu bar to stay active until the user quits // explicitly with Cmd + Q.