From c53f658f91a2731d573b229c27e6c1435b77be63 Mon Sep 17 00:00:00 2001 From: lvfengfree Date: Tue, 20 Jan 2026 18:15:14 +0800 Subject: [PATCH] =?UTF-8?q?feat:=20=E8=8F=9C=E5=8D=95=E7=AE=A1=E7=90=86?= =?UTF-8?q?=E5=8A=9F=E8=83=BD=E5=A2=9E=E5=BC=BA=20-=20=E8=87=AA=E5=8A=A8?= =?UTF-8?q?=E5=88=9B=E5=BB=BAVue=E7=BB=84=E4=BB=B6=E6=96=87=E4=BB=B6?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 后端改进: - MenuController 添加自动创建 Vue 组件文件功能 - 创建菜单时自动生成对应的 .vue 文件模板 - 修复路径处理逻辑,确保子菜单使用相对路径 - 添加菜单名称唯一性检查,自动添加时间戳避免重复 - 修复 ViewsPath 配置路径 - 修复文件写入编码为 UTF-8 前端改进: - 添加创建目录/子菜单的帮助说明 - 子菜单自动生成组件路径(如果用户未填写) - 添加 autoCreateComponent 参数支持 - 优化菜单类型判断逻辑 --- adminSystem/src/api/system-manage.ts | 53 +++++++ adminSystem/src/views/system/menu/index.vue | 134 +++++++++++++++--- .../views/system/menu/modules/menu-dialog.vue | 31 +++- .../Controllers/MenuController.cs | 122 +++++++++++++++- .../AmtScanner.Api/appsettings.json | 3 + 5 files changed, 320 insertions(+), 23 deletions(-) diff --git a/adminSystem/src/api/system-manage.ts b/adminSystem/src/api/system-manage.ts index f26678e..09949f0 100644 --- a/adminSystem/src/api/system-manage.ts +++ b/adminSystem/src/api/system-manage.ts @@ -64,3 +64,56 @@ export function fetchGetMenuList() { url: '/api/v3/system/menus/simple' }) } + +// 创建菜单 +export function fetchCreateMenu(data: { + parentId?: number | null + name: string + path: string + component?: string + title: string + icon?: string + sort?: number + isHide?: boolean + keepAlive?: boolean + link?: string + isIframe?: boolean + roles?: string[] + autoCreateComponent?: boolean // 是否自动创建组件文件 +}) { + return request.post({ + url: '/api/menu', + params: data, + showSuccessMessage: true + }) +} + +// 更新菜单 +export function fetchUpdateMenu(id: number, data: { + parentId?: number | null + name?: string + path?: string + component?: string + title?: string + icon?: string + sort?: number + isHide?: boolean + keepAlive?: boolean + link?: string + isIframe?: boolean + roles?: string[] +}) { + return request.put({ + url: `/api/menu/${id}`, + params: data, + showSuccessMessage: true + }) +} + +// 删除菜单 +export function fetchDeleteMenu(id: number) { + return request.del({ + url: `/api/menu/${id}`, + showSuccessMessage: true + }) +} diff --git a/adminSystem/src/views/system/menu/index.vue b/adminSystem/src/views/system/menu/index.vue index 973b1e7..1ffecf9 100644 --- a/adminSystem/src/views/system/menu/index.vue +++ b/adminSystem/src/views/system/menu/index.vue @@ -19,7 +19,7 @@ @refresh="handleRefresh" >