From a814f6eb98bb1f38a80415abefd61df71a579a8a Mon Sep 17 00:00:00 2001
From: chenyincheng <501753378@qq.com>
Date: 星期三, 12 四月 2023 09:30:43 +0800
Subject: [PATCH] 34

---
 electron/main/index.ts |   75 +++++++++++++++++++++++--------------
 1 files changed, 47 insertions(+), 28 deletions(-)

diff --git a/electron/main/index.ts b/electron/main/index.ts
index 7ac32b5..36dd01e 100644
--- a/electron/main/index.ts
+++ b/electron/main/index.ts
@@ -1,19 +1,46 @@
-import { app, BrowserWindow, shell, ipcMain } from 'electron'
+import { app, BrowserWindow, shell, ipcMain,Menu } from 'electron'
 import { release } from 'os'
 import { join } from 'path'
+
+import logger from '../preload/logger.js'
 import fs from 'fs'
 import iconv from 'iconv-lite'
+//koa----
+import  Koa from 'koa';
+import  Router from 'koa-router';
+const koaBody = require('koa-body');
+const creatorKoa=(win)=>{
+  const app = new Koa();
+  const router = new Router();
+  app.use(koaBody({
+  multipart: true
+  }));
+  
+  router.get('/', async (ctx) => {
+      ctx.body = 'Hello World!';
+  });
+  router.post('/postResult', async (ctx)=>{
+  const body=ctx.request.body
+  win?.webContents.send('message-koa',body)
+  ctx.body={
+      "code": 200,
+      "data": body,
+      "message": "接收成功"
+  }
+  })
+
+  app.use(router.routes());
+  
+  app.listen(3131,()=>{
+      console.log('koa Service start, port:3131')
+  });
+}
 
 // 配制文件的读写实例
 const Store = require('electron-store');
 const  store = new Store();
 console.log(store.path)
 
-// 读
-// console.log(store.get('clientCode'))
-// console.log(store.get('deviceList'))
-// 写
-// store.set("testr","test001")
 
 // Disable GPU Acceleration for Windows 7
 if (release().startsWith('6.1')) app.disableHardwareAcceleration()
@@ -36,14 +63,14 @@
 async function createWindow() {
   win = new BrowserWindow({
     title: 'Main window',
-    fullscreen: true,
+    fullscreen: true,// 开启默认全屏
+    // autoHideMenuBar:true, //关闭菜单栏
     webPreferences: {
       preload: splash,
       nodeIntegration: true,
       contextIsolation: false,
     },
   })
-
   if (app.isPackaged) {
     win.loadFile(join(__dirname, '../../index.html'))
   } else {
@@ -53,10 +80,10 @@
   // Test active push message to Renderer-process
   // 测试推送消息到Renderer进程
   win.webContents.on('did-finish-load', () => {
-    // win?.webContents.send('main-process-message', new Date().toLocaleString())
+    creatorKoa(win)
     win?.webContents.send('getScreenTimeout',store.get('screenTimeout'))
     win?.webContents.send('getPcName',store.get('machineName'))
-    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('devices'),store.path)
+    win?.webContents.send('getConfigData',store.get(),store.path)
   })
 
   // Make all links open with the browser, not with the application
@@ -66,7 +93,6 @@
     return { action: 'deny' }
   })
 }
-
 app.whenReady().then(createWindow)
 
 app.on('window-all-closed', () => {
@@ -76,7 +102,7 @@
 
 app.on('second-instance', () => {
   if (win) {
-    // Focus on the main window if the user tried to open another
+    // 如果用户试图打开另一个窗口,则将焦点放在主窗口上
     if (win.isMinimized()) win.restore()
     win.focus()
   }
@@ -91,7 +117,7 @@
   }
 })
 
-// new window example arg: new windows url
+// 新窗口示例arg:新的Windows url
 ipcMain.handle("open-win", (event, arg) => {
   const childWindow = new BrowserWindow({
     webPreferences: {
@@ -108,9 +134,15 @@
     // childWindow.webContents.openDevTools({ mode: "undocked", activate: true })
   }
 })
+// 主进程处理日志定义
+ipcMain.handle('logger', async(event, arg) => {  //与渲染进程通信
+  return new Promise((resolve, reject) => {
+    logger.info(arg)
+  })
+})
 // 渲染端发送消息到主进程
-ipcMain.on("main-process-message2",()=>{
-  console.log("33344")
+ipcMain.on("winClose",()=>{
+  win?.close()
 })
 // 渲染端发送消息到主进程修改confing文件
 ipcMain.on('setConfingData', (event, arg) => {
@@ -119,18 +151,5 @@
     "clientCode": arg.clientCode,
     "machineName": arg.machineName,
     "screenTimeout": arg.screenTimeout,
-    "devices":arg.devices
   }
-  //对比两端配置文件
-  if(JSON.stringify(mode1)!=JSON.stringify(mode2)){
-    //更新cofing.json
-    console.log('update confing.json')
-    store.set(mode2)
-    // 重新建立sockte 通讯
-    win?.webContents.send('getScreenTimeout',store.get('screenTimeout'))
-    win?.webContents.send('getPcName',store.get('machineName'))
-    win?.webContents.send('getConfigData',store.get('clientCode'),store.get('devices'),store.path)
-  }
-  
-  
 })
\ No newline at end of file

--
Gitblit v1.8.0