diff --git a/README.md b/README.md index 6cc0683f6a865a3f05c8a025e2c005dc5c994882..acf81114168fa905fa29cf84610e4e07ccde7fd3 100644 --- a/README.md +++ b/README.md @@ -12,7 +12,7 @@ 鉴于此,RuoYi-Geek生态应运而生。它旨在为广大开发者提供一个既保留原版本核心特性,又整合社区版优点的全新解决方案。在RuoYi-Geek中,我们深入调研了企业开发中常用的RuoYi扩展,并直接在框架中集成,确保开发者能够快速上手,高效开发。同时,我们采用了最新的SpringBoot3+Vue3技术栈,彻底移除了为了兼容Java1.8而保留的老旧方法。更为重要的是,我们为TypeScript开发环境加入了常用的tsconfig.json配置,使得开发者在VSCode等编辑器中能够获得更为舒适、便捷的语法提示体验。 -除此之外,我们还会为这个框架和它的小伙伴们注入更多超实用的工具,无论是日常开发还是企业级项目,都能轻松应对!想象一下,某个瞬间你可能会因为我们的一个小工具而效率爆表,简直像是开了外挂一样!我们真心希望这个框架能成为你的得力助手,让你的工作不再那么“苦逼”,变得更加有趣、高效、舒适。XD==😄 \\(@^0^@)/ +除此之外,我们还会为这个框架和它的小伙伴们注入更多超实用的工具,无论是日常开发还是企业级项目,都能轻松应对!想象一下,某个瞬间你可能会因为我们的一个小工具而效率爆表,简直像是开了外挂一样!我们真心希望这个框架能成为你的得力助手,让你的工作不再那么“苦逼”,变得更加有趣、高效、舒适。XD😄 \\(@^0^@)/ RuoYi-Geek不仅仅是一个简单的升级版本,更是对于RuoYi生态的一次全面优化与整合。我们相信,通过RuoYi-Geek,开发者将能够更为高效、愉悦地开发出优秀的企业级应用。 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" new file mode 100644 index 0000000000000000000000000000000000000000..d6b825456978c5e7201d6b42f56d9a780cbf5065 --- /dev/null +++ "b/RuoYi-Geek-App/RuoYi-Geek-App\345\277\253\351\200\237\345\220\257\345\212\250.md" @@ -0,0 +1,254 @@ +# 快速开始 + +**注意:** 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", + +# 功能演示 + + + + + + + + + + +
+ +# 附录 + +[Vue3 官网](https://cn.vuejs.org/); +[uniapp 官网](https://uniapp.dcloud.net.cn/); +[uView-plus 官网](https://uiadmin.net/uview-plus/); +[uCharts 官网](https://www.ucharts.cn/v2/#/); +[RuoYi 官网](http://ruoyi.vip/); + +# 联系我们: + +### 技术交流群 QQ:744785891 + +欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆! + +QQ二维码 + +### 商业合作😆 + +我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。 +如果您有兴趣,请通过以下方式联系我们: + + + + + + + + + + +
+ QQ
+ QQ号:2086232477 +
+ 微信
+ 微信号:tantianming000 +
+ QQ二维码 + + 微信二维码 +
+ +我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。 diff --git a/RuoYi-Geek-App/image/index.png b/RuoYi-Geek-App/image/index.png new file mode 100644 index 0000000000000000000000000000000000000000..8704d10adca1ef70bc7c0baa64f80f3f93623273 Binary files /dev/null and b/RuoYi-Geek-App/image/index.png differ diff --git a/RuoYi-Geek-App/image/mallMenu.png b/RuoYi-Geek-App/image/mallMenu.png new file mode 100644 index 0000000000000000000000000000000000000000..7aeeae058fc9ad9d745a630664fd9e49df80fed7 Binary files /dev/null and b/RuoYi-Geek-App/image/mallMenu.png differ diff --git a/RuoYi-Geek-App/image/template1.png b/RuoYi-Geek-App/image/template1.png new file mode 100644 index 0000000000000000000000000000000000000000..a4424624fe8d5ad628cf9436be6659f8ccf16e1c Binary files /dev/null and b/RuoYi-Geek-App/image/template1.png differ diff --git a/RuoYi-Geek-App/image/template2.png b/RuoYi-Geek-App/image/template2.png new file mode 100644 index 0000000000000000000000000000000000000000..bd522e054d71fb6c4a12b01554a1380080ff01de Binary files /dev/null and b/RuoYi-Geek-App/image/template2.png differ 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/RuoYi-Geek-Electron\345\277\253\351\200\237\345\220\257\345\212\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..482737985d7a5e37a4c78fb61b255243d91ca651 --- /dev/null +++ "b/RuoYi-Geek-Electron/RuoYi-Geek-Electron\345\277\253\351\200\237\345\220\257\345\212\250.md" @@ -0,0 +1,136 @@ +# Ruoyi-geek-electron + +RuoYi-Geek-Electron旨在为RuoYi-Geek-SpringBoot3与RuoYi-Geek-Vue3搭建一个舒适的窗口应用环境,并用装饰器简化开发。 + +# 快速开始 + +```bash +$ npm install +``` + +### 启动 + +```bash +$ npm run dev +``` + +### 构建 + +```bash +# For windows +$ npm run build:win + +# For macOS +$ npm run build:mac + +# For Linux +$ npm run build:linux +``` + +# 绑定事件 + +```ts + +class Test1Controller { + + // 相当于 ipcMain.on('test1',this.test1) + @BindMapping('test1','on') + test1(_event,data){} + + // 相当于 ipcMain.handle('test2',this.test2) + @BindMapping('test2','handle') + test2(_event,data){} + + // 相当于 ipcMain.handle('test3',this.test2) + @BindMapping + test3(_event,data){} +} + +// 相当于 +// ipcMain.handle('test4',Test2Controller.test1) +// ipcMain.handle('test5',Test2Controller.test1) +// 不会绑定静态方法 +@BindMapping +class Test2Controller { + test4(_event,data){} + test5(_event,data){} +} + +// 相当于 +// ipcMain.on('beastest6',Test2Controller.test1) +// ipcMain.on('beastest7',Test2Controller.test1) +// 不会绑定静态方法 +@BindMapping("beas","on") +class Test2Controller { + test6(_event,data){} + test7(_event,data){} +} + +``` + +# 子线程 + +约定线程交互数据结构 + +```ts +{ + name: string, + value: any +} +``` + +```ts +const xxWorkerRunner = new WorkerRunner(pathDir); +// WorkerRunner继承了Worker , 有Worker的所有方法 +// 增加了装饰器的方式绑定事件 +class XXWorkerRunner{ + + // 相当于 xxWorkerRunner.bind('test',this.test) + @xxWorkerRunner.bind('test1') + test(){} + + // 相当于 xxWorkerRunner.bind('test2',this.test2) + @xxWorkerRunner.BIND + test2(){} +} + +function test3(){} +xxWorkerRunner.bind('test3', test3) + +``` + +# 联系我们: + +### 技术交流群 QQ:744785891 + +欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆! + +QQ二维码 + +### 商业合作😆 + +我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。 +如果您有兴趣,请通过以下方式联系我们: + + + + + + + + + + +
+ QQ
+ QQ号:2086232477 +
+ 微信
+ 微信号:tantianming000 +
+ QQ二维码 + + 微信二维码 +
+ +我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。 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/RuoYi-Geek-Vue3\345\277\253\351\200\237\345\220\257\345\212\250.md" new file mode 100644 index 0000000000000000000000000000000000000000..2edca3e61e01a1f8ebb2382501571d30bbb2a3cd --- /dev/null +++ "b/RuoYi-Geek-Vue3/RuoYi-Geek-Vue3\345\277\253\351\200\237\345\220\257\345\212\250.md" @@ -0,0 +1,145 @@ +# 当前版本是3.8.7.3 + +本人的其他两个推荐搭配的项目 + +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) + +与本项目同为一个作者开发,兼容性最好,学习成本最低 + +## 前端运行 + +```bash +# 克隆项目 +git clone https://gitee.com/geek-xd/ruoyi-geek-vue3.git + +# 进入项目目录 +cd RuoYi-Vue3 + +# 安装依赖 +yarn --registry=https://registry.npmmirror.com + +# 启动服务 +yarn dev + +# 构建测试环境 yarn build:stage +# 构建生产环境 yarn build:prod +# 前端访问地址 http://localhost:80 +``` + +## Electron + +electron项目已经迁移至: + +https://gitee.com/geek-xd/ruoyi-geek-electron.git + +## 内置功能 + +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找出系统性能瓶颈。 + +### 新加功能和增强功能演示 + + + + + + + + + + + + + + +
+ +### 原有功能演示 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
+ +# 联系我们: + +### 技术交流群 QQ:744785891 + +欢迎所有对 RuoYi-Geek 感兴趣的开发者加入我们的社区😆! + +QQ二维码 + +### 商业合作😆 + +我们欢迎各类商业合作机会,无论是技术咨询、项目合作还是其他形式的合作,都期待与您携手共创未来。 +如果您有兴趣,请通过以下方式联系我们: + + + + + + + + + + +
+ QQ
+ QQ号:2086232477 +
+ 微信
+ 微信号:tantianming000 +
+ QQ二维码 + + 微信二维码 +
+ +我们期待着与您建立长期稳定的合作关系,并共同探索更多的可能性。 diff --git a/RuoYi-Geek-Vue3/image/code-edit.png b/RuoYi-Geek-Vue3/image/code-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..5fc972bb8efea327416eead31b463e99b540670e Binary files /dev/null and b/RuoYi-Geek-Vue3/image/code-edit.png differ diff --git a/RuoYi-Geek-Vue3/image/code-show.png b/RuoYi-Geek-Vue3/image/code-show.png new file mode 100644 index 0000000000000000000000000000000000000000..24378e8ef0c97f396bf52716fef2fdd11f5be9a5 Binary files /dev/null and b/RuoYi-Geek-Vue3/image/code-show.png differ diff --git a/RuoYi-Geek-Vue3/image/form-edit.png b/RuoYi-Geek-Vue3/image/form-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..4054d34309a656fb8cd553fcc173bd872da66648 Binary files /dev/null and b/RuoYi-Geek-Vue3/image/form-edit.png differ diff --git a/RuoYi-Geek-Vue3/image/logo.png b/RuoYi-Geek-Vue3/image/logo.png new file mode 100644 index 0000000000000000000000000000000000000000..dab35ca83c55015dbdb3d29a4df296c3c2ffb5f3 Binary files /dev/null and b/RuoYi-Geek-Vue3/image/logo.png differ diff --git a/RuoYi-Geek-Vue3/image/online-mb-code.png b/RuoYi-Geek-Vue3/image/online-mb-code.png new file mode 100644 index 0000000000000000000000000000000000000000..45a4973f560a076ab8335fd7b30dcb28b54fdbf8 Binary files /dev/null and b/RuoYi-Geek-Vue3/image/online-mb-code.png differ diff --git a/RuoYi-Geek-Vue3/image/online-mb-edit.png b/RuoYi-Geek-Vue3/image/online-mb-edit.png new file mode 100644 index 0000000000000000000000000000000000000000..6f3b3782323c451c31fcc7ba526f0363d6302763 Binary files /dev/null and b/RuoYi-Geek-Vue3/image/online-mb-edit.png differ diff --git a/RuoYi-Geek-Vue3/image/online-mb-list.png b/RuoYi-Geek-Vue3/image/online-mb-list.png new file mode 100644 index 0000000000000000000000000000000000000000..0e1c03201a15e9f1cbfb243cbd5db8a6fd1cb196 Binary files /dev/null and b/RuoYi-Geek-Vue3/image/online-mb-list.png differ diff --git "a/Ruoyi-Geek-electron\345\260\217\347\231\275\345\277\253\351\200\237\345\205\245\351\227\250/\347\263\273\347\273\237\350\256\244\350\257\206.md" "b/Ruoyi-Geek-electron\345\260\217\347\231\275\345\277\253\351\200\237\345\205\245\351\227\250/\347\263\273\347\273\237\350\256\244\350\257\206.md" deleted file mode 100644 index fad372789576fefb3e6509ca439de56b37873d6e..0000000000000000000000000000000000000000 --- "a/Ruoyi-Geek-electron\345\260\217\347\231\275\345\277\253\351\200\237\345\205\245\351\227\250/\347\263\273\347\273\237\350\256\244\350\257\206.md" +++ /dev/null @@ -1,3 +0,0 @@ -对electron的认识 -是一个桌面应用,主要分为主进程main(后台操作)、预加载preload(链接main-index)、渲染进程index(实现可视化),main和index通过进程通信链接。 -进程通信包括:渲染进程->主进程(单向)、渲染进程<->主进程(双向)、主进程->渲染进程。