From 582d2d8654826dadb5576fac8a3e5e55bc80540d Mon Sep 17 00:00:00 2001 From: panxinying Date: Thu, 5 Nov 2026 11:39:34 +0800 Subject: [PATCH] feat: system and workspace application route permission --- .../modules/application-system-resource.ts | 23 +++++++++++++--- .../admin/workspace/modules/application.ts | 27 +++++++++++++++---- 2 files changed, 42 insertions(+), 8 deletions(-) diff --git a/ui/src/router/admin/system/modules/application-system-resource.ts b/ui/src/router/admin/system/modules/application-system-resource.ts index e3014f38f03..6ec7ae5b4cb 100644 --- a/ui/src/router/admin/system/modules/application-system-resource.ts +++ b/ui/src/router/admin/system/modules/application-system-resource.ts @@ -21,6 +21,7 @@ export const systemResourceApplicationRoutes: RouteRecordRaw[] = [ activeIcon: 'icon_screen_filled', order: 10, permission: perm.application.system.overviewRead, + next: 'system-resource-application-simple-setting', }, }, { @@ -34,6 +35,7 @@ export const systemResourceApplicationRoutes: RouteRecordRaw[] = [ order: 20, detailMenuVisible: (params) => params.type === APPLICATION_TYPE.SIMPLE, permission: perm.application.system.edit, + next: 'system-resource-application-access', }, }, { @@ -58,19 +60,34 @@ export const systemResourceApplicationRoutes: RouteRecordRaw[] = [ path: 'access', name: 'system-resource-application-access', component: () => import('@/views/application-detail/access/index.vue'), - meta: { title: '发布渠道', icon: 'icon_application_outlined', activeIcon: 'icon_application_filled', order: 30, permission: perm.application.system.accessRead}, + meta: { title: '发布渠道', + icon: 'icon_application_outlined', + activeIcon: 'icon_application_filled', order: 30, + permission: perm.application.system.accessRead, + next: 'system-resource-application-access', + }, }, { path: 'chat-user', name: 'system-resource-application-chat-user', component: () => import('@/views/application-detail/chat-user/index.vue'), - meta: { title: '对话用户', icon: 'icon_contacts_outlined', activeIcon: 'icon_contacts_filled', order: 40, permission: perm.application.system.chatUserRead}, + meta: { title: '对话用户', + icon: 'icon_contacts_outlined', + activeIcon: 'icon_contacts_filled', order: 40, + permission: perm.application.system.chatUserRead, + next: 'system-resource-application-access', + }, }, { path: 'operation-log', name: 'system-resource-application-operation-log', component: () => import('@/views/application-detail/chat-log/index.vue'), - meta: { title: '对话日志', icon: 'icon_logs_outlined', activeIcon: 'icon_logs_filled', order: 50, permission: perm.application.system.chatLogRead}, + meta: { title: '对话日志', + icon: 'icon_logs_outlined', + activeIcon: 'icon_logs_filled', order: 50, + permission: perm.application.system.chatLogRead, + next: 'system-resource-application-access', + }, }, ], }, diff --git a/ui/src/router/admin/workspace/modules/application.ts b/ui/src/router/admin/workspace/modules/application.ts index 36928169d23..37d7b81cf42 100644 --- a/ui/src/router/admin/workspace/modules/application.ts +++ b/ui/src/router/admin/workspace/modules/application.ts @@ -31,7 +31,8 @@ export const applicationRoutes: RouteRecordRaw[] = [ activeIcon: 'icon_screen_filled', order: 10, canAccess: (params) => perm.application.workspace.overviewRead(String(params.applicationId)), - permission: (route) => perm.application.workspace.overviewRead(String(route.params.applicationId)), + permission: ({ params }) => perm.application.workspace.overviewRead(String(params.knowledgeId)), + next: 'workspace-application-simple-setting', }, }, { @@ -45,7 +46,8 @@ export const applicationRoutes: RouteRecordRaw[] = [ order: 20, detailMenuVisible: (params) => params.type === APPLICATION_TYPE.SIMPLE, canAccess: (params) => params.type === APPLICATION_TYPE.SIMPLE && perm.application.workspace.edit(String(params.applicationId)), - permission: (route) => perm.application.workspace.edit(String(route.params.applicationId)), + permission: ({ params }) => perm.application.workspace.edit(String(params.knowledgeId)), + next: 'workspace-application-access', }, }, { @@ -70,19 +72,34 @@ export const applicationRoutes: RouteRecordRaw[] = [ path: 'access', name: 'workspace-application-access', component: () => import('@/views/application-detail/access/index.vue'), - meta: { title: '发布渠道', icon: 'icon_application_outlined', activeIcon: 'icon_application_filled', order: 30, permission: (route) => perm.application.workspace.accessRead(String(route.params.applicationId))}, + meta: { title: '发布渠道', + icon: 'icon_application_outlined', + activeIcon: 'icon_application_filled', order: 30, + permission: ({ params }) => perm.application.workspace.accessRead(String(params.knowledgeId)), + next: 'workspace-application-chat-user', }, + }, { path: 'chat-user', name: 'workspace-application-chat-user', component: () => import('@/views/application-detail/chat-user/index.vue'), - meta: { title: '对话用户', icon: 'icon_contacts_outlined', activeIcon: 'icon_contacts_filled', order: 40, permission: (route) => perm.application.workspace.chatUserRead(String(route.params.applicationId))}, + meta: { title: '对话用户', + icon: 'icon_contacts_outlined', + activeIcon: 'icon_contacts_filled', order: 40, + permission: ({ params }) => perm.application.workspace.chatUserRead(String(params.knowledgeId)), + next: 'workspace-application-operation-log', + }, }, { path: 'operation-log', name: 'workspace-application-operation-log', component: () => import('@/views/application-detail/chat-log/index.vue'), - meta: { title: '对话日志', icon: 'icon_logs_outlined', activeIcon: 'icon_logs_filled', order: 50, permission: (route) => perm.application.workspace.chatLogRead(String(route.params.applicationId)),}, + meta: { title: '对话日志', + icon: 'icon_logs_outlined', + activeIcon: 'icon_logs_filled', order: 50, + permission: ({ params }) => perm.application.workspace.chatLogRead(String(params.knowledgeId)), + next: 'workspace-application-overview', + }, }, ], },