diff --git a/.codelf/changelog.md b/.codelf/changelog.md
index f721fe0c..3b5abd44 100644
--- a/.codelf/changelog.md
+++ b/.codelf/changelog.md
@@ -8,6 +8,7 @@
- Added hooks usage guidelines for boolean and loading states
- Added table component guidelines with implementation examples
- Added code cleanliness guidelines for unused imports and variables
+- Added comprehensive README.md file with project overview, installation instructions, development guidelines, and feature descriptions
### Changed
- Updated development guidelines with new sections
@@ -15,6 +16,17 @@
- Updated UnoCSS documentation to emphasize its priority over custom CSS/SCSS
- Added guidance on choosing between useBoolean and useLoading based on business requirements
+## [1.0.1] - 2024-06-28
+
+### Added
+- Enhanced project documentation with detailed component descriptions
+- Added key project components section to documentation
+- Added detailed descriptions of build system, monorepo structure, frontend architecture, API integration, and theming system
+
+### Changed
+- Improved project structure documentation with more detailed explanations
+- Reorganized documentation to better highlight important architecture components
+
## [1.0.0] - 2024-03-20
### Added
diff --git a/.codelf/project.md b/.codelf/project.md
index c8d21c7b..b12aceee 100644
--- a/.codelf/project.md
+++ b/.codelf/project.md
@@ -79,6 +79,35 @@ root
- views // Page components
```
+### Key Project Components
+
+#### Build System
+The build system is based on Vite with custom configurations for different environments. The `build/plugins` directory contains custom Vite plugins for optimizing the build process, including router auto-generation and UnoCSS integration.
+
+#### Monorepo Packages
+The project uses a monorepo structure with multiple packages in the `packages` directory:
+- `alova` & `axios`: Two HTTP client implementations allowing flexible API interaction strategies
+- `hooks`: Custom Vue composition API hooks for common functionalities like loading states, boolean toggles, and table operations
+- `materials`: Reusable UI components like admin layouts and tabbed interfaces
+- `color`: Advanced color management system for theme customization
+
+#### Frontend Architecture
+- The application follows a modern Vue 3 + TypeScript architecture
+- Uses Pinia for state management with modular stores
+- Implements router-based code splitting for performance optimization
+- Leverages NaiveUI as the primary UI component library
+- Utilizes UnoCSS for atomic CSS utility classes
+
+#### API Integration
+- Supports multiple HTTP clients (Axios, Alova) through adapter pattern
+- Implements request interceptors for authentication and error handling
+- Uses TypeScript for full API type safety
+
+#### Theming System
+- Comprehensive theme customization through CSS variables
+- Support for light/dark modes and custom color palettes
+- Integration with NaiveUI theming system
+
## Dependencies (init from programming language specification like package.json, requirements.txt, etc.)
* package1 (version): simple description
diff --git a/README.md b/README.md
new file mode 100644
index 00000000..adcd032b
--- /dev/null
+++ b/README.md
@@ -0,0 +1,311 @@
+# RuoYi-Plus-Soybean
+
+
+
+## 📋 项目概述
+
+RuoYi-Plus-Soybean 是一个现代化的企业级多租户管理系统,它结合了 RuoYi-Vue-Plus 的强大后端功能和 Soybean Admin 的现代化前端特性,为开发者提供了完整的企业管理解决方案。
+
+### 🌟 项目特点
+
+- **多租户架构**:完整支持SaaS多租户模式,灵活的租户管理能力
+- **现代前端技术栈**:基于Vue 3、TypeScript、Vite和Naive UI构建
+- **Monorepo工程管理**:使用pnpm workspaces管理多包结构
+- **丰富的组件库**:内置大量业务组件和布局选项
+- **主题定制**:支持多种布局模式和主题配色
+- **国际化**:内置多语言支持
+- **权限管理**:精细的基于角色的权限控制
+
+## 🛠️ 技术栈
+
+### 前端
+- **核心框架**: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+
+
+### 后端(与RuoYi-Vue-Plus兼容)
+- **核心框架**:Spring Boot
+- **安全框架**:Spring Security
+- **权限认证**:Sa-Token
+- **数据操作**:MyBatis-Plus
+- **数据库**:MySQL
+
+## 🏗️ 项目结构
+
+```
+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 配置
+```
+
+## 🚀 环境要求与安装
+
+### 环境要求
+- Node.js >= 18.20.0
+- pnpm >= 8.7.0
+- Git
+
+### 安装步骤
+
+1. 克隆仓库
+```bash
+git clone https://gitee.com/xlsea/ruoyi-plus-soybean.git
+cd ruoyi-plus-soybean
+```
+
+2. 安装依赖
+```bash
+pnpm install
+```
+
+3. 运行开发服务器
+```bash
+pnpm dev
+```
+
+4. 构建生产版本
+```bash
+pnpm build
+```
+
+## 📝 开发指南
+
+### 可用的脚本命令
+
+```bash
+# 开发环境
+pnpm dev
+
+# 测试环境
+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'));
+```
+
+## 💎 特性与功能
+
+### 前端特性
+- **多种布局模式**:支持垂直、水平、混合等多种布局
+- **可配置的主题**:明暗模式、主题色定制
+- **标签页管理**:多种标签风格、右键菜单
+- **组件封装**:进度条、图标、加载动画等
+- **路由生成**:基于目录结构的路由生成
+- **权限管理**:菜单和按钮级别的权限控制
+
+### 业务功能
+- **用户管理**:用户信息维护、角色分配
+- **角色管理**:角色权限配置
+- **菜单管理**:系统功能配置
+- **部门管理**:组织架构维护
+- **字典管理**:数据字典配置
+- **租户管理**:多租户配置
+- **系统监控**:登录日志、操作日志、在线用户、缓存监控
+- **代码生成**:生成前后端代码,提升开发效率
+
+## 🤝 贡献指南
+
+### 开发流程
+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
+
+### 提交规范
+项目使用约定式提交规范:
+
+- `feat`: 新功能
+- `fix`: 修复Bug
+- `docs`: 文档更新
+- `style`: 代码风格调整
+- `refactor`: 代码重构
+- `perf`: 性能优化
+- `test`: 测试代码
+- `chore`: 构建或工具变动
+
+## 📄 许可证
+
+[MIT License](./LICENSE)
+
+## 🔗 相关链接
+
+- [RuoYi-Vue-Plus](https://gitee.com/dromara/RuoYi-Vue-Plus) - 后端基础框架
+- [Soybean Admin](https://github.com/honghuangdc/soybean-admin) - 前端设计灵感
+- [RuoYi-Plus-Soybean](https://ruoyi.xlsea.cn) - 官方演示站点
+
+## 📮 联系方式
+
+- **作者**: xlsea
+- **邮箱**: xlsea@linux.do
+- **项目地址**: https://gitee.com/xlsea/ruoyi-plus-soybean
+
+## 🧧 捐献作者
+
+作者为兼职做开源,平时还需要工作,如果帮到了您可以请作者吃个盒饭
+
+
\ No newline at end of file
diff --git a/docs/README.md b/docs/README.md
index 18ad13b6..60c21d03 100644
--- a/docs/README.md
+++ b/docs/README.md
@@ -1 +1,11 @@
-## 后端代码生成替换文件
+## java
+
+后端代码生成工具类替换文件
+
+## template
+
+代码生成模板文件
+
+## sql
+
+菜单数据替换 SQL
diff --git a/docs/sql/sys_menu.sql b/docs/sql/sys_menu.sql
new file mode 100644
index 00000000..7abf75a0
--- /dev/null
+++ b/docs/sql/sys_menu.sql
@@ -0,0 +1,116 @@
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '系统管理', `parent_id` = 0, `order_num` = 1, `path` = '/system', `component` = 'layout.base', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'carbon:cloud-service-management', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 10:49:37', `remark` = '系统管理目录' WHERE `menu_id` = 1;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '系统监控', `parent_id` = 0, `order_num` = 3, `path` = '/monitor', `component` = 'layout.base', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'stash:dashboard', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:33:02', `remark` = '系统监控目录' WHERE `menu_id` = 2;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '系统工具', `parent_id` = 0, `order_num` = 4, `path` = '/tool', `component` = 'layout.base', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'tabler:tools', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:34:01', `remark` = '系统工具目录' WHERE `menu_id` = 3;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '仓库地址', `parent_id` = 0, `order_num` = 5, `path` = 'https://gitee.com/xlsea/ruoyi-plus-soybean', `component` = 'iframe-page', `query_param` = '', `is_frame` = 0, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'icon-gitee', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-09 14:21:46', `remark` = '项目仓库地址' WHERE `menu_id` = 4;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试菜单', `parent_id` = 0, `order_num` = 6, `path` = '/demo', `component` = 'layout.base', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'material-symbols:kid-star-outline', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-05-10 09:34:50', `remark` = '测试菜单' WHERE `menu_id` = 5;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户管理', `parent_id` = 0, `order_num` = 2, `path` = '/tenant', `component` = 'layout.base', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'tabler:building-cog', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:32:18', `remark` = '租户管理目录' WHERE `menu_id` = 6;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户管理', `parent_id` = 1, `order_num` = 1, `path` = '/user', `component` = 'system_user', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:user:list', `icon` = 'ic:round-manage-accounts', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 11:11:45', `remark` = '用户管理菜单' WHERE `menu_id` = 100;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '角色管理', `parent_id` = 1, `order_num` = 2, `path` = '/role', `component` = 'system_role', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:role:list', `icon` = 'carbon:user-role', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-04-24 21:15:53', `remark` = '角色管理菜单' WHERE `menu_id` = 101;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '菜单管理', `parent_id` = 1, `order_num` = 3, `path` = '/menu', `component` = 'system_menu', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:menu:list', `icon` = 'material-symbols:route', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:21:30', `remark` = '菜单管理菜单' WHERE `menu_id` = 102;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '部门管理', `parent_id` = 1, `order_num` = 4, `path` = '/dept', `component` = 'system_dept', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:dept:list', `icon` = 'mingcute:department-line', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:21:56', `remark` = '部门管理菜单' WHERE `menu_id` = 103;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '岗位管理', `parent_id` = 1, `order_num` = 5, `path` = '/post', `component` = 'system_post', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:post:list', `icon` = 'hugeicons:permanent-job', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:23:39', `remark` = '岗位管理菜单' WHERE `menu_id` = 104;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '字典管理', `parent_id` = 1, `order_num` = 6, `path` = '/dict', `component` = 'system_dict', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:dict:list', `icon` = 'qlementine-icons:dictionary-16', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:31:06', `remark` = '字典管理菜单' WHERE `menu_id` = 105;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '参数设置', `parent_id` = 1, `order_num` = 7, `path` = '/config', `component` = 'system_config', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:config:list', `icon` = 'carbon:parameter', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:30:59', `remark` = '参数设置菜单' WHERE `menu_id` = 106;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '通知公告', `parent_id` = 1, `order_num` = 8, `path` = '/notice', `component` = 'system_notice', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:notice:list', `icon` = 'solar:chat-line-outline', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:30:51', `remark` = '通知公告菜单' WHERE `menu_id` = 107;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '日志管理', `parent_id` = 1, `order_num` = 9, `path` = '/log', `component` = 'layout.base', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'M', `visible` = '0', `status` = '0', `perms` = '', `icon` = 'tabler:logs', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-05-09 20:36:41', `remark` = '日志管理菜单' WHERE `menu_id` = 108;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '在线用户', `parent_id` = 2, `order_num` = 1, `path` = '/online', `component` = 'monitor_online', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:online:list', `icon` = 'majesticons:status-online-line', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:33:15', `remark` = '在线用户菜单' WHERE `menu_id` = 109;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '缓存监控', `parent_id` = 2, `order_num` = 5, `path` = '/cache', `component` = 'monitor_cache', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:cache:list', `icon` = 'simple-icons:redis', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:33:25', `remark` = '缓存监控菜单' WHERE `menu_id` = 113;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '代码生成', `parent_id` = 3, `order_num` = 2, `path` = '/gen', `component` = 'tool_gen', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'tool:gen:list', `icon` = 'material-symbols:code-blocks-outline', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 15:12:26', `remark` = '代码生成菜单' WHERE `menu_id` = 115;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = 'Admin监控', `parent_id` = 2, `order_num` = 5, `path` = '/admin', `component` = 'iframe-page', `query_param` = 'https://ruoyi.xlsea.cn/admin/', `is_frame` = 2, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:admin:list', `icon` = 'bx:bxl-spring-boot', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-05-09 16:54:07', `remark` = 'Admin监控菜单' WHERE `menu_id` = 117;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '文件管理', `parent_id` = 1, `order_num` = 10, `path` = '/oss', `component` = 'system_oss', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:oss:list', `icon` = 'material-symbols:attach-file', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:31:56', `remark` = '文件管理菜单' WHERE `menu_id` = 118;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '任务调度中心', `parent_id` = 2, `order_num` = 6, `path` = '/snailjob', `component` = 'iframe-page', `query_param` = 'https://preview.snailjob.opensnail.com/', `is_frame` = 2, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:snailjob:list', `icon` = 'gridicons:scheduled', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-05-09 16:20:56', `remark` = 'SnailJob控制台菜单' WHERE `menu_id` = 120;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户管理', `parent_id` = 6, `order_num` = 1, `path` = '/tenant', `component` = 'system_tenant', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:tenant:list', `icon` = 'tabler:building-skyscraper', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:32:32', `remark` = '租户管理菜单' WHERE `menu_id` = 121;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户套餐管理', `parent_id` = 6, `order_num` = 2, `path` = '/tenantPackage', `component` = 'system_tenant-package', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:tenantPackage:list', `icon` = 'lets-icons:package-box-alt', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:32:47', `remark` = '租户套餐管理菜单' WHERE `menu_id` = 122;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '客户端管理', `parent_id` = 1, `order_num` = 11, `path` = '/client', `component` = 'system_client', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'system:client:list', `icon` = 'tabler:device-imac-cog', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:32:06', `remark` = '客户端管理菜单' WHERE `menu_id` = 123;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '操作日志', `parent_id` = 108, `order_num` = 1, `path` = '/operlog', `component` = 'monitor_oper-log', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:list', `icon` = 'carbon:operations-record', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-05-09 20:24:05', `remark` = '操作日志菜单' WHERE `menu_id` = 500;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '登录日志', `parent_id` = 108, `order_num` = 2, `path` = '/logininfor', `component` = 'monitor_login-infor', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:list', `icon` = 'tabler:login-2', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2025-05-09 20:22:13', `remark` = '登录日志菜单' WHERE `menu_id` = 501;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户查询', `parent_id` = 100, `order_num` = 1, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1001;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户新增', `parent_id` = 100, `order_num` = 2, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1002;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户修改', `parent_id` = 100, `order_num` = 3, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1003;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户删除', `parent_id` = 100, `order_num` = 4, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1004;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户导出', `parent_id` = 100, `order_num` = 5, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1005;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '用户导入', `parent_id` = 100, `order_num` = 6, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:import', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1006;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '重置密码', `parent_id` = 100, `order_num` = 7, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:user:resetPwd', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1007;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '角色查询', `parent_id` = 101, `order_num` = 1, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1008;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '角色新增', `parent_id` = 101, `order_num` = 2, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1009;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '角色修改', `parent_id` = 101, `order_num` = 3, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1010;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '角色删除', `parent_id` = 101, `order_num` = 4, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1011;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '角色导出', `parent_id` = 101, `order_num` = 5, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:role:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1012;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '菜单查询', `parent_id` = 102, `order_num` = 1, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1013;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '菜单新增', `parent_id` = 102, `order_num` = 2, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1014;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '菜单修改', `parent_id` = 102, `order_num` = 3, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1015;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '菜单删除', `parent_id` = 102, `order_num` = 4, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:menu:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1016;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '部门查询', `parent_id` = 103, `order_num` = 1, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1017;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '部门新增', `parent_id` = 103, `order_num` = 2, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1018;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '部门修改', `parent_id` = 103, `order_num` = 3, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1019;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '部门删除', `parent_id` = 103, `order_num` = 4, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dept:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1020;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '岗位查询', `parent_id` = 104, `order_num` = 1, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1021;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '岗位新增', `parent_id` = 104, `order_num` = 2, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1022;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '岗位修改', `parent_id` = 104, `order_num` = 3, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1023;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '岗位删除', `parent_id` = 104, `order_num` = 4, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1024;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '岗位导出', `parent_id` = 104, `order_num` = 5, `path` = '', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:post:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1025;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '字典查询', `parent_id` = 105, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1026;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '字典新增', `parent_id` = 105, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1027;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '字典修改', `parent_id` = 105, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1028;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '字典删除', `parent_id` = 105, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1029;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '字典导出', `parent_id` = 105, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:dict:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1030;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '参数查询', `parent_id` = 106, `order_num` = 1, `path` = '/#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:26:28', `remark` = '' WHERE `menu_id` = 1031;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '参数新增', `parent_id` = 106, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1032;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '参数修改', `parent_id` = 106, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1033;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '参数删除', `parent_id` = 106, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1034;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '参数导出', `parent_id` = 106, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:config:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1035;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '公告查询', `parent_id` = 107, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1036;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '公告新增', `parent_id` = 107, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1037;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '公告修改', `parent_id` = 107, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1038;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '公告删除', `parent_id` = 107, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:notice:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1039;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '操作查询', `parent_id` = 500, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1040;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '操作删除', `parent_id` = 500, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1041;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '日志导出', `parent_id` = 500, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:operlog:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1042;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '登录查询', `parent_id` = 501, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1043;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '登录删除', `parent_id` = 501, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1044;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '日志导出', `parent_id` = 501, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1045;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '在线查询', `parent_id` = 109, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:online:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1046;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '批量强退', `parent_id` = 109, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:online:batchLogout', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1047;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '单条强退', `parent_id` = 109, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:online:forceLogout', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1048;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '账户解锁', `parent_id` = 501, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'monitor:logininfor:unlock', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1050;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '生成查询', `parent_id` = 115, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1055;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '生成修改', `parent_id` = 115, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1056;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '生成删除', `parent_id` = 115, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1057;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '导入代码', `parent_id` = 115, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:import', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1058;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '预览代码', `parent_id` = 115, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:preview', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1059;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '生成代码', `parent_id` = 115, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'tool:gen:code', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1060;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '客户端管理查询', `parent_id` = 123, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:client:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1061;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '客户端管理新增', `parent_id` = 123, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:client:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1062;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '客户端管理修改', `parent_id` = 123, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:client:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1063;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '客户端管理删除', `parent_id` = 123, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:client:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1064;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '客户端管理导出', `parent_id` = 123, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:client:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1065;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试单表', `parent_id` = 5, `order_num` = 1, `path` = '/demo', `component` = 'demo_demo', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'demo:demo:list', `icon` = 'gg:debug', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:36:03', `remark` = '测试单表菜单' WHERE `menu_id` = 1500;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试单表查询', `parent_id` = 1500, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:demo:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1501;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试单表新增', `parent_id` = 1500, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:demo:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1502;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试单表修改', `parent_id` = 1500, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:demo:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1503;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试单表删除', `parent_id` = 1500, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:demo:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1504;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试单表导出', `parent_id` = 1500, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:demo:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1505;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试树表', `parent_id` = 5, `order_num` = 1, `path` = '/tree', `component` = 'demo_tree', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'C', `visible` = '0', `status` = '0', `perms` = 'demo:tree:list', `icon` = 'gg:debug', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = 1, `update_time` = '2024-09-03 14:36:12', `remark` = '测试树表菜单' WHERE `menu_id` = 1506;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试树表查询', `parent_id` = 1506, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:tree:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1507;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试树表新增', `parent_id` = 1506, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:tree:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1508;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试树表修改', `parent_id` = 1506, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:tree:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1509;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试树表删除', `parent_id` = 1506, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:tree:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1510;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '测试树表导出', `parent_id` = 1506, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'demo:tree:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1511;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '文件查询', `parent_id` = 118, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:oss:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1600;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '文件上传', `parent_id` = 118, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:oss:upload', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1601;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '文件下载', `parent_id` = 118, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:oss:download', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1602;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '文件删除', `parent_id` = 118, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:oss:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1603;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户查询', `parent_id` = 121, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenant:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1606;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户新增', `parent_id` = 121, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenant:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1607;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户修改', `parent_id` = 121, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenant:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1608;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户删除', `parent_id` = 121, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenant:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1609;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户导出', `parent_id` = 121, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenant:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1610;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户套餐查询', `parent_id` = 122, `order_num` = 1, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenantPackage:query', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1611;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户套餐新增', `parent_id` = 122, `order_num` = 2, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenantPackage:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1612;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户套餐修改', `parent_id` = 122, `order_num` = 3, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenantPackage:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1613;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户套餐删除', `parent_id` = 122, `order_num` = 4, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenantPackage:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1614;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '租户套餐导出', `parent_id` = 122, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:tenantPackage:export', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1615;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '配置列表', `parent_id` = 118, `order_num` = 5, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:ossConfig:list', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1620;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '配置添加', `parent_id` = 118, `order_num` = 6, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:ossConfig:add', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1621;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '配置编辑', `parent_id` = 118, `order_num` = 6, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:ossConfig:edit', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1622;
+UPDATE `ruoyi`.`sys_menu` SET `menu_name` = '配置删除', `parent_id` = 118, `order_num` = 6, `path` = '#', `component` = '', `query_param` = '', `is_frame` = 1, `is_cache` = 0, `menu_type` = 'F', `visible` = '0', `status` = '0', `perms` = 'system:ossConfig:remove', `icon` = '#', `create_dept` = 103, `create_by` = 1, `create_time` = '2024-08-30 17:14:27', `update_by` = NULL, `update_time` = NULL, `remark` = '' WHERE `menu_id` = 1623;
diff --git a/package.json b/package.json
index 9a977119..883d472d 100644
--- a/package.json
+++ b/package.json
@@ -9,7 +9,7 @@
"url": "https://gitee.com/xlsea/ruoyi-plus-soybean"
},
"license": "MIT",
- "homepage": "https://gitee.com/xlsea/ruoyi-plus-soybean",
+ "homepage": "https://ruoyi.xlsea.cn",
"repository": {
"url": "https://gitee.com/xlsea/ruoyi-plus-soybean.git"
},
diff --git a/src/views/system/menu/modules/menu-operate-drawer.vue b/src/views/system/menu/modules/menu-operate-drawer.vue
index f5dea01e..a089ac43 100644
--- a/src/views/system/menu/modules/menu-operate-drawer.vue
+++ b/src/views/system/menu/modules/menu-operate-drawer.vue
@@ -149,7 +149,7 @@ async function handleSubmit() {
let component = model.component;
if (isFrame !== '1') {
component = 'iframe-page';
- path = !model.path?.startsWith('/') ? `/${model.path}` : model.path;
+ path = model.path;
} else if (model.menuType === 'C') {
component = humpToLine(model.component?.replaceAll('/', '_') || '');
} else if (model.menuType === 'M') {