From 829c17f1ced1b3659b97593b0767e225584c31d8 Mon Sep 17 00:00:00 2001 From: "weicw1996@qq.com" Date: Sat, 19 Sep 2026 17:26:48 +0800 Subject: [PATCH] =?UTF-8?q?AI=E5=9B=A2=E5=AE=9D=E9=A1=B5=E9=9D=A2=E5=AF=B9?= =?UTF-8?q?=E7=BA=AF=E5=AD=A6=E7=94=9F=E9=9A=90=E8=97=8F=E3=80=8C=E8=BF=9B?= =?UTF-8?q?=E5=85=A5=E5=90=8E=E5=8F=B0=E3=80=8D=E5=85=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/utils/permission.ts | 15 +++++++++++++++ src/views/oa/chatgpt/index.vue | 12 +++++++++++- 2 files changed, 26 insertions(+), 1 deletion(-) diff --git a/src/utils/permission.ts b/src/utils/permission.ts index 4324d98..fcba349 100644 --- a/src/utils/permission.ts +++ b/src/utils/permission.ts @@ -66,6 +66,21 @@ export function hasAnyRole(value: string | string[]): boolean { return arrayHasAny(userStore?.roles, value); } +/** 学生角色标识 */ +export const STUDENT_ROLE_CODE = 'student'; + +/** + * 是否仅为学生身份(角色恰好只有 student) + * + * 与后端 BaseController#hasOnlyStudentRole 保持一致:拥有任意其他角色 + * (学生干部、教师、管理员等)即视为非纯学生,不在此列。 + */ +export function isOnlyStudent(): boolean { + const userStore = useUserStore(); + const roles = (userStore?.roles ?? []).filter((d) => !!d); + return roles.length === 1 && roles[0] === STUDENT_ROLE_CODE; +} + /** * 是否有某些权限 * @param value 权限字符或字符数组 diff --git a/src/views/oa/chatgpt/index.vue b/src/views/oa/chatgpt/index.vue index c9f5efa..e0e1786 100644 --- a/src/views/oa/chatgpt/index.vue +++ b/src/views/oa/chatgpt/index.vue @@ -79,7 +79,11 @@