diff --git a/README.md b/README.md
index c5a8b14f3a98eb076e4d037e7c216b84d597f4ec..b13b64d1b57e28c11a7273cc03a138db6ed13bcd 100644
--- a/README.md
+++ b/README.md
@@ -38,7 +38,6 @@ RuoYi-Geek不仅仅是一个简单的升级版本,更是对于RuoYi生态的
RuoYi-Geek-Electron旨在为RuoYi-Geek-SpringBoot3与RuoYi-Geek-Vue3搭建一个舒适的窗口应用环境,并用装饰器简化开发。目前正在完善中。。。。。。。
-
# 联系我们:
### 技术交流群 QQ:744785891
diff --git "a/RuoYi-Geek-App/1.\347\256\200\344\273\213.md" "b/RuoYi-Geek-App/1.\347\256\200\344\273\213.md"
new file mode 100644
index 0000000000000000000000000000000000000000..b6e19b2cb9530d4d345bdaa971150ea0477c0b92
--- /dev/null
+++ "b/RuoYi-Geek-App/1.\347\256\200\344\273\213.md"
@@ -0,0 +1,44 @@
+# 项目简介
+
+若依极客生态App版本是 RuoYi-App 框架的基础上进行了二次开发,采用了 Uniapp 结合 Vue3 的技术栈。它同时支持 JavaScript 和 TypeScript 开发,并且兼容 CSS、SCSS 以及 Less 样式语言。为了优化性能,我们已经对代码进行了初步的分包处理。此外,我们集成了 uview-plus、uchart和相关的模板供大家参考和使用。
+
+# 主要特性
+
+1. 使用 UniApp+Vue3 的最新框架
+2. 支持 TS、SCSS、LESS 等对 js 和 css 的扩充语言
+3. 使用 Pinia 代替 Vuex,更加轻巧简单
+4. 使用 uView-Plus(好看的 ui) 代替 uView-ui 的 ui 组件库
+5. 使用 uCharts(方便的图表)画图工具
+6. 已经完成了分包操作
+7. 提供了颜色选择器、二维码等常用组件
+8. 将原有内置工具进行类型标定
+9. 分别提供了 uview-plus 和 ucharts 的模板(可以直接使用或者用于学习)
+
+# 技术选型
+
+**1、运行环境**
+
+* VSCode
+* 微信开发者工具
+
+**2、主框架**
+
+* uniapp
+* vue
+* uView-Plus
+
+# 内置功能
+
+* 登录
+* 首页
+* 工作台
+ * 用户管理
+ * 角色管理
+ * ........
+* 我的
+ * 个人信息
+ * 修改头像
+ * 编辑资料
+ * 常见问题
+ * 关于我们
+ * 应用设置
diff --git "a/RuoYi-Geek-App/2.\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-App/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
new file mode 100644
index 0000000000000000000000000000000000000000..6bf07e61f69535f4d84388e353d23b23ef8aea9e
--- /dev/null
+++ "b/RuoYi-Geek-App/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
@@ -0,0 +1,51 @@
+# 环境部署
+
+```
+Node.js (版本 18+)
+微信开发者工具
+```
+
+# 迁移到Hbuilder(不依赖Hbuilder的项目不需要迁移)
+
+1. src路径作为项目根路径
+2. 将index.html、package.json、vite.config.js、tsconfig.json、.gitignore粘贴到src目录下
+3. 在src目录下运行npm install
+4. 修改index.html中的./src/main.js为./main.js
+5. 在HBuilderX中运行时注意观察是否使用的是Vue3的编译器(若不是请自行查找方法解决,本人对HbuilderX使用不多)
+
+## 安装
+
+一下三种方式均可,感觉速度 pnpm > yarn > cnpm > npm
+
+**_Vue3/Vite 版要求 node 版本^14.18.0 || >=16.0.0(版本注意一下)_**
+
+```shell
+npm install
+cnpm install
+yarn
+pnpm install
+```
+
+# 启动
+
+1. 将项目下载到本地
+2. 初始化项目---进入项目根路径运行指令初始化项目
+ `npm install`
+3. 运行项目---进入项目根路径运行指令(在 package.json 能找到所有指令):
+ 以微信小程序为例:`npm run dev:mp-weixin`
+ 以 H5 为例 ` npm run dev:h5`
+4. 查看项目 以微信小程序为例:
+ 打开微信开发者工具,导入项目路径 dist\dev\mp-weixin
+ 以 H5 为例:打开浏览器,输入控制台输出的地址
+ 注:公众号属于 H5,以微信公众号为例,打开微信开发者工具,输入控制台输出的地址
+5. 打包项目---进入项目根路径运行指令(在 package.json 能找到所有指令):
+ 以微信小程序为例:`npm run build:mp-weixin`
+ 以 H5 为例: `npm run build:h5`
+
+### 代码压缩
+
+默认是启动代码压缩的,
+
+如果需要关闭代码压缩,可以将 vite.config.js 中的 build.minify 赋值为 false。
+
+如果需要打开代码压缩,可以将 vite.config.js 中的 build.minify 赋值为 true。
diff --git "a/RuoYi-Geek-App/3.\351\241\271\347\233\256\347\273\223\346\236\204.md" "b/RuoYi-Geek-App/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
new file mode 100644
index 0000000000000000000000000000000000000000..901ddc973b70a7259332ba4bb041e8e8392320a5
--- /dev/null
+++ "b/RuoYi-Geek-App/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
@@ -0,0 +1,32 @@
+```plaintext
+├── doc // 项目的文档目录,包含项目说明、API 文档等
+├── src // 项目的源代码目录
+│ ├── api // 存放 API 请求相关代码
+│ └── components // 存放可复用的 UI 组件
+│ └── directive // 存放指令相关代码
+│ └── pages // 存放各个页面的 Vue 文件
+│ └── pages_geek // Geek 相关页面
+│ │ ├── code // 代码页面
+│ │ ├── index // 首页页面
+│ └── pages_mine // 个人中心页面
+│ │ ├── about // 关于页面
+│ │ ├── avatar // 头像管理页面
+│ │ ├── help // 帮助页面
+│ │ ├── info // 信息页面
+│ │ ├── pwd // 密码修改页面
+│ │ ├── setting // 设置页面
+│ └── pages_qiun // Qiun 相关页面
+│ │ ├── components // 组件目录
+│ │ ├── pages // 页面目录
+│ │ ├── static // 静态资源目录
+│ └── pages_template // 模板页面
+│ │ ├── components // 模板组件
+│ │ ├── pages // 模板页面
+│ └── plugins // 插件目录
+│ └── static // 存放静态文件,如图片等
+│ └── store // 存放全局状态管理(例如 Vuex 或 Redux)
+│ └── uni_modules // uni-app 模块
+│ └── utils // 工具类文件,存放通用函数
+├── package-lock.json // npm 包管理锁定文件
+├── package.json // 项目的 npm 配置文件
+```
diff --git "a/RuoYi-Geek-App/RuoYi-Geek-App\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-App/RuoYi-Geek-App\345\277\253\351\200\237\345\220\257\345\212\250.md"
deleted file mode 100644
index 01295ac28a578ec7f23ff813979377ab93b73c7f..0000000000000000000000000000000000000000
--- "a/RuoYi-Geek-App/RuoYi-Geek-App\345\277\253\351\200\237\345\220\257\345\212\250.md"
+++ /dev/null
@@ -1,246 +0,0 @@
-# 快速开始
-
-**注意:** node 版本需要 16+
-
-## 迁移到Hbuilder(不依赖Hbuilder的项目不需要迁移)
-
-1. src路径作为项目根路径
-2. 将index.html、package.json、vite.config.js、tsconfig.json、.gitignore粘贴到src目录下
-3. 在src目录下运行npm install
-4. 修改index.html中的./src/main.js为./main.js
-5. 在HBuilderX中运行时注意观察是否使用的是Vue3的编译器(若不是请自行查找方法解决,本人对HbuilderX使用不多)
-
-## 安装
-
-一下三种方式均可,感觉速度 pnpm > yarn > cnpm > npm
-
-**_Vue3/Vite 版要求 node 版本^14.18.0 || >=16.0.0_**
-
-```shell
-npm install
-cnpm install
-yarn
-pnpm install
-```
-
-# 启动
-
-1. 将项目下载到本地
-2. 初始化项目---进入项目根路径运行指令初始化项目
- `npm install`
-3. 运行项目---进入项目根路径运行指令(在 package.json 能找到所有指令):
- 以微信小程序为例:`npm run dev:mp-weixin`
- 以 H5 为例 ` npm run dev:h5`
-4. 查看项目 以微信小程序为例:
- 打开微信开发者工具,导入项目路径 dist\dev\mp-weixin
- 以 H5 为例:打开浏览器,输入控制台输出的地址
- 注:公众号属于 H5,以微信公众号为例,打开微信开发者工具,输入控制台输出的地址
-5. 打包项目---进入项目根路径运行指令(在 package.json 能找到所有指令):
- 以微信小程序为例:`npm run build:mp-weixin`
- 以 H5 为例: `npm run build:h5`
-
-### 代码压缩
-
-默认是启动代码压缩的,
-
-如果需要关闭代码压缩,可以将 vite.config.js 中的 build.minify 赋值为 false。
-
-如果需要打开代码压缩,可以将 vite.config.js 中的 build.minify 赋值为 true。
-
-# 内置组件(geek-xd)
-
-1. 颜色选择器组件
-2. 二维码组件
-3. 圆形菜单组件
-4. 常用的订单组件
-5. 信息展示组件
-
-# 插件的使用
-
-#### tab - 页面插件
-
-可以通过设置参数中的 config.data 来实现页面传参
-
-| 方法 | 作用 | 参数 |
-| ------------ | ------------------------------------------------ | ----------- |
-| getData | 可以拿到上个页面通过 tab 传递的参数 | 无 |
-| reLaunch | 关闭所有页面,打开到应用内的某个页面 | url、config |
-| switchTab | 跳转到 tabBar 页面,并关闭其他所有非 tabBar 页面 | url、config |
-| redirectTo | 关闭当前页面,跳转到应用内的某个页面 | url、config |
-| navigateTo | 保留当前页面,跳转到应用内的某个页面 | url、config |
-| navigateBack | 关闭当前页面,返回上一页面或多级页面 | config |
-
-#### auth - 鉴权插件
-
-下面所有方法返回值都是布尔值,permission 代表权限字符串,role 代表角色字符串,复数形式代表数组。
-
-| 方法 | 作用 | 参数 |
-| ----------- | ------------------------------------------ | ----------- |
-| hasPermi | 验证用户是否具备某权限 | permission |
-| hasPermiOr | 验证用户是否含有指定权限,只需包含其中一个 | permissions |
-| hasPermiAnd | 验证用户是否含有指定权限,必须全部拥有 | permissions |
-| hasRole | 验证用户是否具备某角色 | role |
-| hasRoleOr | 验证用户是否含有指定角色,只需包含其中一个 | roles |
-| hasRoleAnd | roles | roles |
-
-#### modal - 弹窗插件
-
-content 是消息内容,option 是详细配置。
-
-| 方法 | 作用 | 参数 |
-| ------------ | ------------------------------ | ------- |
-| msg | 消息提示 | content |
-| msgError | 错误消息 | content |
-| msgSuccess | 成功消息 | content |
-| hideMsg | 隐藏消息 | 无 |
-| alert | 弹出提示 | content |
-| confirm | 确认窗体 | content |
-| showToast | 提示信息 | option |
-| loading | 打开遮罩层,需要手动关闭遮罩层 | content |
-| closeLoading | 关闭遮罩层 | 无 |
-
-#### bus - 事件插件
-
-eventName 是事件名称,eventFun 是事件处理函数,请尽量避免事件插件的使用,请在组件销毁是解绑素有该组件有关的事件,避免产生 bug。
-
-| 方法 | 作用 | 参数 |
-| ----- | ------------ | ------------------- |
-| $on | 绑定一个事件 | eventName、eventFun |
-| $off | 解绑一个事件 | eventName |
-| $emit | 触发一个事件 | eventName、...args |
-
-#### socket
-
-设置项 enableUUID,是否启用基于 uuid 的消息处理机制,要求当发送的消息携带 uuid 字段时,返回的消息也要携带 uuid 字段。
-
-设置项 enableEvent,是否启用基于事件的消息处理机制,要求当希望被事件处理函数处理的消息需要携带 event 字段。
-
-| 方法 | 作用 | 参数 |
-| --------- | ----------------------------------------------------------------------------------------------------------------------- | --------------------------------------------------------------------------------------------------------------------------------------- |
-| connect | 连接 websocke,当连接成功后触发回调函数 | 最简单的用法就是传入{url:"ws://demo"} |
-| send | 发送信息,当 uuid 不为空且不为 false 时,当收到携带相同 uuid 的消息时触发回调函数,只触发一次。否则由默认处理函数处理。 | msg 消息内容,会被处理成 json 字符串 uuid 唯一标识符,可以手动传入,也可以设置为 true 当为 true 时会自动生成一个 uuid 并添加到 msg 中。 |
-| close | 关闭连接,会触发回调函数的内容,不会触发默认关闭事件的处理函数,也不会修改默认关闭事件的处理函数。 | 无 |
-| on | 监听事件,当收到携带 event 的消息时会调用回调函数。 | event 事件的名称 |
-| off | 取消监听事件 | |
-| onMessage | 定义默认监听事件 | callback 默认监听事件的处理函数 |
-| onError | 定义异常事件 | callback 默认异常事件的处理函数 |
-| onClose | 定义关闭事件 | callback 默认关闭事件的处理函数 |
-
-# 作者建议
-
-### 对于选项式
-
-```js
-this.$tab; // 建议使用this.$tab进行页面跳转,理由:便于在跳转前处理其他事务
-this.$auth; // 建议使用this.$auth进行鉴权操作
-this.$modal; // 建议使用this.$modal打开弹窗,理由:便于以后想要使用自定义弹窗
-```
-
-### 对于组合式
-
-```js
-import tab from "@/plugins/tab"; // 建议使用tab进行页面跳转,理由:便于在跳转前处理其他事务
-import auth from "@/plugins/auth"; // 建议使用auth进行鉴权操作
-import modal from "@/plugins/modal"; // 建议使用modal打开弹窗,理由:便于以后想要使用自定义弹窗
-
-// 也可以使用下面的方式
-import { tab, auth, modal } from "@/plugins";
-```
-
-### 对于 ucharts
-
-建议即便暂时不使用图表也不要删除它,以后可能会用到。
-
-# 压缩内存
-
-(主包最低 809kb 左右)
-
-### 删除 geek 组件
-
-1. 删除 pages_geek 和 components/geek-xd 文件夹
-2. 删除 pages.json 中 subPackages 的 root 值为“pages_geek/pages”的配置
-3. 删除 pages/template.config.js 中 geek 组件
-
-### 去除模板
-
-(占用主包 582kb 左右)
-
-1. 删除 pages_template、pages_qiun 两个文件夹
-2. 删除 pages.json 中 subPackages 的 root 值为“pages_qiun/pages”、“pages_template/pages”的两个配置
-3. 删除 pages/template.config.js 和 pages/template.vue
-4. 删除 pages.json 中 subPackages 的“tabBar”中的模板一项和“pages”中模板的一项
-5. 删除 static 中的 uview,里面都是示例图片。
-6. 删除 plugins 中的 config.js 和 common.js,并在 plugins/index.js 中删除相关配置
-
-### 删除 uchart
-
-(占用主包 175kb 左右,不建议删除,以防以后会用)
-
-1. 删除 components/qiun-data-charts 文件夹
-2. 删除 pages.json 中的 easycom 下的 custom 中的"qiun-(.\*)"的那一行
-3. 删除 pages/index 中使用 “qiun-data-charts” 的部分
-
-### 删除 uview
-
-(按需引入,没必要删除)
-
-1. main.js 或者 main.ts 中删除
-
-```js
-import uviewPlus from "uview-plus";
-// ......
-app.use(uviewPlus);
-```
-
-2. uni.scss 中删除 @import 'uview-plus/theme.scss';
-3. App.vue 中删除 @import '@/static/scss/index.scss';
-4. package.json 中删除 "clipboard": "^2.0.11","dayjs": "^1.11.9","uview-plus": "^3.1.36",
-
-# 功能演示
-
-
-
-# 联系我们:
-
-### 技术交流群 QQ:744785891
-
-欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆!
-
-
-
-### 商业合作😆
-
-我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。
-如果您有兴趣,请通过以下方式联系我们:
-
-
-
-
- QQ
- QQ号:2086232477
- |
-
- 微信
- 微信号:tantianming000
- |
-
-
-
-
- |
-
-
- |
-
-
-
-我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。
diff --git "a/RuoYi-Geek-Electron/1.\347\256\200\344\273\213.md" "b/RuoYi-Geek-Electron/1.\347\256\200\344\273\213.md"
new file mode 100644
index 0000000000000000000000000000000000000000..494dce65e580a63778e7fae42c93c9c7b062367c
--- /dev/null
+++ "b/RuoYi-Geek-Electron/1.\347\256\200\344\273\213.md"
@@ -0,0 +1,20 @@
+# 简介
+
+RuoYi-Geek-Electron 是一个专为现代化开发设计的桌面应用框架,它致力于将流行的 RuoYi-Geek-SpringBoot3 后端与 RuoYi-Geek-Vue3 前端无缝集成到一个易于使用的窗口应用程序环境中。通过使用 Electron 技术,RuoYi-Geek-Electron 为开发者提供了一套完整的解决方案,使得基于 RuoYi 框架构建的项目能够轻松地跨平台运行于 Windows、macOS 和 Linux 操作系统之上。
+
+# 技术选型
+
+**1.系统环境**
+Node.js (版本 18+、20+)
+electron (31.0.2)
+typescript (5.5.2)
+
+**2. 主框架**
+electron (31.0.2)
+electron-builder (24.13.3)
+electron-vite (2.3.0)
+vite (5.3.1)
+
+**3. 视图层**
+vue (3.4.30)
+vue-tsc (2.0.22)
diff --git "a/RuoYi-Geek-Electron/RuoYi-Geek-Electron\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-Electron/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
similarity index 54%
rename from "RuoYi-Geek-Electron/RuoYi-Geek-Electron\345\277\253\351\200\237\345\220\257\345\212\250.md"
rename to "RuoYi-Geek-Electron/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
index 482737985d7a5e37a4c78fb61b255243d91ca651..9b3fcdd51454fb257521b47ac35b26703c5c86f7 100644
--- "a/RuoYi-Geek-Electron/RuoYi-Geek-Electron\345\277\253\351\200\237\345\220\257\345\212\250.md"
+++ "b/RuoYi-Geek-Electron/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
@@ -2,7 +2,15 @@
RuoYi-Geek-Electron旨在为RuoYi-Geek-SpringBoot3与RuoYi-Geek-Vue3搭建一个舒适的窗口应用环境,并用装饰器简化开发。
-# 快速开始
+# 环境部署
+
+```bash
+Node.js (版本 18+、20+)
+electron (31.0.2)
+typescript (5.5.2)
+```
+
+# 快速启动
```bash
$ npm install
@@ -99,38 +107,54 @@ xxWorkerRunner.bind('test3', test3)
```
-# 联系我们:
-
-### 技术交流群 QQ:744785891
-
-欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆!
-
-
-
-### 商业合作😆
-
-我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。
-如果您有兴趣,请通过以下方式联系我们:
-
-
-
-
- QQ
- QQ号:2086232477
- |
-
- 微信
- 微信号:tantianming000
- |
-
-
-
-
- |
-
-
- |
-
-
-
-我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。
+# 在render下 绑定url 显示界面(以 "https://electron-vite.org/" 为例)
+
+1·修改App.vue
+ 确保加载的URL是"https://electron-vite.org/"
+
+```
+
+
+```
+
+2. 修改 `IndexWindow`类
+ 确保 `IndexWindow`类链接到index.html
+
+```
+static onCreate(context: Electron.CrossProcessExports.BrowserWindow): void {
+ context.on('ready-to-show', () => {
+ context.show()
+ })
+
+ context.webContents.setWindowOpenHandler((details) => {
+ shell.openExternal(details.url)
+ return { action: 'deny' }
+ })
+ if (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'))
+ }
+ }
+}
+```
+
+3. 确保 `index.html`文件正确配置
+ 确保 `index.html`文件中有一个 ``元素,并且包含了加载 `main.ts`的脚本
+
+```
+
+
+
+
+```
+
+4. 确保Vue应用程序正确挂载
+ 在 `main.ts`中,确保Vue应用程序挂载到 `index.html`中的 `#app`元素
+
+```
+createApp(App).mount('#app')
+```
diff --git "a/RuoYi-Geek-Electron/3.\351\241\271\347\233\256\347\273\223\346\236\204.md" "b/RuoYi-Geek-Electron/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
new file mode 100644
index 0000000000000000000000000000000000000000..ba37b80a9b5c353d7c4e8744e440e149ffd8570d
--- /dev/null
+++ "b/RuoYi-Geek-Electron/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
@@ -0,0 +1,24 @@
+# RuoYi-Geek-Electron项目结构
+
+```plaintext
+├── src //源代码(ts)
+│ ├── main //主进程
+│ │ ├── annotation // 注解
+│ │ │ ├── BindMapping.ts //绑定映射
+│ │ │ └── WorkerRunner.ts //工作线程运行器
+│ │ └── utils //工具
+│ │ │ ├── common.ts // 常用工具函数
+│ │ │ ├── executeJavaScript.ts // 执行 JavaScript 代码的工具函数
+│ │ │ ├── execUtils.ts // 其他执行相关的工具函数
+│ │ │ ├── fileUtils.ts // 文件操作相关的工具函数
+│ │ │ ├── jsonUtils.ts // JSON 处理相关的工具函数
+│ │ │ └── puppeteer.ts // 使用 Puppeteer 库的相关代码
+│ │ └── window //窗口相关
+│ │ │ ├── BaseWindow.ts //基础窗口
+│ │ │ └── IndexWindow.ts //主窗口
+│ │ └── index.ts // 入口
+│ ├── preload //预加载
+│ └── renderer //渲染进程
+├── electron.vite.config.ts // Vite 配置文件
+└── package.json // 项目配置文件
+```
diff --git "a/RuoYi-Geek-Electron/electron\345\260\217\347\231\275\345\255\246\344\271\240\342\200\224js\346\226\207\344\273\266\347\220\206\350\247\243.md" "b/RuoYi-Geek-Electron/electron\345\260\217\347\231\275\345\255\246\344\271\240\342\200\224js\346\226\207\344\273\266\347\220\206\350\247\243.md"
deleted file mode 100644
index 48b9219bd8171c83575837e7944e8fdb42d1c02e..0000000000000000000000000000000000000000
--- "a/RuoYi-Geek-Electron/electron\345\260\217\347\231\275\345\255\246\344\271\240\342\200\224js\346\226\207\344\273\266\347\220\206\350\247\243.md"
+++ /dev/null
@@ -1,182 +0,0 @@
-# Electron学习笔记
-
---基于框架学习
-
-# 主进程index.js
-
-### getwindow()
-
-```bash
- static getWindow() {
- if (!this.browserWindow) {
- this.browserWindow = new electron.BrowserWindow(this.browserWindowOptions);
- this.onCreate(this.browserWindow);
- return this.browserWindow;
- } else {
- return this.browserWindow;
- }
- }
-}
-```
-
-定义了一个静态方法 getWindow,用于获取或创建一个 Electron 的浏览器窗口。具体功能如下:
-
-1. 检查 this.browserWindow 是否存在。
-2. 如果不存在,则创建一个新的 BrowserWindow 实例,并调用 onCreate 方法进行初始化,最后返回该实例。
-3. 如果已存在,则直接返回现有的 browserWindow。
-
-
-
-### 配置应用主窗口
-
-```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
-
-
-
- Electron
-
-
-
-
-
-
-
-
-
-
-```
-
-配置了内容安全策略,引入了必要的JavaScript模块和CSS样式文件。页面主体中有一个 ``元素,用于作为前端框架的挂载点或放置主要内容。
diff --git "a/RuoYi-Geek-Electron/image/2.\345\277\253\351\200\237\345\220\257\345\212\250/1737817317053.png" "b/RuoYi-Geek-Electron/image/2.\345\277\253\351\200\237\345\220\257\345\212\250/1737817317053.png"
new file mode 100644
index 0000000000000000000000000000000000000000..1fd01cc0d253d8ff858d049882271bc2897d3502
Binary files /dev/null and "b/RuoYi-Geek-Electron/image/2.\345\277\253\351\200\237\345\220\257\345\212\250/1737817317053.png" differ
diff --git "a/RuoYi-Geek-SpringBoot3/1.\347\256\200\344\273\213.md" "b/RuoYi-Geek-SpringBoot3/1.\347\256\200\344\273\213.md"
new file mode 100644
index 0000000000000000000000000000000000000000..6fe0cfa82e883825b6b4525aa015608b790a3077
--- /dev/null
+++ "b/RuoYi-Geek-SpringBoot3/1.\347\256\200\344\273\213.md"
@@ -0,0 +1,121 @@
+# 简介
+
+RuoYi-Geek-SpringBoot3 是基于Spring Boot 3 和 RuoYi-Geek 框架开发的开源项目,旨在提供一个高效、灵活、易用的后台管理系统解决方案。它结合了 RuoYi 的优秀特性和 Spring Boot 3 的新功能,适合快速开发企业级应用。
+
+# 主要特性
+
+完全响应式布局(支持电脑、平板、手机等所有主流设备)
+强大的一键生成功能(包括控制器、模型、视图、菜单等)
+支持多数据源,简单配置即可实现切换。
+支持按钮及数据权限,可自定义部门数据权限。
+对常用js插件进行二次封装,使js代码变得简洁,更加易维护
+完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
+Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。
+国际化支持,服务端及客户端支持
+完善的日志记录体系简单注解即可实现
+支持服务监控,数据监控,缓存监控功能。
+
+# 技术选型
+
+**1. 系统环境**
+java 17
+maven-jar-plugin 3.1.1
+Apache Maven 4.0.0
+httpclient 4.5.14
+commons.io 2.17.0
+commons.collections 3.2.2
+
+**2. 主框架**
+spring-boot 3.4.0
+org.springframework.boot:spring-boot-dependencies:3.4.0
+mybatis-spring-boot 3.0.3
+springdoc 2.1.0
+knife4j 2.1.0
+
+**3. 持久层**
+druid 1.2.23
+dynamic 3.5.2
+mysql 8.3.0
+jaxb-api 2.3.1 & jaxb 4.0.5
+oshi 6.6.5
+pagehelper.boot 2.1.0
+fastjson 2.0.53
+jackson 2.18.0
+
+# 内置功能
+
+1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
+2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
+3. 岗位管理:配置系统用户所属担任职务。
+4. 菜单管理:配置系统菜单,操作权限,按钮权限标识等。
+5. 角色管理:角色菜单权限分配、设置角色按机构进行数据范围权限划分。
+6. 字典管理:对系统中经常使用的一些较为固定的数据进行维护。
+7. 参数管理:对系统动态配置常用参数。
+8. 通知公告:系统通知公告信息发布维护。
+9. 操作日志:系统正常操作日志记录和查询;系统异常信息日志记录和查询。
+10. 登录日志:系统登录日志记录查询包含登录异常。
+11. 在线用户:当前系统中活跃用户状态监控。
+12. 定时任务:在线(添加、修改、删除)任务调度包含执行结果日志。
+13. 代码生成:前后端代码的生成(java、html、xml、sql)支持CRUD下载 。
+14. 系统接口:根据业务代码自动生成相关的api接口文档。
+15. 服务监控:监视当前系统CPU、内存、磁盘、堆栈等相关信息。
+16. 缓存监控:对系统的缓存信息查询,命令统计等。
+17. 在线构建器:拖动表单元素生成相应的HTML代码。
+18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
+19. 支付场景
+20. 第三方登录场景
+21. 中间件场景
+
+# 平台简介
+
+本平台是一套全部开源的快速开发平台,毫无保留给个人及企业免费使用。
+
+* 前端采用Vue3、Element Plus。
+* 后端采用Spring Boot3、Spring Security、Redis & Jwt。
+* 权限认证使用Jwt,支持多终端认证系统。
+* 支持加载动态权限菜单,多方式轻松权限控制。
+* 高效率开发,使用代码生成器可以一键生成前后端代码。
+* 多数据源与分库分表默认集成
+* 所有非基本模块可随意插拔,让开发更加简单高效
+* 提供了多个工具模块助力开发,如:在线接口模块、mybatis-jpa模块
+* 提供了多个常见业务模块简化开发,如:第三方认证模块、支付模块
+* 提供了多个常见的服务模块集成开发,如:websocket模块、minio模块
+
+# 主要特性
+
+**核心:模块化架构设计,支持各个模块的快速安拆,对第三方认证、第三方支付模块设计了基础的规范和基础模块。**
+
+1. **Spring Boot 3 支持** :
+
+* 基于 Spring Boot 3 开发,充分利用其新特性和性能优化。
+* 支持 Java 17 及以上版本。
+* 改用SpringBoot3+java17的更新的技术栈并改掉所有的弃用的方法。
+
+2. **RuoYi-Geek 框架** :
+
+* 继承了 RuoYi 的模块化设计,便于扩展和维护。
+* 提供丰富的后台管理功能,如用户管理、角色管理、权限管理等。
+
+3. **前后端分离** :
+
+* 前端采用 Vue、Element Plus,后端提供 Spring Boot3、Spring Security、Redis & Jwt,便于前后端独立开发和部署。
+
+4. **安全性** :
+
+* 集成 Spring Security,提供完善的权限控制和认证机制。
+* 支持 JWT 等现代认证方式。
+
+5. **数据库支持** :
+
+* 支持多种数据库,如 MySQL、Oracle 等。
+* 集成 MyBatis-Plus,简化数据库操作。
+
+6. **代码生成器** :
+
+* 升级了代码生成器(配合本项目的vue3版本才可用),使关联表生成更加简单。
+
+# 适用场景
+
+* **企业级后台管理系统** :适用于需要复杂权限管理和多模块集成的企业应用。
+* **快速开发平台** :适合需要快速搭建原型的项目,减少开发周期。
+* **学习与教学** :适合学习和研究 Spring Boot 3 和 RuoYi 框架的开发者。
diff --git "a/RuoYi-Geek-SpringBoot3/2.\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-SpringBoot3/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
new file mode 100644
index 0000000000000000000000000000000000000000..b06c954649d183002fb62727810489e35e98a589
--- /dev/null
+++ "b/RuoYi-Geek-SpringBoot3/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
@@ -0,0 +1,100 @@
+# 准备工作
+
+JDK >= 17
+Mysql (不限)
+Maven 3.9.9(测试版本)
+Redis >= 5.0
+Node >= 18
+
+# 快速启动
+
+## 项目下载到本地
+
+利用git将项目从远程仓库拉取到本地,用VSCode打开文件夹
+
+```
+git clone https://gitee.com/geek-xd/ruoyi-geek-springboot3.git
+```
+
+## 运行项目
+
+打开项目运行\ruoyi-admin \src\main \java\com\ruoyi \RuoYiApplication.java,出现如下图表示启动成功。
+
+
+
+# 必要配置
+
+## 修改数据库配置
+
+1./.vscode/setting.json ,按此路径,修改对应数据库端口号port、用户名username和密码password、数据库名称ry
+
+```
+"sqltools.connections": [
+ {
+ "mysqlOptions": {
+ "authProtocol": "default",
+ "enableSsl": "Disabled"
+ },
+ "previewLimit": 50,
+ "server": "localhost",
+ "port": 3306,
+ "driver": "MySQL",
+ "name": "localhost",
+ "database": "ry",
+ "username": "root",
+ "password": "123456"
+ }
+```
+
+2./rouyi-admin/src/resources/application-druid.yml ,按此路径,修改对应数据库用户名username和密码password、数据库名称ry
+
+```
+# 主库数据源
+ MASTER:
+ url: jdbc:mysql://127.0.0.1/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
+ username: root
+ password: 123456
+```
+
+## 修改服务器配置
+
+编辑\ruoyi-admin \src\main \resources\application.yml
+
+```
+# 开发环境配置
+server:
+ # 服务器的HTTP端口,默认为8080
+ port: 8080
+ servlet:
+ # 应用的访问路径
+ context-path: /
+```
+
+# 后端部署
+
+## 打包工程文件
+
+在ruoyi项目的bin目录下执行package.bat打包Web工程,生成war/jar包文件。
+然后会在项目下生成target文件夹包含war或jar
+
+```
+提示
+多模块版本会生成在ruoyi/ruoyi-admin模块下target文件夹
+```
+
+## 部署工程文件
+
+1、jar部署方式
+使用命令行执行:java –jar ruoyi.jar 或者执行脚本:/ruoyi-geek-springboot3-master/bin/run.bat
+
+2、war部署方式
+\pom.xml中的packaging修改为war,放入tomcat服务器webapps
+
+```
+ war
+```
+
+```
+提示
+多模块版本在/ruoyi-admin模块下修改pom.xml
+```
diff --git "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\351\241\271\347\233\256\347\273\223\346\236\204-x.md" "b/RuoYi-Geek-SpringBoot3/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
similarity index 75%
rename from "RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\351\241\271\347\233\256\347\273\223\346\236\204-x.md"
rename to "RuoYi-Geek-SpringBoot3/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
index d84840c1138ea4838e392a77c7437a27e59caadd..cfcfa5ed2d4393c58825655b154c786fb1f4befa 100644
--- "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\351\241\271\347\233\256\347\273\223\346\236\204-x.md"
+++ "b/RuoYi-Geek-SpringBoot3/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
@@ -1,80 +1,74 @@
-
-# RuoYi-Geek-SpringBoot3项目结构
-
-```bash
-├── ruoyi-admin // 管理后台模块
-│ ├── src/main
-│ │ ├── java/com/ruoyi //项目的 Java 源代码
-│ │ │ └── web // Web 相关的 Java 类
-│ │ │ ├── RuoYiApplication.java //应用程序主类,用于启动应用程序。
-│ │ │ └── RuoYiServletInitializer.java //Servlet 初始化类
-│ │ └── resources //资源文件
-│ └── target //输出目录
-│ └── pom.xml //配置文件
-├── ruoyi-auth //认证模块
-│ ├── ruoyi-auth-common // 通用模块或库
-│ ├── ruoyi-auth-starter // 启动器
-│ ├── ruoyi-oauth-justauth // OAuth 认证和授权
-│ ├── ruoyi-oauth-wx //微信认证和授权。
-│ ├── ruoyi-tfa-email // 邮件双因素认证
-│ ├── ruoyi-tfa-phone // 手机双因素认证
-│ └── pom.xml //配置文件
-├── ruoyi-common //公共模块
-│ ├── src/main/java/com/ruoyi/common
-│ │ ├── annotation // 自定义注解
-│ │ ├── config // 配置类
-│ │ ├── constant // 常量类
-│ │ ├── core // 核心业务逻辑类
-│ │ ├── enums // 缓存枚举类。
-│ │ ├── exception // 异常处理类。
-│ │ ├── filter // 过滤器类。
-│ │ ├── service // 服务层接口和实现类。
-│ │ ├── utils // 工具类。
-│ │ └── xss // 与跨站脚本(XSS)防护相关的类。
-├── ruoyi-framework //框架模块
-│ ├── src/main/java/com/ruoyi/framework
-│ │ ├── aspectj //AOP切面
-│ │ ├── config // 配置类
-│ │ ├── datasource // 数据源配置
-│ │ ├── interceptor // 拦截器
-│ │ ├── manager // 管理器
-│ │ ├── security // 安全配置
-│ │ └── web // Web 相关配置
-│ ├── generated-sources // 注解处理器生成的源代码文件
-│ ├── generated-test-sources // 测试注解处理器生成的源代码文件
-├── ruoyi-middleware //中间件模块
-│ ├── ruoyi-middleware-minio // MinIO存储服务
-│ ├── ruoyi-middleware-rabbitmq // 与RabbitMQ消息队列服务
-│ ├── ruoyi-middleware-redis // Redis缓存服务
-│ └── ruoyi-middleware-starter // 中间件启动器
-├── ruoyi-models //模型模块
-│ ├── ruoyi-generator // 代码生成器
-│ ├── ruoyi-models-starter // 模型启动器
-│ ├── ruoyi-online // 在线模块
-│ ├── ruoyi-quartz // 定时任务
-├── ruoyi-pay //支付模块
-│ ├── ruoyi-pay-alipay // 支付宝支付
-│ ├── ruoyi-pay-common // 通用支付组件
-│ ├── ruoyi-pay-sqb // SQB 支付
-│ ├── ruoyi-pay-starter // pay启动器
-│ ├── ruoyi-pay-wx // 微信支付
-└── ruoyi-plugins //插件模块
-│ ├── ruoyi-alibaba-oss // 阿里云 OSS 存储
-│ ├── ruoyi-atomikos // Atomikos事务管理
-│ ├── ruoyi-ehcache // Ehcache 缓存
-│ ├── ruoyi-mybatis-interceptor // MyBatis 拦截
-│ ├── ruoyi-mybatis-jpa // MyBatis 和 JPA 集成
-│ ├── ruoyi-mybatis-plus // MyBatis Plus 扩展
-│ ├── ruoyi-netty // Netty 网络编程
-│ ├── ruoyi-plugins-starter // 插件启动器
-│ ├── ruoyi-websocket // WebSocket支持
-├── ruoyi-system //系统模块
-├── sql //SQL脚本目录
-│ ├── auth.sql //数据库认证SQL 脚本。
-│ ├── create_database.sql // 创建数据库 SQL 脚本。
-│ ├── gen.sql // 生成相关数据SQL 脚本。
-│ ├── online.sql // 在线服务相关SQL 脚本。
-│ ├── pay.sql // 支付相关的 SQL 脚本。
-│ ├── quartz.sql // Quartz 定时任务相关的 SQL 脚本。
-│ └── ry_20230223.sql // 系统初始数据 SQL 脚本。
-```
+# RuoYi-Geek-SpringBoot3项目结构
+
+```plaintext
+├── vscode
+│ ├── launch.json //配置调试会话
+│ └── settings.json //自定义 Visual Studio Code 设置
+├── ruoyi-admin // 管理后台模块
+│ ├── src/main
+│ │ ├── java/com/ruoyi //项目的 Java 源代码
+│ │ │ └── web // Web 相关的 Java 类
+│ │ │ ├── RuoYiApplication.java //应用程序主类,用于启动应用程序。
+│ │ │ └── RuoYiServletInitializer.java //Servlet 初始化类
+│ │ └── resources //资源文件
+│ └── target //输出目录
+│ └── pom.xml //配置文件
+├── ruoyi-auth //认证模块
+├── ruoyi-common //公共模块
+│ ├── src/main/java/com/ruoyi/common
+│ │ ├── annotation // 自定义注解
+│ │ ├── config // 配置类
+│ │ ├── constant // 常量类
+│ │ ├── core // 核心业务逻辑类
+│ │ ├── enums // 缓存枚举类
+│ │ ├── exception // 异常处理类
+│ │ ├── filter // 过滤器类
+│ │ ├── service // 服务层接口和实现类
+│ │ ├── utils // 工具类
+│ │ └── xss // 与跨站脚本(XSS)防护相关的类
+│ └── pom.xml //配置文件
+├── ruoyi-framework //框架模块
+│ ├── src/main/java/com/ruoyi/framework
+│ │ ├── aspectj //AOP切面
+│ │ ├── config // 配置类
+│ │ ├── datasource // 数据源配置
+│ │ ├── interceptor // 拦截器
+│ │ ├── manager // 管理器
+│ │ ├── security // 安全配置
+│ │ └── web // Web 相关配置
+│ └── pom.xml //配置文件
+├── ruoyi-middleware //中间件模块
+│ ├── ruoyi-middleware-minio // MinIO存储服务
+│ ├── ruoyi-middleware-rabbitmq // 与RabbitMQ消息队列服务
+│ ├── ruoyi-middleware-redis // Redis缓存服务
+│ └── ruoyi-middleware-starter // 中间件启动器
+│ └── pom.xml //配置文件
+├── ruoyi-models //模型模块
+│ ├── ruoyi-generator // 代码生成器
+│ ├── ruoyi-models-starter // 模型启动器
+│ ├── ruoyi-online // 在线模块
+│ └── ruoyi-quartz // 定时任务
+│ └── pom.xml //配置文件
+├── ruoyi-pay //支付模块
+└── ruoyi-plugins //插件模块
+│ ├── ruoyi-alibaba-oss // 阿里云 OSS 存储
+│ ├── ruoyi-atomikos // Atomikos事务管理
+│ ├── ruoyi-ehcache // Ehcache 缓存
+│ ├── ruoyi-mybatis-interceptor // MyBatis 拦截
+│ ├── ruoyi-mybatis-jpa // MyBatis 和 JPA 集成
+│ ├── ruoyi-mybatis-plus // MyBatis Plus 扩展
+│ ├── ruoyi-netty // Netty 网络编程
+│ ├── ruoyi-plugins-starter // 插件启动器
+│ └── ruoyi-websocket // WebSocket支持
+│ └── pom.xml //配置文件
+├── ruoyi-system //系统模块
+├── sql //SQL脚本目录
+│ ├── auth.sql //数据库认证SQL 脚本。
+│ ├── create_database.sql // 创建数据库 SQL 脚本。
+│ ├── gen.sql // 生成相关数据SQL 脚本。
+│ ├── online.sql // 在线服务相关SQL 脚本。
+│ ├── pay.sql // 支付相关的 SQL 脚本。
+│ ├── quartz.sql // Quartz 定时任务相关的 SQL 脚本。
+│ └── ry_20230223.sql // 系统初始数据 SQL 脚本。
+└── pom.xml //配置文件
+```
diff --git "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\345\277\253\351\200\237\345\220\257\345\212\250.md"
deleted file mode 100644
index a2da8e74900b411e82d8ad8f081dfbe1d439657b..0000000000000000000000000000000000000000
--- "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\345\277\253\351\200\237\345\220\257\345\212\250.md"
+++ /dev/null
@@ -1,63 +0,0 @@
-# 快速启动
-
-## 项目下载到本地
-
-利用git将项目从远程仓库拉取到本地,用VSCode打开文件夹
-
-```
-git clone https://gitee.com/geek-xd/ruoyi-geek-springboot3.git
-```
-
-## 配置数据库
-
-rouyi-geek-springboot3 —— rouyi-admin —— src ——resources —— application-druid.yml ,按此路径,修改对应数据库用户名username和密码password、数据库名称ry
-
-```
-# 主库数据源
- MASTER:
- url: jdbc:mysql://127.0.0.1/ry?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
- username: root
- password: 123456
-```
-
-运行数据库文件,此过程会用到sql文件的存储地址,即rouyi-geek-springboot3 —— sql的路径
-
-## 运行项目
-
-VSCode中运行,出现RYGeek表示成功
-
-# 联系我们:
-
-### 技术交流群 QQ:744785891
-
-欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆!
-
-
-
-### 商业合作😆
-
-我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。
-如果您有兴趣,请通过以下方式联系我们:
-
-
-
-
- QQ
- QQ号:2086232477
- |
-
- 微信
- 微信号:tantianming000
- |
-
-
-
-
- |
-
-
- |
-
-
-
-我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。
diff --git "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\347\256\200\344\273\213.md" "b/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\347\256\200\344\273\213.md"
deleted file mode 100644
index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..0000000000000000000000000000000000000000
diff --git "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\351\241\271\347\233\256\347\273\223\346\236\204.md" "b/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\351\241\271\347\233\256\347\273\223\346\236\204.md"
deleted file mode 100644
index eb9a52c103b88dd60140fbae4960d075bf6b3203..0000000000000000000000000000000000000000
--- "a/RuoYi-Geek-SpringBoot3/RuoYi-Geek-SpringBoot3\351\241\271\347\233\256\347\273\223\346\236\204.md"
+++ /dev/null
@@ -1,48 +0,0 @@
-本项目是基于 Spring Boot 的后台管理系统,对若依(RuoYi)框架进行完善升级,它具有模块化设计,灵活的系统配置和权限管理等功能。以下是一个典型的框架目录结构示例:
-
-```
-ruoyi-geek-project/
-├── ruoyi-admin # 后台管理模块
-│ ├── src
-│ │ ├── main
-│ │ ├── java # Java源代码
-│ │ │ └── com/ruoyi # 主要包路径
-│ │ │ ├── web
-│ │ │ │ │──controller #响应输入,处理请求
-│ │ │ │ │── core #基础服务
-│ │ │ ├── RuoYiApplication.java # 启动类
-│ │ │ ├── RuoYiServletInitializer.java # Servlet容器
-│ │ │
-│ │ └── resources # 资源文件
-│ │ ├── application-auth.yml # app配置
-│ │ ├── application-druid.yml # 主数据源配置
-│ │ ├── application-pay.yml # 支付宝配置
-│ │ └── application.yml # 开发环境配置
-│ └── pom.xml # Maven依赖管理
-├── ruoyi-framework # 系统框架模块
-│ ├── src
-│ │ ├── main
-│ │ ├── aspectj #数据处理
-│ │ │── config #基础配置
-│ │ │── datasource #数据源配置
-│ │ │── interceptor #拦截器
-│ │ │── manager #业务逻辑管理层
-│ │ │──security #应用安全验证
-│ │ └── web # 交互配置
-│ └── pom.xml # Maven依赖管理
-├── ruoyi-middleware # 中间件配置模块
-│
-├── ruoyi-models # 数据模型配置
-│
-├── ruoyi-pay # 支付接口配置
-│
-├── ruoyi-plugins # 扩展功能
-│
-├── ruoyi-system # 系统管理模块
-│ ├── src
-│ │ ├── main
-│ │ │ ├── java # 框架相关的Java源码
-│ │ │ └── resources # 框架相关的资源文件
-│ └── pom.xml # Maven依赖管理
-└── sql # 数据库脚本目录
-```
diff --git a/RuoYi-Geek-SpringBoot3/images/captcha-imag.png b/RuoYi-Geek-SpringBoot3/images/captcha-imag.png
new file mode 100644
index 0000000000000000000000000000000000000000..8f9904cdf98ede6a537f17467cc9e78fb60e29f9
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/captcha-imag.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/captcha-request.png b/RuoYi-Geek-SpringBoot3/images/captcha-request.png
new file mode 100644
index 0000000000000000000000000000000000000000..fa082614b11e0be54380d6a8acd505fa849290b7
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/captcha-request.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/del.png b/RuoYi-Geek-SpringBoot3/images/del.png
new file mode 100644
index 0000000000000000000000000000000000000000..e911b4372e9db488e060438d42ba3f0d0155e5d3
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/del.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/details.png b/RuoYi-Geek-SpringBoot3/images/details.png
new file mode 100644
index 0000000000000000000000000000000000000000..8b03d1da7224856100d99e96e0499df5d4214199
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/details.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/get.png b/RuoYi-Geek-SpringBoot3/images/get.png
new file mode 100644
index 0000000000000000000000000000000000000000..bcba3a2b7d6cce6e93309e88ec08e05580fd8a36
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/get.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/getInfo-request.png b/RuoYi-Geek-SpringBoot3/images/getInfo-request.png
new file mode 100644
index 0000000000000000000000000000000000000000..cd6252a33b2a069406e575acf3db25f7a721db4e
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/getInfo-request.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/list1.png b/RuoYi-Geek-SpringBoot3/images/list1.png
new file mode 100644
index 0000000000000000000000000000000000000000..6e3706d1bfbbfb20a236a793a3c253294ca3fbec
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/list1.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/login-request.png b/RuoYi-Geek-SpringBoot3/images/login-request.png
new file mode 100644
index 0000000000000000000000000000000000000000..b3434e9ac535170996894de586c5a9e3ed1fca9f
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/login-request.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/post.png b/RuoYi-Geek-SpringBoot3/images/post.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dbd07e6417676744e3ab043d97c1171923d105d
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/post.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/post1.png b/RuoYi-Geek-SpringBoot3/images/post1.png
new file mode 100644
index 0000000000000000000000000000000000000000..4ff42f91aba652916a7d3ccb057df3d683f3883c
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/post1.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/sysdept1.png b/RuoYi-Geek-SpringBoot3/images/sysdept1.png
new file mode 100644
index 0000000000000000000000000000000000000000..fe93e9a812faf011d4cf6e6301d775022e2fbf7a
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/sysdept1.png differ
diff --git a/RuoYi-Geek-SpringBoot3/images/update.png b/RuoYi-Geek-SpringBoot3/images/update.png
new file mode 100644
index 0000000000000000000000000000000000000000..0e9b2996d26d0598fded75f447c53f5daea8f645
Binary files /dev/null and b/RuoYi-Geek-SpringBoot3/images/update.png differ
diff --git "a/RuoYi-Geek-SpringBoot3/images/\346\210\220\345\212\237.png" "b/RuoYi-Geek-SpringBoot3/images/\346\210\220\345\212\237.png"
new file mode 100644
index 0000000000000000000000000000000000000000..f4313d6bd95f27b6783586e3c245dba2a8e4ac0e
Binary files /dev/null and "b/RuoYi-Geek-SpringBoot3/images/\346\210\220\345\212\237.png" differ
diff --git "a/RuoYi-Geek-SpringBoot3/images/\346\216\222\351\231\244.png" "b/RuoYi-Geek-SpringBoot3/images/\346\216\222\351\231\244.png"
new file mode 100644
index 0000000000000000000000000000000000000000..b81f60d47b3925763f353d27daf543c02b3a79b2
Binary files /dev/null and "b/RuoYi-Geek-SpringBoot3/images/\346\216\222\351\231\244.png" differ
diff --git "a/RuoYi-Geek-SpringBoot3/images/\346\265\201\347\250\213\345\233\2761.png" "b/RuoYi-Geek-SpringBoot3/images/\346\265\201\347\250\213\345\233\2761.png"
new file mode 100644
index 0000000000000000000000000000000000000000..18618bf1a59573dd8d4ec0ec1dd9744ca96e3636
Binary files /dev/null and "b/RuoYi-Geek-SpringBoot3/images/\346\265\201\347\250\213\345\233\2761.png" differ
diff --git "a/RuoYi-Geek-Vue3/RuoYi-Geek-Vue3\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-Vue3/1.\347\256\200\344\273\213.md"
similarity index 38%
rename from "RuoYi-Geek-Vue3/RuoYi-Geek-Vue3\345\277\253\351\200\237\345\220\257\345\212\250.md"
rename to "RuoYi-Geek-Vue3/1.\347\256\200\344\273\213.md"
index e78e7e7d0f97f5355894266b62a303d326e22a01..9b36aee86fb8f511bdd2ac4edd6e5280bffb49c2 100644
--- "a/RuoYi-Geek-Vue3/RuoYi-Geek-Vue3\345\277\253\351\200\237\345\220\257\345\212\250.md"
+++ "b/RuoYi-Geek-Vue3/1.\347\256\200\344\273\213.md"
@@ -1,33 +1,30 @@
-# 当前版本是3.8.7.3
+# 项目简介
-本人的其他两个推荐搭配的项目
+本框架为基于SpringBoot3+Vue3前后端分离的Java快速开发框架。目前新增了threejs支持,并配合若依极客生态框架后端的Springboot 3版本,该版本在支付模块和第三方登录模块方面进行了基础设计工作,并针对代码生成器进行了显著增强,现在支持字段级别的关联表操作。此外,我们新增了在线接口开发模块,该模块允许用户通过在线方式使用mybatis来修改接口。其他功能模块也正在持续更新和完善中。
-1. [RuoYi-App-Geek: 这是若依极客生态的小程序版本 (gitee.com)](https://gitee.com/geek-xd/geek-uniapp-vue3-uview-plus-uchart)
-2. [RuoYi-SpringBoot3-Geek: 这是若依极客生态的SpringBoot3版本 (gitee.com)](https://gitee.com/geek-xd/ruoyi-spring-boot3-geek.git)
+# 主要特性
-与本项目同为一个作者开发,兼容性最好,学习成本最低
+* 完全响应式布局(支持电脑、平板、手机等所有主流设备)
+* 强大的一键生成功能(包括控制器、模型、视图、菜单等)
+* 支持多数据源,简单配置即可实现切换。
+* 支持按钮及数据权限,可自定义部门数据权限。
+* 对常用js插件进行二次封装,使js代码变得简洁,更加易维护
+* 完善的XSS防范及脚本过滤,彻底杜绝XSS攻击
+* Maven多项目依赖,模块及插件分项目,尽量松耦合,方便模块升级、增减模块。
+* 国际化支持,服务端及客户端支持
+* 完善的日志记录体系简单注解即可实现
+* 支持服务监控,数据监控,缓存监控功能
+* 提供了多个常见业务模块简化开发,如:第三方认证模块、支付模块
-## 前端运行
+# 技术选型
-```bash
-# 克隆项目
-git clone https://gitee.com/geek-xd/ruoyi-geek-vue3.git
+* **前端框架** :采用高性能的渐进式JavaScript框架 ``Vue.js``,版本3.x,以构建用户界面。
+* **状态管理** :利用 ``Pinia``进行高效、灵活的全局状态管理,它为Vue应用提供了一个更简单直接的状态管理模式。
+* **HTTP客户端** :集成 ``Axios``作为Promise化的HTTP客户端,用于向外部服务发起请求并处理响应。
+* **UI组件库** :选用 ``Element Plus``,一个基于Vue 3.0的桌面端UI组件库,提供了丰富的组件来快速搭建美观的应用界面。
+* **构建工具** :使用 ``Vite``作为新一代的前端构建工具,凭借其快速冷启动和即时模块热替换(HMR)特性,显著提升开发效率。
-# 进入项目目录
-cd RuoYi-Vue3
-
-# 安装依赖
-yarn --registry=https://registry.npmmirror.com
-
-# 启动服务
-yarn dev
-
-# 构建测试环境 yarn build:stage
-# 构建生产环境 yarn build:prod
-# 前端访问地址 http://localhost:80
-```
-
-## 内置功能
+# 内置功能
1. 用户管理:用户是系统操作者,该功能主要完成系统用户配置。
2. 部门管理:配置系统组织机构(公司、部门、小组),树结构展现支持数据权限。
@@ -47,56 +44,3 @@ yarn dev
16. 缓存监控:对系统的缓存信息查询,命令统计等。
17. 在线构建器:拖动表单元素生成相应的HTML代码。
18. 连接池监视:监视当前系统数据库连接池状态,可进行分析SQL找出系统性能瓶颈。
-
-### 新加功能和增强功能演示
-
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-  |
-  |
-
-
-
-# 联系我们:
-
-### 技术交流群 QQ:744785891
-
-欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆!
-
-
-
-### 商业合作😆
-
-我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。
-如果您有兴趣,请通过以下方式联系我们:
-
-
-
-
- QQ
- QQ号:2086232477
- |
-
- 微信
- 微信号:tantianming000
- |
-
-
-
-
- |
-
-
- |
-
-
-
-我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。
diff --git "a/RuoYi-Geek-Vue3/2.\345\277\253\351\200\237\345\220\257\345\212\250.md" "b/RuoYi-Geek-Vue3/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
new file mode 100644
index 0000000000000000000000000000000000000000..5f7765acb453a7cffdb06537f1abebd9b4c5d787
--- /dev/null
+++ "b/RuoYi-Geek-Vue3/2.\345\277\253\351\200\237\345\220\257\345\212\250.md"
@@ -0,0 +1,50 @@
+# 准备工作
+
+```
+JDK >= 17 (推荐17版本)
+Node >= 18
+```
+
+# 运行系统
+
+前往 `Gitee`下载页面([Geek-XD/RuoYi-Geek-Vue3 - 码云 - 开源中国 (gitee.com)](https://gitee.com/geek-xd/ruoyi-geek-vue3))下载解压到工作目录
+
+## 前端运行
+
+```bash
+# 克隆项目
+git clone https://gitee.com/geek-xd/ruoyi-geek-vue3.git
+
+# 进入项目目录
+cd ruoyi-geek-vue3
+
+# 安装依赖
+npm install --registry=https://registry.npmmirror.com
+
+# 启动服务
+yarn dev
+
+# 构建测试环境 yarn build:stage
+# 构建生产环境 yarn build:prod
+# 前端访问地址 http://localhost:80
+```
+
+4、打开浏览器,输入:([http://localhost:80 ](http://localhost/)) 默认账户/密码 `admin/admin123`)
+若能正确展示登录页面,并能成功登录,菜单及页面展示正常,则表明环境搭建成功
+
+
+# 前端部署
+
+当项目开发完毕,只需要运行一行命令就可以打包你的应用
+
+```bash
+# 打包正式环境
+npm run build:prod
+
+# 打包预发布环境
+npm run build:stage
+```
+
+构建打包成功之后,会在根目录生成 `dist` 文件夹,里面就是构建打包好的文件,通常是 `***.js` 、`***.css`、`index.html` 等静态文件。
+
+通常情况下 `dist` 文件夹的静态文件发布到你的 nginx 或者静态服务器即可,其中的 `index.html` 是后台服务的入口页面。
diff --git "a/RuoYi-Geek-Vue3/3.\351\241\271\347\233\256\347\273\223\346\236\204.md" "b/RuoYi-Geek-Vue3/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
new file mode 100644
index 0000000000000000000000000000000000000000..1959a2716dd0adfaac61ac5296424c112765f241
--- /dev/null
+++ "b/RuoYi-Geek-Vue3/3.\351\241\271\347\233\256\347\273\223\346\236\204.md"
@@ -0,0 +1,31 @@
+# RuoYi-Geek-Vue3项目结构
+
+```plaintext
+├── node_modules # 第三方依赖库
+├── public # 静态资源
+├── src # 源代码文件
+│ ├── annotation # TypeScript
+│ │ ├── Api.ts # API接口定义
+│ │ ├── Schema.ts # 数据模式定义
+│ │ └── SchemaComponent.ts # Schema组件定义
+│ ├── api # API请求
+│ ├──assets # 静态资源
+│ ├──components # Vue组件
+│ ├── directive # 自定义指令
+│ ├── hook # Hook
+│ ├── layout # 布局
+│ ├── plugins # 插件
+│ ├── router # 路由
+│ ├── store # Vuex状态管理
+│ ├── types # 类型定义
+│ ├── utils # 工具函数
+│ └── views # 视图
+│ ├──App.vue # 主入口
+│ ├── env.d.ts # 环境类型
+│ ├── env.d.ts # 环境类型
+│ ├──main.js # 应用启动
+│ ├──permission.js # 权限
+│ ├── settings.ts # 设置
+└── vite # Vite插件配置
+
+```