diff --git a/README.en.md b/README.en.md
index bd23f8405a688d3730529952cfec86b320fe3ed9..b0f064c7bdf26d6d2d385bfe06c602a16069d2d3 100644
--- a/README.en.md
+++ b/README.en.md
@@ -1,36 +1,79 @@
+
# RuoYi-Geek-Doc
-#### Description
-RuoYi-Geek-SpringBoot3、RuoYi-Geek-Vue3、RuoYi-Geek-App、RuoYi-Geek-Electron框架的文档
+## Repository Overview
+
+This repository is dedicated to housing documentation for various frameworks within the GEEK-XD ecosystem, such as RuoYi-Geek-SpringBoot3, RuoYi-Geek-Vue3, RuoYi-Geek-App, and RuoYi-Geek-Electron.
+
+## Introduction to the GEEK-XD Ecosystem
+
+The original versions of RuoYi-Vue and RuoYi-App were built on SpringBoot2 + Vue2 as enterprise-level development frameworks, receiving widespread love and positive feedback from developers. However, with the advancement of technology, SpringBoot3 and Vue3 have gradually caught the attention of developers. To meet the demand for new technologies, the official RuoYi documentation provides an upgrade path from SpringBoot2 to SpringBoot3. At the same time, community-driven versions like RuoYi-Vue3 and RuoYi-App-Vue3 have emerged, showcasing the community's enthusiasm and effort towards technological upgrades.
+
+However, during the upgrade process, the official methods retained some old features for compatibility with Java 1.8, not fully embracing all the characteristics of SpringBoot3 and Java 17. Meanwhile, the community's RuoYi-Vue3 and RuoYi-App-Vue3 versions, developed by different teams, exhibited some shortcomings in terms of compatibility and integration. More critically, although these versions support TypeScript, they lack a suitable tsconfig.json configuration file, resulting in suboptimal TypeScript syntax hinting environments in mainstream editors like VSCode.
+
+In response to these issues, the RuoYi-Geek ecosystem was born. It aims to provide developers with a comprehensive solution that retains the core features of the original version while integrating the advantages of community editions. In RuoYi-Geek, we have extensively researched commonly used RuoYi extensions in enterprise development and integrated them directly into the framework to ensure developers can get started quickly and develop efficiently. We have adopted the latest SpringBoot3 + Vue3 tech stack, completely removing old methods retained for Java 1.8 compatibility. Importantly, we have added common tsconfig.json configurations for the TypeScript development environment, ensuring developers receive a more comfortable and convenient syntax hinting experience in editors like VSCode.
+
+Furthermore, we plan to inject even more super-practical tools into this framework and its companions, making daily development or enterprise projects easier to handle! Imagine having a moment where one of our small tools boosts your efficiency so much it feels like you've got a power-up! We sincerely hope this framework becomes an indispensable assistant to you, making your work less "grueling" and more enjoyable, efficient, and comfortable. XD😄 \\(@^0^@)/
+
+RuoYi-Geek is not just a simple upgrade; it's a comprehensive optimization and integration of the RuoYi ecosystem. We believe that through RuoYi-Geek, developers will be able to develop excellent enterprise applications more efficiently and joyfully.
+
+## Framework Introduction
+
+### RuoYi-Geek-SpringBoot3
+
+This framework is a Java rapid development framework based on SpringBoot3 + Vue3 with front-end and back-end separation.
+
+This framework represents the Springboot 3 backend version of our ecosystem. Paired with the Vue3 version of the RuoYi Geek ecosystem, this version has carried out foundational design work on payment modules and third-party login modules, and significantly enhanced the code generator, now supporting field-level associated table operations. Additionally, an online API development module has been added, allowing users to modify interfaces using MyBatis online. Other functional modules are continuously being updated and perfected.
+
+### RuoYi-Geek-Vue3
+
+This framework is a Java rapid development framework based on SpringBoot3 + Vue3 with front-end and back-end separation.
+
+This framework represents the Vue3 frontend version of our ecosystem. Currently, it has added support for three.js, and works alongside the Springboot 3 backend version of the RuoYi Geek ecosystem. This version has also carried out foundational design work on payment modules and third-party login modules, and significantly enhanced the code generator, now supporting field-level associated table operations. Additionally, an online API development module has been added, allowing users to modify interfaces using MyBatis online. Other functional modules are continuously being updated and perfected.
+
+### RuoYi-Geek-App
+
+The RuoYi Geek ecosystem App version is a secondary development based on the RuoYi-App framework, adopting the Uniapp combined with Vue3 tech stack. It supports both JavaScript and TypeScript development and is compatible with CSS, SCSS, and Less style languages. For performance optimization, we have implemented initial code segmentation. Moreover, we have integrated uview-plus, uchart, and related templates for reference and use.
+
+### RuoYi-Geek-Electron
+
+RuoYi-Geek-Electron aims to build a comfortable desktop application environment for RuoYi-Geek-SpringBoot3 and RuoYi-Geek-Vue3, simplifying development with decorators. It is currently under development.
-#### Software Architecture
-Software architecture description
-#### Installation
+# Contact Us:
-1. xxxx
-2. xxxx
-3. xxxx
+### Technical Exchange QQ Group: 744785891
-#### Instructions
+We welcome all developers interested in RuoYi-Geek to join our community 😆!
-1. xxxx
-2. xxxx
-3. xxxx
+
-#### Contribution
+### Business Cooperation 😆
-1. Fork the repository
-2. Create Feat_xxx branch
-3. Commit your code
-4. Create Pull Request
+We welcome various opportunities for business cooperation, be it technical consultation, project collaboration, or other forms of partnership. We look forward to working with you to create a future together.
+If you are interested, please contact us via the following methods:
+
|
+ QQ + QQ Number: 2086232477 + |
+
+ WeChat + WeChat ID: tantianming000 + |
+
+
+ |
+
+
+ |
+
+
+### 商业合作😆
+
+我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。
+如果您有兴趣,请通过以下方式联系我们:
+
+|
+ QQ + QQ号:2086232477 + |
+
+ 微信 + 微信号:tantianming000 + |
+
+
+ |
+
+
+ |
+
+
+### 配置应用主窗口
+
+```bash
+class IndexWindow extends BaseWindow {
+ static browserWindowOptions = {
+ width: 900,
+ height: 670,
+ show: false,
+ autoHideMenuBar: true,
+ ...process.platform === "linux" ? { icon } : {},
+ webPreferences: {
+ preload: path.join(__dirname, "../preload/index.js"),
+ sandbox: false,
+ nodeIntegration: true,
+ // 开启自带node环境
+ webviewTag: true,
+ // 开启webview
+ contextIsolation: true,
+ // 开启context上下文
+ webSecurity: false,
+ // 开启网络安全
+ allowRunningInsecureContent: true
+ // 允许运行不安全内容
+ }
+ };
+```
+
+配置 Electron 应用的主窗口,包括窗口大小、初始状态、菜单栏设置以及 WebPreferences 的详细配置,确保应用在启动时能够按照预期的行为进行渲染和交互。
+
+### onCreate
+
+```bash
+static onCreate(context) {
+ context.on("ready-to-show", () => {
+ context.show();
+ });
+ context.webContents.setWindowOpenHandler((details) => {
+ electron.shell.openExternal(details.url);
+ return { action: "deny" };
+ });
+ if (utils.is.dev && process.env["ELECTRON_RENDERER_URL"]) {
+ context.webContents.openDevTools();
+ context.loadURL(process.env["ELECTRON_RENDERER_URL"]);
+ } else {
+ context.loadFile(path.join(__dirname, "../renderer/index.html"));
+ }
+ }
+}
+
+```
+
+创建和初始化一个Electron应用窗口的静态方法onCreate。主要功能如下:
+
+1. 监听窗口准备就绪事件(44-46):当窗口准备好显示时,调用context.show()显示窗口。
+2. 处理新窗口打开请求(47-50):拦截新窗口打开请求,使用默认浏览器打开链接,并拒绝创建新窗口。
+3. 加载开发或生产环境资源(51-56):
+ o 如果是开发环境且设置了环境变量ELECTRON_RENDERER_URL,则打开开发者工具并加载指定URL。
+ o 否则,加载本地HTML文件。
+
+# 应用主进程
+
+```ts
+electron.app.whenReady().then(() => {
+ utils.electronApp.setAppUserModelId("com.electron");
+ electron.app.on("browser-window-created", (_, window) => {
+ utils.optimizer.watchWindowShortcuts(window);
+ });
+ electron.ipcMain.on("ping", () => console.log("pong"));
+ createWindow();
+ electron.app.on("activate", function() {
+ if (electron.BrowserWindow.getAllWindows().length === 0) createWindow();
+ });
+});
+electron.app.on("window-all-closed", () => {
+ if (process.platform !== "darwin") {
+ electron.app.quit();
+ }
+});
+Electron应用的主进程(main process)部分,主要负责在应用启动时执行一系列初始化操作,并处理窗口管理和应用关闭事件。具体功能如下:
+1. 应用准备就绪时:
+o 设置应用程序模型ID为com.electron。
+o 监听browser-window-created事件,在创建浏览器窗口时调用utils.optimizer.watchWindowShortcuts(window)方法来监控窗口快捷键。
+o 监听ping IPC消息,并在收到消息时打印pong。
+o 调用createWindow()函数创建主窗口。
+o 监听activate事件,当应用被激活且没有打开的窗口时,重新创建主窗口。
+2. 所有窗口关闭时:
+o 如果操作系统不是macOS(darwin),则退出应用。(苹果系统特点)
+
+```
+
+# 预处理进程:
+
+```ts
+"use strict";
+const electron = require("electron");
+const preload = require("@electron-toolkit/preload");
+const api = {};
+if (process.contextIsolated) {
+ try {
+ electron.contextBridge.exposeInMainWorld("electron", preload.electronAPI);
+ electron.contextBridge.exposeInMainWorld("api", api);
+ } catch (error) {
+ console.error(error);
+ }
+} else {
+ window.electron = preload.electronAPI;
+ window.api = api;
+}
+```
+
+用于在渲染进程(renderer process)中安全地暴露API给网页内容。具体功能如下:
+
+1. 严格模式:
+ o 使用"use strict"确保代码运行在严格模式下,避免一些常见的编程错误。
+2. 引入依赖:
+ o 引入electron模块和@electron-toolkit/preload模块。
+ o 定义一个空对象api,用于自定义API。
+3. 上下文隔离检查:
+ o 检查process.contextIsolated是否为true,以确定是否启用了上下文隔离(context isolation)。
+4. 上下文隔离启用时:
+ o 使用electron.contextBridge.exposeInMainWorld方法将preload.electronAPI和自定义的api暴露给主世界(main world),即网页内容可以访问这些API。
+ o 如果暴露过程中发生错误,捕获并打印错误信息。
+5. 上下文隔离未启用时:
+ o 直接将preload.electronAPI和api挂载到全局window对象上,使网页内容可以直接访问这些API。
+
+#API解释与作用:
+• API 是一种接口,允许不同软件组件之间进行通信。
+• 在Electron应用中,API通过预加载脚本安全地暴露给渲染进程,以便前端代码可以调用这些API与主进程或其他部分进行交互。
+• api对象可以包含自定义的方法和属性,根据需求进行扩展。
+
+# 渲染进程
+
+```ts
+
+
+
+
+
+### 商业合作😆
+
+我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。
+如果您有兴趣,请通过以下方式联系我们:
+
+|
+ QQ + QQ号:2086232477 + |
+
+ 微信 + 微信号:tantianming000 + |
+
+
+ |
+
+
+ |
+
![]() |
- ![]() |
-
![]() |
- ![]() |
-
![]() |
- ![]() |
-
![]() |
- ![]() |
-
![]() |
- ![]() |
-
![]() |
- ![]() |
-
![]() |
- ![]() |
-
![]() |
- ![]() |
-