From 7f0a6a07c8ddf57a1ea04bb10780e5bbbccac0b1 Mon Sep 17 00:00:00 2001 From: Kven <2955163637@qq.com> Date: Sun, 11 May 2025 10:46:55 +0800 Subject: [PATCH] =?UTF-8?q?feat(@vben/web-antd):=20=E4=BC=98=E5=8C=96?= =?UTF-8?q?=E6=9D=83=E9=99=90=E7=AE=A1=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- apps/web-antd/src/router/guard.ts | 7 ++++--- apps/web-antd/src/router/routes/modules/home.ts | 1 + apps/web-antd/src/router/routes/modules/ppt.ts | 1 + apps/web-antd/src/router/routes/modules/spider.ts | 1 + apps/web-antd/src/router/routes/modules/system.ts | 4 ++++ apps/web-antd/src/router/routes/modules/word.ts | 1 + apps/web-antd/src/store/auth.ts | 2 ++ 7 files changed, 14 insertions(+), 3 deletions(-) diff --git a/apps/web-antd/src/router/guard.ts b/apps/web-antd/src/router/guard.ts index 0ee23fe..60f82d3 100644 --- a/apps/web-antd/src/router/guard.ts +++ b/apps/web-antd/src/router/guard.ts @@ -74,7 +74,6 @@ function setupAccessGuard(router: Router) { // 没有访问权限,跳转登录页面 if (to.fullPath !== LOGIN_PATH) { - console.log('没有访问权限,请登录'); return { path: LOGIN_PATH, // 如不需要,直接删除 query @@ -96,11 +95,13 @@ function setupAccessGuard(router: Router) { // 生成路由表 // 当前登录用户拥有的角色标识列表 const userInfo = userStore.userInfo || (await authStore.fetchUserInfo()); - const userRoles = userInfo.roles ?? []; + // const userRoles = userInfo.roles ?? []; + // permissions Keven自定义 + const permissions = userInfo.permissions ?? []; // 生成菜单和路由 const { accessibleMenus, accessibleRoutes } = await generateAccess({ - roles: userRoles, + roles: permissions, router, // 则会在菜单中显示,但是访问会被重定向到403 routes: accessRoutes, diff --git a/apps/web-antd/src/router/routes/modules/home.ts b/apps/web-antd/src/router/routes/modules/home.ts index c15057a..e54ba3f 100644 --- a/apps/web-antd/src/router/routes/modules/home.ts +++ b/apps/web-antd/src/router/routes/modules/home.ts @@ -9,6 +9,7 @@ const routes: RouteRecordRaw[] = [ icon: 'mdi:home', title: '首页', order: -1, + authority: ['dashboard'], }, }, ]; diff --git a/apps/web-antd/src/router/routes/modules/ppt.ts b/apps/web-antd/src/router/routes/modules/ppt.ts index 17121ce..9a16113 100644 --- a/apps/web-antd/src/router/routes/modules/ppt.ts +++ b/apps/web-antd/src/router/routes/modules/ppt.ts @@ -11,6 +11,7 @@ const routes: RouteRecordRaw[] = [ icon: SvgPPT, title: 'PPT自动生成', order: 3, + authority: ['dify:workflow:run'], }, }, ]; diff --git a/apps/web-antd/src/router/routes/modules/spider.ts b/apps/web-antd/src/router/routes/modules/spider.ts index 202e035..7ac8bd6 100644 --- a/apps/web-antd/src/router/routes/modules/spider.ts +++ b/apps/web-antd/src/router/routes/modules/spider.ts @@ -11,6 +11,7 @@ const routes: RouteRecordRaw[] = [ icon: SvgSpider, title: '数据爬取', order: 1, + authority: ['dify:server:init'], }, }, ]; diff --git a/apps/web-antd/src/router/routes/modules/system.ts b/apps/web-antd/src/router/routes/modules/system.ts index f880611..642770a 100644 --- a/apps/web-antd/src/router/routes/modules/system.ts +++ b/apps/web-antd/src/router/routes/modules/system.ts @@ -10,6 +10,7 @@ const routes: RouteRecordRaw[] = [ icon: IconSystem, title: '系统管理', order: 4, + authority: ['system'], }, children: [ { @@ -19,6 +20,7 @@ const routes: RouteRecordRaw[] = [ meta: { icon: EosRole, title: '角色管理', + authority: ['system:role'], }, }, { @@ -28,6 +30,7 @@ const routes: RouteRecordRaw[] = [ meta: { icon: RiDept, title: '部门管理', + authority: ['system:dept'], }, }, { @@ -37,6 +40,7 @@ const routes: RouteRecordRaw[] = [ meta: { icon: MdiUser, title: '用户管理', + authority: ['system:user'], }, }, ], diff --git a/apps/web-antd/src/router/routes/modules/word.ts b/apps/web-antd/src/router/routes/modules/word.ts index 9a35697..9254152 100644 --- a/apps/web-antd/src/router/routes/modules/word.ts +++ b/apps/web-antd/src/router/routes/modules/word.ts @@ -11,6 +11,7 @@ const routes: RouteRecordRaw[] = [ icon: SvgWord, title: 'Word自动生成', order: 2, + authority: ['dify:chat:send'], }, }, ]; diff --git a/apps/web-antd/src/store/auth.ts b/apps/web-antd/src/store/auth.ts index 116d6b1..17417e7 100644 --- a/apps/web-antd/src/store/auth.ts +++ b/apps/web-antd/src/store/auth.ts @@ -51,6 +51,8 @@ export const useAuthStore = defineStore('auth', () => { realName: user.username, username: user.username, roles: [user.role.name], + // permissions Keven自定义 + permissions: user.permissions, homePath: '/home', token: csrf.token, };