From df4866b5f5eab9e74b30ee9ea2b94714e96bb099 Mon Sep 17 00:00:00 2001 From: xlsea Date: Sat, 10 May 2025 10:09:24 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E6=96=B0=E5=A2=9E=E8=8F=9C=E5=8D=95=20?= =?UTF-8?q?sql=20=E6=9B=BF=E6=8D=A2=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .codelf/changelog.md | 12 + .codelf/project.md | 29 ++ README.md | 311 ++++++++++++++++++ docs/README.md | 12 +- docs/sql/sys_menu.sql | 116 +++++++ package.json | 2 +- .../menu/modules/menu-operate-drawer.vue | 2 +- 7 files changed, 481 insertions(+), 3 deletions(-) create mode 100644 README.md create mode 100644 docs/sql/sys_menu.sql 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-Vue-Plus 的后端能力和 Soybean Admin 前端特性的现代化多租户管理系统

+

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

+
+ +## 📋 项目概述 + +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') {