diff --git a/README.md b/README.md index 3e85d45f..acbe1e63 100644 --- a/README.md +++ b/README.md @@ -1,434 +1,121 @@ -
- -
- -
- -
-

一个基于 RuoYi-Vue-Plus 的后端能力和 Soybean Admin 前端特性的现代化多租户管理系统

-

- Gitee - Github - vue - typescript - vite - naive-ui - license -

-
- -# 📢 重要通知 - -虽然 1.0.0 版本已经包含了完整的核心功能,但我们仍然建议: -- 在生产环境使用前进行充分测试 -- 关注项目更新,及时获取最新版本 -- 积极反馈问题,帮助我们快速迭代 - -**后续规划** -- 工作流引擎集成 -- 多语言国际化完善 -- 更多企业级功能模块 -- 性能优化和稳定性提升 -> 如果对该项目感兴趣,可以给一个 Star 支持一下,谢谢! -> 请大家踊跃提交 PR 和 Issue,一起完善这个项目 +# RuoYi-Plus-Soybean -# ❗开发前必看 - -

本项目强制使用 pnpm 构建,详细请看 安装步骤及说明

- -

后端需要替换代码生成模板与菜单 SQL,详细请看 代码生成与菜单更新

+## 📢 重要通知 +开发前请务必查看相关指南和文档,确保遵循项目规范和流程。 ## 📋 项目概述 +RuoYi-Plus-Soybean 是一个基于 RuoYi-Vue-Plus 的前端-后端一体化项目,旨在提供高效、可扩展的开发框架。它结合了现代前端技术和完善的后端架构,适用于企业级应用开发。 -RuoYi-Plus-Soybean 是一个现代化的企业级多租户管理系统,它结合了 RuoYi-Vue-Plus 的强大后端功能和 Soybean Admin 的现代化前端特性,为开发者提供了完整的企业管理解决方案。 - -### 🌟 项目特点 - -- **多租户架构**:完整支持SaaS多租户模式,灵活的租户管理能力 -- **现代前端技术栈**:基于Vue 3、TypeScript、Vite和Naive UI构建 -- **Monorepo工程管理**:使用pnpm workspaces管理多包结构 -- **丰富的组件库**:内置大量业务组件和布局选项 -- **主题定制**:支持多种布局模式和主题配色 -- **国际化**:内置多语言支持 -- **权限管理**:精细的基于角色的权限控制 +## 🌟 项目特点 +- **模块化架构**:便于组件复用与管理。 +- **完善的构建系统**:支持多环境构建,包括开发、测试和生产版本。 +- **代码规范**:集成 ESLint、UnoCSS 等工具,确保代码风格统一。 +- **国际化支持**:内置多语言功能,适配不同地区用户。 +- **状态管理**:使用现代状态管理工具,简化数据流管理。 +- **主题定制**:支持多种颜色调色板,提供灵活的 UI 定制能力。 ## 🛠️ 技术栈 - ### 前端 -- **核心框架**:Vue 3.5.x -- **开发语言**:TypeScript 5.8.x -- **构建工具**:Vite 6.2.x -- **UI组件库**:Naive UI 2.41.x -- **状态管理**:Pinia 3.0.x -- **路由**:Vue Router 4.5.x -- **HTTP客户端**:Axios/Alova -- **CSS**:UnoCSS -- **包管理器**:pnpm 8.x+ +- Vue 3 +- TypeScript +- UnoCSS +- Vite +- Tinymce(富文本编辑器) +- 可选模块:Alova、Axios、@ofetch � +- UI 组件:Material UI、Monaco Editor、SVG Icon Render -### 后端(与RuoYi-Vue-Plus兼容) -- **核心框架**:Spring Boot -- **安全框架**:Spring Security -- **权限认证**:Sa-Token -- **数据操作**:MyBatis-Plus -- **数据库**:MySQL +### 后端 +兼容 **RuoYi-Vue-Plus**,提供标准化 API 接口与服务端交互。 ## 🏗️ 项目结构 - -``` -root -├── build # 构建配置和插件 -│ ├── config # 构建配置文件 -│ └── plugins # Vite 插件 -├── docs # 文档和模板 -│ ├── java # 代码生成工具类 -│ └── template # 代码生成模板 -├── packages # Monorepo包 -│ ├── alova # 使用Alova的HTTP客户端实现 -│ ├── axios # 使用Axios的HTTP客户端实现 -│ ├── color # 颜色管理工具 -│ ├── hooks # 可复用的Vue组合函数 -│ ├── materials # UI组件和材料 -│ ├── ofetch # 使用ofetch的HTTP客户端实现 -│ ├── scripts # 构建和开发脚本 -│ ├── uno-preset # UnoCSS预设配置 -│ └── utils # 通用工具函数 -├── public # 静态资源 -├── src # 主应用源代码 -│ ├── assets # 静态资源(图片、图标) -│ ├── components # 可复用的 Vue 组件 -│ ├── constants # 应用常量 -│ ├── enum # TypeScript 枚举 -│ ├── hooks # Vue 组合函数 -│ ├── layouts # 页面布局 -│ ├── locales # 国际化 -│ ├── plugins # Vue 插件 -│ ├── router # Vue Router 配置 -│ ├── service # API 服务 -│ ├── store # Pinia 存储模块 -│ ├── styles # 全局样式 -│ ├── theme # 主题配置 -│ ├── typings # TypeScript 类型定义 -│ ├── utils # 工具函数 -│ └── views # 页面组件 -└── vite.config.ts # Vite 配置 -``` +- **packages/**: 包含多个可复用模块(如 alova、axios、color、hooks、materials、scripts、tinymce)。 +- **build/**: 项目构建配置与插件。 +- **docs/**: 开发文档与代码模板,包含 SQL、Java 工具类等。 +- **.codelf/**: 项目规范文档(如开发指南、性能安全规范等)。 ## 🚀 环境要求与安装 - ### 环境要求 -- Node.js >= 18.20.0 -- pnpm >= 8.7.0 -- Git +- Node.js >= 18.x +- npm 或 pnpm +- RuoYi 后端服务环境(如数据库、Spring Boot) ### 安装步骤及说明 +1. **克隆项目:** + ```bash + git clone https://gitee.com/xlsea/ruoyi-plus-soybean.git + cd ruoyi-plus-soybean + ``` -1. 克隆仓库 -```bash -git clone https://gitee.com/xlsea/ruoyi-plus-soybean.git -cd ruoyi-plus-soybean -``` +2. **安装依赖:** + ```bash + pnpm install + ``` -2. 安装 pnpm (如果未安装) +3. **启动开发服务器:** + ```bash + pnpm dev + ``` -```bash -npm install pnpm -g -``` - -设置淘宝镜像 -```bash -pnpm config set registry https://registry.npmmirror.com -``` - -3. 安装依赖 -```bash -pnpm install -``` - -4. 运行开发服务器 -```bash -pnpm dev -``` - -5. 构建生产版本 -```bash -pnpm build -``` - -### 代码生成与菜单更新 - -项目提供了代码生成工具和菜单SQL更新文件,在 docs 目录下: - -- **代码生成工具** - - 代码生成工具类位于 `docs/java` 目录,如果没有修改过VelocityUtils.java文件,直接替换即可 - - 代码生成模板位于 `docs/template` 目录,请在ruoyi-generator模块的`resource/vm`下新建 `soy`文件夹,并将所有模板拷贝至`soy`文件夹中 - -- **菜单SQL更新** - - 菜单数据更新SQL文件位于 `docs/sql` 目录 - - 在系统初始化或更新时,需要执行相应的SQL文件来更新菜单数据 +4. **构建生产版本:** + ```bash + pnpm build + ``` ## 📝 开发指南 - ### 可用的脚本命令 +- `pnpm dev`: 启动开发环境 +- `pnpm build`: 构建生产版本 +- `pnpm build:dev`: 构建开发版本 +- `pnpm build:test`: 构build/test: 构建测试版本 +- `pnpm preview`: 预览构建结果 +- `pnpm lint`: 检查代码规范 +- `pnpm typecheck`: 类型检查 +- `pnpm changelog`: 生成更新日志 +- `pnpm release`: 发布新版本 -```bash -# 开发环境 -pnpm dev +### 路由生成 +使用 `packages/scripts` 提供的路由生成工具自动创建路由结构。 -# 测试环境 -pnpm dev:test - -# 生产环境 -pnpm dev:prod - -# 构建生产版本 -pnpm build - -# 构建开发版本 -pnpm build:dev - -# 构建测试版本 -pnpm build:test - -# 预览构建 -pnpm preview - -# 类型检查 -pnpm typecheck - -# 代码规范检查并修复 -pnpm lint - -# 路由生成 -pnpm gen-route - -# 提交代码 -pnpm commit - -# 中文提交信息 -pnpm commit:zh - -# 依赖包更新 -pnpm update-pkg - -# 清理项目 -pnpm cleanup - -# 发布新版本 -pnpm release -``` - -### 代码规范与风格 - -项目使用ESLint进行代码检查,遵循以下规范: - -- **命名规范**: - - Vue组件: PascalCase (如 UserProfile.vue) - - TypeScript文件: camelCase (如 userService.ts) - - CSS/SCSS: kebab-case (如 user-profile.scss) - -- **代码风格**: - - 使用Vue 3 Composition API - - 使用TypeScript类型系统 - - 遵循单一职责原则 - -### 核心开发模式 - -#### 状态管理 -使用Pinia进行状态管理,模块位于`src/store/modules`目录: -- **app**: 应用全局状态 -- **theme**: 主题配置 -- **route**: 路由信息 -- **tab**: 标签页管理 -- **auth**: 认证信息 -- **dict**: 字典管理 -- **notice**: 通知管理 - -#### API交互 -项目支持多种HTTP客户端实现: - -- **Axios**: -```typescript -import { useRequest } from '@/hooks/common/request'; - -const { data, loading, error } = useRequest(() => api.getData(params)); -``` - -- **Hooks使用**: -```typescript -// 布尔值管理 -import { useBoolean } from '@sa/hooks'; -const { bool, setTrue, setFalse } = useBoolean(); - -// 加载状态管理 -import { useLoading } from '@sa/hooks'; -const { loading, startLoading, endLoading } = useLoading(); - -// 表格管理 -import { useTable } from '@/hooks/common/table'; -const { tableData, loading, getPaginationData } = useTable(fetchTableData); -``` - -#### 组件使用 -项目包含多种业务组件: - -- **表格组件**:支持列设置、搜索区域和高级操作 -- **表单组件**:集成验证和表单布局 -- **字典组件**:字典选择、标签和单选 -- **布局组件**:支持多种布局模式和主题 - -### UnoCSS使用指南 -项目优先使用 UnoCSS 来实现样式: - -```html -
- 内容 -
-``` - -### 国际化 -项目使用vue-i18n实现国际化支持: - -```typescript -// 在组件中使用 -import { useI18n } from 'vue-i18n'; - -const { t } = useI18n(); -console.log(t('common.confirm')); -``` +### 提交代码 +- 使用 `git commit` 前请确保代码规范检查通过。 +- 提交信息需遵循规范(中文或英文)。 ## 💎 特性与功能 - ### 前端特性 -- **多种布局模式**:支持垂直、水平、混合等多种布局 -- **可配置的主题**:明暗模式、主题色定制 -- **标签页管理**:多种标签风格、右键菜单 -- **组件封装**:进度条、图标、加载动画等 -- **路由生成**:基于目录结构的路由生成 -- **权限管理**:菜单和按钮级别的权限控制 +- **UnoCSS**:原子化 CSS,提升开发效率。 +- **Tinymce**:富文本编辑器支持多语言和插件扩展。 +- **状态管理**:基于 modern 体系的状态管理机制。 +- **主题系统**:支持 Ant Design 调色板与自定义推荐色系。 ### 业务功能 -- **用户管理**:用户信息维护、角色分配 -- **角色管理**:角色权限配置 -- **菜单管理**:系统功能配置 -- **部门管理**:组织架构维护 -- **字典管理**:数据字典配置 -- **租户管理**:多租户配置 -- **系统监控**:登录日志、操作日志、在线用户、缓存监控 -- **代码生成**:生成前后端代码,提升开发效率 +- 集成菜单管理、页面 tab、权限控制、代码生成等企业级功能。 +- 支持 API 规范化管理与 Typing 声明。 ## 🤝 贡献指南 - -### 开发流程 -1. Fork项目 -2. 创建功能分支 (`git checkout -b feature/amazing-feature`) -3. 提交更改 (`git commit -m 'feat: add amazing feature'`) -4. 推送到分支 (`git push origin feature/amazing-feature`) -5. 提交Pull Request +欢迎贡献代码!请遵循以下流程: +1. Fork 项目并创建新分支。 +2. 修改代码并运行测试。 +3. 提交 PR,填写规范的 Pull Request 模板。 ### 提交规范 -项目使用约定式提交规范: - -- `feat`: 新功能 -- `fix`: 修复Bug -- `docs`: 文档更新 -- `style`: 代码风格调整 -- `refactor`: 代码重构 -- `perf`: 性能优化 -- `test`: 测试代码 -- `chore`: 构建或工具变动 +- 使用符合 conventional commit 的格式。 +- 提交前请运行 `pnpm lint` 与 `pnpm typecheck` 确保代码质量。 ## 📄 许可证 - -[MIT License](./LICENSE) +本项目遵循 [MIT License](LICENSE),详情请参见仓库根目录的 `LICENSE` 文件。 ## 🔗 相关链接 +- 项目主页:[Gitee 仓库](https://gitee.com/xlsea/ruoyi-plus-soybean) +- 文档:[docs](docs/README.md) +- Issues 跟踪:[Bug 报告](.gitee/ISSUE_TEMPLATE/bug-report_cn.yaml) | [功能请求](.gitee/ISSUE_TEMPLATE/feature_request_cn.yaml) -- [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) - 后端基础框架 -- [Soybean Admin](https://github.com/soybeanjs/soybean-admin) - 前端基础框架 -- [RuoYi-Plus-Soybean](https://ruoyi.xlsea.cn) - 官方演示站点 +## 📬 联系方式 +- 作者:xlsea +- 开发交流群:请加入 Gitee 项目讨论区或 issue 反馈 +- 捐赠作者:如有需要,可通过项目页面支持作者开发 -## 📮 联系方式 +--- -- **作者**: xlsea -- **邮箱**: xlsea@linux.do -- **作者主页**: https://gitee.com/xlsea - - -- **作者**: Elio -- **邮箱**: 1983933789@qq.com -- **作者主页**: https://gitee.com/ahcode - -## 💬 交流群 - - - -添加作者微信备注:加群 - -## 🧧 捐献作者 - -作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭 - - - -## 🫡 捐赠列表 - -感谢下方各位老板的捐赠 🫡 - -> 如果不想出现在下方捐赠列表,请在备注中说明,我会匿名处理 - -
- - 酷酷冬天 20元 -
- -
- - Selfish Altruism(JackSue) 200元 -
- -
- - 匿名用户 50元 -
- -
- - 匿名用户 10元 -
- -
- - DAS 20元 -
- -
- - 大山 100元 -
- -
- - 依依 20元 -
- -
- - 沙海 20元 -
- -
- - xxl 50元 -
- -
- - 莫离支🤴 10元 -
- -
- - Ivan 100元 -
+RuoYi-Plus-Soybean 致力于打造高效、可维护、可扩展的企业级开发框架。欢迎使用并参与共建! \ No newline at end of file